커뮤니티
Break_even 청산식 문의 드립니다.
2013-07-26 11:21:03
183
글번호 65759
If abs(c-o) > 0.3 and DayIndex > 0 Then {
If C > O Then
Buy("b");
If C < O Then
Sell("s");
}
### 청산전략###
# Breakeven Stop
If MarketPosition <> 0 Then {
If highest(H, BarsSinceEntry+1) > EntryPrice + 0.4 Then
ExitLong ("1L", atstop, EntryPrice-0.05);
If Lowest(L,BarsSinceEntry+1) < EntryPrice - 0.4 Then
ExitShort ("1S", atstop,EntryPrice+0.05);
}
SetStopEndofday;
======================
break_even 청산식을 구현하려는데, 첨부한 그림에서처럼 오류가 나옵니다.
매도 후, 매수로 리버스 한 후, 바로 다음 봉에서 손익분기 청산신호가 나옵니다.
2012.9.24 일 1분봉인데, 다른 곳에서도 비슷한 경우가 많이 나옵니다.
0.4pt 이상 수익이면 진입가 한틱 아래에서 청산한다면, 캡쳐한 그림의 맨 끝에 봉일텐데, 왜 저려는 걸까요?
참고로 청산된 봉의 고저는 0.3 밖에 안됩니다.
어디가 잘못된 것인지요?
감사합니다.
- 1. ScreenHunter_183.jpg (0.07 MB)
답변 1
예스스탁 예스스탁 답변
2013-07-25 19:04:04
안녕하세요
예스스탁입니다.
If MarketPosition == 1 Then {
If highest(H, BarsSinceEntry+1) > EntryPrice + 0.4 Then
ExitLong ("1L", atstop, EntryPrice-0.05);
}
If MarketPosition == -1 Then {
If Lowest(L,BarsSinceEntry+1) < EntryPrice - 0.4 Then
ExitShort ("1S", atstop,EntryPrice+0.05);
}
청산식을 위와 같이 작성하셔야 합니다.
진입이 onclose타입이므로 entryprice는 진입신호가 발생한 봉 다음봉부터 인지가 가능합니다.
하지만 atstop이나 atlimit은 봉완성시에 셋팅이 되므로
매수신호가 발생한봉에서는 EntryPrice-0.05가 셋팅이 되어
다음봉에서 신호가 발생될수 있고.
하지만 이때 entryprice는 매수신호봉에서는
현재 발생한 무포지션 상태에서 발생했다면 entryprice는 0이고
매도포지션 상태에서 매수진입신호가 발생된것이면
매도진입가격으로 셋팅이 됩니다.
highest(H, BarsSinceEntry+1)도
무포지션에서 발생하면 신호봉은 BarsSinceEntry는 0이므로 highest(H,1)로 계산이 되고
매도포지션 상태에서 매수진입신호가 발생한 것이면
이전 매도진입이후의 최고가가 됩니다.
매도청산도 같은 경우입니다.
진입된 포지션을 완전히 확인후에 신호가 발생할수 있도록
위와 같이 작성해 주셔야 합니다.
또한 현재 작성된 식은 0.4의 수익판단을 신호봉의 고가와 저가를 포함해서
계산합니다. 신호가 종가상으로 발생했으므로
시호발생 이후의 시세만 염두에 두시면 BarsSinceEntry+1에서 +1을 제거하시면 됩니다.
If MarketPosition == 1 Then {
If highest(H, BarsSinceEntry) > EntryPrice + 0.4 Then
ExitLong ("1L", atstop, EntryPrice-0.05);
If MarketPosition == -1 Then {
If Lowest(L,BarsSinceEntry) < EntryPrice - 0.4 Then
ExitShort ("1S", atstop,EntryPrice+0.05);
}
즐거운 하루되세요
> 아스가드 님이 쓴 글입니다.
> 제목 : 청산식 문의 드립니다.
> If abs(c-o) > 0.3 and DayIndex > 0 Then {
If C > O Then
Buy("b");
If C < O Then
Sell("s");
}
### 청산전략###
# Breakeven Stop
If MarketPosition <> 0 Then {
If highest(H, BarsSinceEntry+1) > EntryPrice + 0.4 Then
ExitLong ("1L", atstop, EntryPrice-0.05);
If Lowest(L,BarsSinceEntry+1) < EntryPrice - 0.4 Then
ExitShort ("1S", atstop,EntryPrice+0.05);
}
SetStopEndofday;
======================
break_even 청산식을 구현하려는데, 첨부한 그림에서처럼 오류가 나옵니다.
매도 후, 매수로 리버스 한 후, 바로 다음 봉에서 손익분기 청산신호가 나옵니다.
2012.9.24 일 1분봉인데, 다른 곳에서도 비슷한 경우가 많이 나옵니다.
0.4pt 이상 수익이면 진입가 한틱 아래에서 청산한다면, 캡쳐한 그림의 맨 끝에 봉일텐데, 왜 저려는 걸까요?
참고로 청산된 봉의 고저는 0.3 밖에 안됩니다.
어디가 잘못된 것인지요?
감사합니다.
다음글