input : 투자자금(10000000);
var : C2(0,data1),mav1(0,data2),mav2(0,data2);
C2 = data2(c);
mav1 = data2(ma(c,5));
mav2 = data2(ma(C,20));
if data2(crossup(C,openD(0)*1.01)) Then
buy("b",OnClose,def,floor(iff(mav1>mav2,투자자금*0.5,투자자금*0.2)/C));
if MarketPosition == 1 Then
{
if NextBarSdate != sdate Then
ExitLong("bx1");
if C2 <= C2[BarsSinceEntry]*0.99 Then
ExitLong("bx2");
}
참조데이타의 분봉의 신호에 따라 매수를 하고
다음날 시가매도를 하고 싶은데 당일 종가매도가 되는데 매도식의 어디가 잘못된건지?
수정부탁드립니다
답변 1
예스스탁
예스스탁 답변
2021-12-23 14:18:08
안녕하세요
예스스탁입니다.
if NextBarSdate != sdate Then
ExitLong("bx1");
랭귀지의 if문은 봉완성시가 기준입니다
봉완성은 다음봉 시가가 수신될 때로
위식은 봉완성시 완성봉 종가에 신호를 표시하게 됩니다.
진입청산함수에 별도로 타입을 지정하지 않으면 onclose 입니다.
실제 위식이 동작하면 다음날 시가가 수신되면
전날 마지막봉의 종가에 신호 표시를 하고 주문은 시가에 나가게 됩니다.
리포트상 신호도 다음날 시가에 표시하고자 하시면
아래와 같이 수정하시면 됩니다.
if NextBarSdate != sdate Then
ExitLong("bx1",atmarket);
즉 신호타입 중
onclose는 봉완성시(다음봉시가) 신호가 발생하고 주문이 집행되는데
신호표시와 리포트의 가격을 완성봉의 종가로 하고
atmarket은 봉완성시(다음봉시가) 신호가 발생하고 주문이 집행되는데
신호표시와 리포트의 가격 모드 다음봉시가로 합니다.
즐거운 하루되세요
> 후포 님이 쓴 글입니다.
> 제목 : 다음날 시가매도
> input : 투자자금(10000000);
var : C2(0,data1),mav1(0,data2),mav2(0,data2);
C2 = data2(c);
mav1 = data2(ma(c,5));
mav2 = data2(ma(C,20));
if data2(crossup(C,openD(0)*1.01)) Then
buy("b",OnClose,def,floor(iff(mav1>mav2,투자자금*0.5,투자자금*0.2)/C));
if MarketPosition == 1 Then
{
if NextBarSdate != sdate Then
ExitLong("bx1");
if C2 <= C2[BarsSinceEntry]*0.99 Then
ExitLong("bx2");
}
참조데이타의 분봉의 신호에 따라 매수를 하고
다음날 시가매도를 하고 싶은데 당일 종가매도가 되는데 매도식의 어디가 잘못된건지?
수정부탁드립니다