커뮤니티

예스스팟 10분 뒤 매수주문 취소

프로필 이미지
대가북극곰
2014-08-13 00:00:00
1262
글번호 223127
답변완료
예스스팟에서 주문 중 일부가 처음 체결 된지 10분이 지난 후에 혹 잔량이 남았을 때 그 잔량을 취소하는 수식 작성법을 알려주시면 감사하겠습니다.
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2014-08-22 18:27:59

안녕하세요 예스스탁입니다. 아래 내용 참고하시기 바랍니다. 1. 주문접수후에 10분뒤 취소이시면 아래내용과 같이 작성하시면 됩니다. var ID,OrderVol,FillVol; //매수주문 function Chart1_OnRiseSignal(Signal) { if (Signal.signalKind == 1) { OrderVol = 5; FillVol = 0; ID = Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), OrderVol, MarketData1.current, 0); } } //주문응답 function Main_OnOrderResponse(OrderResponse) { if (ID == OrderResponse.orderID) { //주문번호 저장 Num = OrderResponse.orderNum; //타이머셋팅 Main.SetTimer(1, 600000)//600초 } } //체결응답 function Main_OnNotifyFill(NotifyFill) { if (NotifyFill.orderNum == Num) { FillVol = FillVol + NotifyFill.fillCount; //누적체결수량이 주문수량과 같으면 //타이머 종료 if (FillVol == OrderVol) { Main.KillTimer(1); } } } //타이머 동작 function Main_OnTimer(nEventID) { if (nEventID == 1) { //타이머종료 Main.KillTimer(1); //미체결잔고셋팅 Account1.SetUnfillOrderNumber(Num); //남은 수량이 있으면 취소주문 if (Account1.Unfill.count > 0) { Account1.OrderCancel(Num); } } } 2. 일부체결이 된 이후에 10분뒤 취소이시면 아래와 같이 체결응답에서 일부체결 확인하고 타이머를 걸어주시면 됩니다. var ID,OrderVol,FillVol,FillCnt; //매수주문 function Chart1_OnRiseSignal(Signal) { if (Signal.signalKind == 1) { OrderVol = 5; FillVol = 0; FillCnt = 0; ID = Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), OrderVol, MarketData1.current, 0); } } //주문응답 function Main_OnOrderResponse(OrderResponse) { if (ID == OrderResponse.orderID) { //주문번호 저장 Num = OrderResponse.orderNum; } } //체결응답 function Main_OnNotifyFill(NotifyFill) { if (NotifyFill.orderNum == Num) { FillVol = FillVol + NotifyFill.fillCount; FillCnt = FillCnt+1; //주문 후 첫 체결시세를 받았는데 일부만 체결되었다면 if (FillCnt == 1 && FillVol < OrderVol) { //타이머셋팅 Main.SetTimer(1, 600000)//600초 } //누적체결수량이 주문수량과 같으면(전량체결) if (FillVol == OrderVol) { Main.KillTimer(1); } } } //타이머 동작 function Main_OnTimer(nEventID) { if (nEventID == 1) { //타이머종료 Main.KillTimer(1); //미체결잔고셋팅 Account1.SetUnfillOrderNumber(Num); //남은 수량이 있으면 취소주문 if (Account1.Unfill.count > 0) { Account1.OrderCancel(Num); } } } 즐거운 하루되세요 > 대가북극곰 님이 쓴 글입니다. > 제목 : 예스스팟 10분 뒤 매수주문 취소 > 예스스팟에서 주문 중 일부가 처음 체결 된지 10분이 지난 후에 혹 잔량이 남았을 때 그 잔량을 취소하는 수식 작성법을 알려주시면 감사하겠습니다.