커뮤니티
당일봉중 가장 긴 봉
2008-08-18 14:27:47
776
글번호 16710
왕초보인데요..
장중 가장 긴 봉을 기준으로 매수,매도 진입을 하려는데 검증은 되는데 시뮬을 해보니 신호가 수십개가 나오네요. ㅜㅜ
뭐가 문제인지 봐주시면 감사하겠습니다.
5분봉 챠트를 씁니다.
var1 = nthhighestbar(1,H-L,dayindex); // 당일봉중 첫번째로 고저가 큰봉
color = c[var1]-o[var1]; // 최장봉이 양봉이냐 음봉이냐
if color>=0 Then // 최장봉이 양봉이냐,음봉이냐를 알아내고
red_c = color;
Else
blue_c = color;
enter_p = (h[var1]+l[var1])*0.5; // 진입가는 최장봉의 중간지점
################### <손절가> ##########################
if red_c Then
t_start = l[var1]; // 최장봉이 양봉이면 최장봉의 저가가 손절가
Else
t_start = h[var1]; // 최장봉이 음봉이면 최장봉의 고가가 손절가
######################## <진입> #######################
if red_c && c<enter_p Then // 최장봉이 양봉이고 현재가가 진입가 아래면 매수
buy();
if blue_c && c>enter_p Then // 최장봉이 음봉이고 현재가가 진입가 위면 매도
sell();
############################# <청산> ###############################
if red_c && c<t_start Then // 최장봉이 양봉이고 현재가가 손절가 아래면 매수청산
ExitLong();
if blue_c && c>t_start Then // 최장봉이 음봉이고 현재가가 손절가 위이면 매도청산
ExitShort();
SetStopEndofday(1455); //14시55분 강제청산
ps: 지금 게시판 검색을 하다가 발견했는데 조건이 만족되고 나서 다음봉에 진입하는 것이 아니고 만족되는 바로 그순간의 현재가에 진입하려면 어떻게 해야하나요?
감사합니다.
- 1. 16894_Image1.jpg (0.15 MB)
답변 1
예스스탁 예스스탁 답변
2008-08-19 09:53:58
안녕하세요? 예스스탁입니다.
의도하신 내용을 새로운 방법으로 작성해 보았습니다.
오류 부분이 많아서 수정하기가 어려웠습니다.
작성하신 내용은 현재시점에서 과거의 최장봉의 인덱스를 찾아서 구현하는 방법으로 작성하였는데(물론 이런 방법도 가능합니다), 아래 식은 진행되는 시점에서 최장봉을 이전값들과 비교하면서 찾는 방법으로 작성하였습니다.(이 방법이 일반적인 작성 방법입니다.)
var : highVal(0), color(0), Lval(0), Hval(0), entry_P(0), buy_stop(0), sell_stop(0);
SetStopEndofday(1455); //14시55분 강제청산
if date <> date[1] Then //날짜가 변경되면 highVal값을 0으로 초기화
highVal = 0;
if H-L > highVal Then { //H-L값이 HighVal값보다 크면(최장봉이 발생하면)
highVal = H-L; //highVal 값에 H-L값을 저장
Color = C-O; //Color에는 종가-시가 값을 저장
Lval = L; //최장봉의 저가를 저장
Hval = H; //최장봉의 고가를 저장
entry_P = (Lval+Hval)*0.5; //진입가는 최장봉 고가와 저가의 중간값
}
if Color >= 0 and C < entry_P and C > Lval Then { //최장봉이 양봉이고 현재가가 진입가보다 작고 stop가격보다 크면
buy();
buy_stop = Lval; //buy_stop에 최장봉저가를 저장(진입후 청산전에 새로운 최장봉이 생길 수 있기 때문에 손절가를 확정하기 위함)
}
if C < buy_stop then //현재가가 매수 손절가보다 작으면 매수청산
exitlong();
if Color < 0 and C > entry_P and C < Hval Then { //최장봉이 음봉이고 현재가가 진입가보다 크고 stop가격보다 작으면
sell();
sell_stop = Hval; // sell_stop에 최장봉의 고가를 저장
}
if C > sell_stop Then //현재가가 매도 손절가보다 크면 매도청산
exitshort();
그리고 조건만족 즉시 진입하는 방법을 말씀하셨는데, 예를들어 "이동평균선 골든크로스 발생되면 봉완성을 기다리지 말고 즉시 진입하라" 와 같은 경우는 가능하지 않습니다. 왜냐하면 봉이 완성되는 시점에 골든크로스 상태가 아닐 수 있기 때문입니다.
즉, 봉이 진행되는 중간에 신호가 발생하여 주문이 나갔는데, 신호가 확정되는 순간(봉이완성되는 순간)에는 신호가 사라져 버렸다면, 그 다음에 나와야 할 청산신호 역시 발생하지 않게 되는데, 이렇게 된다면 주문과 신호가 서로 엉켜버리는 현상이 생기게 됩니다.
조건 만족 즉시 진입하는 것은 atstop주문을 이용하시면 되는데 가능한 예는 다음가 같습니다.
1) 이동평균선 골든크로스 발생하면 골든크로스 발생봉의 다음봉에서 골든 봉의 고가를 돌파하는 순간 매수하라
2) 정배열 상태에서 가격이 220.00에 도달하면 매수하라
3) 매수포지션 상태에서 가격이 진입가-0.5를 하향이탈하면 즉시 매수청산하라
식으로 작성하면 아래와 같습니다.
1)
if Crossup(ma(C,5), ma(C,20)) then
buy("B", atstop, H);
2)
if ma(C,5) > ma(C,20) then
buy("B", atstop, 220);
3) if marketposition(0) == 1 then
exitlong("EL", atstop, entryPrice(0)-0.5);
> 추종자 님이 쓴 글입니다.
> 제목 : 당일봉중 가장 긴 봉
> 왕초보인데요..
장중 가장 긴 봉을 기준으로 매수,매도 진입을 하려는데 검증은 되는데 시뮬을 해보니 신호가 수십개가 나오네요. ㅜㅜ
뭐가 문제인지 봐주시면 감사하겠습니다.
5분봉 챠트를 씁니다.
var1 = nthhighestbar(1,H-L,dayindex); // 당일봉중 첫번째로 고저가 큰봉
color = c[var1]-o[var1]; // 최장봉이 양봉이냐 음봉이냐
if color>=0 Then // 최장봉이 양봉이냐,음봉이냐를 알아내고
red_c = color;
Else
blue_c = color;
enter_p = (h[var1]+l[var1])*0.5; // 진입가는 최장봉의 중간지점
################### <손절가> ##########################
if red_c Then
t_start = l[var1]; // 최장봉이 양봉이면 최장봉의 저가가 손절가
Else
t_start = h[var1]; // 최장봉이 음봉이면 최장봉의 고가가 손절가
######################## <진입> #######################
if red_c && c<enter_p Then // 최장봉이 양봉이고 현재가가 진입가 아래면 매수
buy();
if blue_c && c>enter_p Then // 최장봉이 음봉이고 현재가가 진입가 위면 매도
sell();
############################# <청산> ###############################
if red_c && c<t_start Then // 최장봉이 양봉이고 현재가가 손절가 아래면 매수청산
ExitLong();
if blue_c && c>t_start Then // 최장봉이 음봉이고 현재가가 손절가 위이면 매도청산
ExitShort();
SetStopEndofday(1455); //14시55분 강제청산
ps: 지금 게시판 검색을 하다가 발견했는데 조건이 만족되고 나서 다음봉에 진입하는 것이 아니고 만족되는 바로 그순간의 현재가에 진입하려면 어떻게 해야하나요?
감사합니다.
다음글
이전글