커뮤니티

미체결 취소주문

프로필 이미지
오토
2013-11-19 17:50:42
1021
글번호 222716
답변완료
주식 종목 오전에 매수 진입후 체결이 되지 않으면 13시 이후에 미체결된 주문들 모두 취소를 할려면 어떻게 해야되나요? ㅡㅡ; 이렇게 저렇게 해봤지만.. 맞는거 같지가 않네요. ㅠㅠ function Main_OnStart() { Main.MessageLog("시작") Main.SetTimer(1, 5000);//5초 간격으로 타이머 작동 } //지정시간 계좌 내 모든 종목 청산 function Main_OnTimer(nEventID) { var d = new Date(); var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); Main.MessageList(HHMMSS); if (nEventID == 1 && HHMMSS >= 130000) { Main.KillTimer(1); Main.MessageLog("취소") num = Account1.GetTheNumberOfUnfills(); for(var i = 0; i < num; i++) { Account1.SetBalanceIndex(i); Account1.SetUnfillOrderNumber(i); if (Account1.Unfill.count > 0) { Account1.OrderCancel(i); } } } }
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2013-11-29 16:24:40

안녕하세요 예스스탁입니다. 수정한 식입니다. 미체결객체를 셋팅하고 취소해야 합니다. 기존에는 잔고가 셋팅이되게 되어 있었습니다. 아래식 참고하시기 바랍니다. function Main_OnStart() { Main.MessageLog("시작") Main.SetTimer(1, 5000);//5초 간격으로 타이머 작동 } //지정시간 계좌 내 모든 종목 청산 function Main_OnTimer(nEventID) { var d = new Date(); var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); Main.MessageList(HHMMSS); if (nEventID == 1 && HHMMSS >= 130000) { Main.KillTimer(1); Main.MessageLog("취소") num = Account1.GetTheNumberOfUnfills();//미체결주문 갯수 for(var i = 0; i < num; i++) { Account1.SetUnfillIndex(i);//i순번의 미체결객체 셋팅 if (Account1.Unfill.count > 0)//미체결객체의 수량이 0이상이면 { //해당주문번호 취소주문 Account1.OrderCancel(Account1.Unfill.orderNum); } } } } 즐거운 하루되세요 > 오토 님이 쓴 글입니다. > 제목 : 미체결 취소주문 > 주식 종목 오전에 매수 진입후 체결이 되지 않으면 13시 이후에 미체결된 주문들 모두 취소를 할려면 어떻게 해야되나요? ㅡㅡ; 이렇게 저렇게 해봤지만.. 맞는거 같지가 않네요. ㅠㅠ function Main_OnStart() { Main.MessageLog("시작") Main.SetTimer(1, 5000);//5초 간격으로 타이머 작동 } //지정시간 계좌 내 모든 종목 청산 function Main_OnTimer(nEventID) { var d = new Date(); var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); Main.MessageList(HHMMSS); if (nEventID == 1 && HHMMSS >= 130000) { Main.KillTimer(1); Main.MessageLog("취소") num = Account1.GetTheNumberOfUnfills(); for(var i = 0; i < num; i++) { Account1.SetBalanceIndex(i); Account1.SetUnfillOrderNumber(i); if (Account1.Unfill.count > 0) { Account1.OrderCancel(i); } } } }