커뮤니티
분할청산 수식요청 합니다
2018-11-13 21:57:58
185
글번호 123632
현재 20분봉에서 당일종가50%, 익일시가 잔량전부 분할청산을 위해
#매수후 종가 청산(수량의 50%)
if MarketPosition == 1 and stime >= 150000 and stime[1] < 150000 Then
exitlong("bx1",OnClose,def,"",Floor(MaxContracts*0.5),1);
#매수후 다음날 시가에 잔량청산
if MarketPosition == 1 and NextBarSdate != sdate Then
exitlong("bx2",AtMarket);
을 적용하니
익일 시가청산은 잘 되고
당일150000~152000에 형성된 마지막20분봉의 종가에 "bx1"50% 청산신호는 생기지만
종가에 청산주문이 실제로 나가질 않습니다
(그러나 시스템 성능보고서 거래내역에는 청산된것으로 표시됨)
진입수량의 50%를 당일 종가에 청산 할 수있는 수식도움 요청합니다
답변 1
예스스탁 예스스탁 답변
2018-11-14 14:05:01
안녕하세요
예스스탁입니다.
수식에서 if문은 봉완성시에 조건만족여부를 판단합니다.
봉완성시는 다음봉 시가가 수신될때입니다.
20분주기에서 15시봉(150000~151959)은
정규장이후에 다음봉인 동시호가 데이터가 수신되어야 완성되는데
동시호가 데이터는 거래소에서 장이 모두 끝나면 끝내 주는 데이터입니다.
그러므로 동시호가 데이터가 수신되고 발생되는 신호는
차트에는 표시되지만 실제 주문을 집행해도 장이 끝나 주문이 거부가 됩니다.
그러므로 시스템은 주문을 모두 정규장안에서 나가게 구사하셔야 합니다.
아래와 같이 수정하시면 15시봉 시가수신될때 절반이 청산되고
나머지 수량은 다음날 시가에 청산됩니다.
#매수후 종가 청산(수량의 50%)
if MarketPosition == 1 and NextBarStime >= 150000 and stime < 150000 Then
exitlong("bx1",AtMarket,def,"",Floor(MaxContracts*0.5),1);
#매수후 다음날 시가에 잔량청산
if MarketPosition == 1 and NextBarSdate != sdate Then
exitlong("bx2",AtMarket);
즐거우 하루되세요
> dk3113 님이 쓴 글입니다.
> 제목 : 분할청산 수식요청 합니다
> 현재 20분봉에서 당일종가50%, 익일시가 잔량전부 분할청산을 위해
#매수후 종가 청산(수량의 50%)
if MarketPosition == 1 and stime >= 150000 and stime[1] < 150000 Then
exitlong("bx1",OnClose,def,"",Floor(MaxContracts*0.5),1);
#매수후 다음날 시가에 잔량청산
if MarketPosition == 1 and NextBarSdate != sdate Then
exitlong("bx2",AtMarket);
을 적용하니
익일 시가청산은 잘 되고
당일150000~152000에 형성된 마지막20분봉의 종가에 "bx1"50% 청산신호는 생기지만
종가에 청산주문이 실제로 나가질 않습니다
(그러나 시스템 성능보고서 거래내역에는 청산된것으로 표시됨)
진입수량의 50%를 당일 종가에 청산 할 수있는 수식도움 요청합니다
다음글
이전글