커뮤니티

미체결 잔량 확인 코드 관련 문의

프로필 이미지
eagle이글
2022-09-14 01:14:04.0
1323
글번호 225712
답변완료

첨부 이미지

안녕하세요. 미체결 잔량 확인 코드가 정상동작하지 않는 것 같아 문의 드립니다. 미체결 잔량을 확인하기 위해 아래와 같이 작성하였으나 BNum1주문에 대한 미체결 잔량이 존재함에도 if(Account1.Unfill.count > 0) 구문이 Else로 빠집니다. . 디버깅을 위해 스팟식에서 미체결 잔량이 발생하도록 지정가 주문하고, 타이머에서 미체결 잔량 체크하도록 하고 있는데(본 게시판에서 가이드 해주시는 코드 그대로) 정상 동작 하지 않습니다. 확인 부탁 드립니다. 한투 글로벌 예트 사용 중 입니다. 첨부화면 및 테스트 코드 공유합니다. 바쁘시겠지만 확인 부탁드립니다. var BuyID1,BxID1,SellID1,SxID1,BNum1,BxNum1,SNum1,SxNum1; var SigCnt = 0; var Level = 1; var UnfillObj; function Chart1_OnRiseSignal(Signal) { if (Signal.signalKind == SIG_BUY ) { BuyID1 = Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1,3900, 2); //미체결 잔량 테스트를 위한 지정가 주문 Main.MessageLog("SIG_BUY 가격:"+ MarketData1.Bid(10) +"종목코드:"+MarketData1.code); } } function Main_OnOrderResponse(OrderResponse) { //차트1 주문별 주문번호 저장 if (OrderResponse.orderID == BuyID1) { BNum1 = OrderResponse.orderNum; Main.SetTimer(11,3000); Main.MessageLog("SMain_OnOrderResponse BNum1 : "+ BNum1 +" BuyID1:"+BuyID1); } } function Main_OnNotifyFill(NotifyFill) { if (NotifyFill.orderNum == BNum1) { Main.MessageLog("Main_OnNotifyFill BNum1 : "+ BNum1 +" BuyID1:"+BuyID1); Main.KillTimer(11); } } function Main_OnTimer(nEventID) { if (nEventID == 11) { Main.MessageLog("Main_OnTimer BNum1 : "+ BNum1 +" BuyID1:"+BuyID1); Account1.SetUnfillOrderNumber(BNum1); if (Account1.Unfill.count > 0) { Main.MessageLog("Account1.Unfill.count > 0 BNum1: "+ BNum1 +" BuyID1:"+BuyID1); } else { Main.MessageLog("Account1.Unfill.count else BNum1: "+ BNum1 +" BuyID1:"+BuyID1); //Main.KillTimer(11); } } }
답변 3
프로필 이미지

예스스탁 예스스탁 답변

2022-09-23 16:51:18.0

안녕하세요 예스스탁입니다. 이용에 불편을 드려 죄송합니다. 주문번호에 자릿수 문제가 있어서 오늘 수정되어 반영되었습니다. 즐거운 하루되세요 > eagle이글 님이 쓴 글입니다. > 제목 : 미체결 잔량 확인 코드 관련 문의 > 안녕하세요. 미체결 잔량 확인 코드가 정상동작하지 않는 것 같아 문의 드립니다. 미체결 잔량을 확인하기 위해 아래와 같이 작성하였으나 BNum1주문에 대한 미체결 잔량이 존재함에도 if(Account1.Unfill.count > 0) 구문이 Else로 빠집니다. . 디버깅을 위해 스팟식에서 미체결 잔량이 발생하도록 지정가 주문하고, 타이머에서 미체결 잔량 체크하도록 하고 있는데(본 게시판에서 가이드 해주시는 코드 그대로) 정상 동작 하지 않습니다. 확인 부탁 드립니다. 한투 글로벌 예트 사용 중 입니다. 첨부화면 및 테스트 코드 공유합니다. 바쁘시겠지만 확인 부탁드립니다. var BuyID1,BxID1,SellID1,SxID1,BNum1,BxNum1,SNum1,SxNum1; var SigCnt = 0; var Level = 1; var UnfillObj; function Chart1_OnRiseSignal(Signal) { if (Signal.signalKind == SIG_BUY ) { BuyID1 = Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1,3900, 2); //미체결 잔량 테스트를 위한 지정가 주문 Main.MessageLog("SIG_BUY 가격:"+ MarketData1.Bid(10) +"종목코드:"+MarketData1.code); } } function Main_OnOrderResponse(OrderResponse) { //차트1 주문별 주문번호 저장 if (OrderResponse.orderID == BuyID1) { BNum1 = OrderResponse.orderNum; Main.SetTimer(11,3000); Main.MessageLog("SMain_OnOrderResponse BNum1 : "+ BNum1 +" BuyID1:"+BuyID1); } } function Main_OnNotifyFill(NotifyFill) { if (NotifyFill.orderNum == BNum1) { Main.MessageLog("Main_OnNotifyFill BNum1 : "+ BNum1 +" BuyID1:"+BuyID1); Main.KillTimer(11); } } function Main_OnTimer(nEventID) { if (nEventID == 11) { Main.MessageLog("Main_OnTimer BNum1 : "+ BNum1 +" BuyID1:"+BuyID1); Account1.SetUnfillOrderNumber(BNum1); if (Account1.Unfill.count > 0) { Main.MessageLog("Account1.Unfill.count > 0 BNum1: "+ BNum1 +" BuyID1:"+BuyID1); } else { Main.MessageLog("Account1.Unfill.count else BNum1: "+ BNum1 +" BuyID1:"+BuyID1); //Main.KillTimer(11); } } }
프로필 이미지

eagle이글

2022-10-14 00:38:16.0

안녕하세요. 먼저, 기존 문의드렸던 사항에 대해 개선되었음을 확인하였고, 빠른 조치에 감사드립니다. 다름아니라, 미체결잔량을 정상적으로 체크할 수 있게 되어 미체결시 주기적으로 정정 주문하도록 작성하여 운영 중인데, 미체결 발생시 타이머에서 정정주문 요청시Account1.OrderReplacePrice() 메소드가 없다는 에러가 발생함을 확인하여 확인요청드립니다. 예스스팟 편집기를 띄운 상태에서 미체결 발생하여 Main_OnTimer(nEventID) 타이머 메소드에서 Account1.OrderReplacePrice() 메소드를 호출하였는데 캡쳐3.jpg 파일과 같이 에러오류가 발생합니다. 해당라인은 184줄로 해당 줄은 캡쳐2.jpg와 같습니다. Account1.OrderReplacePrice() 메소드의 동작 확인 부탁드리겠습니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 미체결 잔량 확인 코드 관련 문의 > 안녕하세요 예스스탁입니다. 이용에 불편을 드려 죄송합니다. 주문번호에 자릿수 문제가 있어서 오늘 수정되어 반영되었습니다. 즐거운 하루되세요 > eagle이글 님이 쓴 글입니다. > 제목 : 미체결 잔량 확인 코드 관련 문의 > 안녕하세요. 미체결 잔량 확인 코드가 정상동작하지 않는 것 같아 문의 드립니다. 미체결 잔량을 확인하기 위해 아래와 같이 작성하였으나 BNum1주문에 대한 미체결 잔량이 존재함에도 if(Account1.Unfill.count > 0) 구문이 Else로 빠집니다. . 디버깅을 위해 스팟식에서 미체결 잔량이 발생하도록 지정가 주문하고, 타이머에서 미체결 잔량 체크하도록 하고 있는데(본 게시판에서 가이드 해주시는 코드 그대로) 정상 동작 하지 않습니다. 확인 부탁 드립니다. 한투 글로벌 예트 사용 중 입니다. 첨부화면 및 테스트 코드 공유합니다. 바쁘시겠지만 확인 부탁드립니다. var BuyID1,BxID1,SellID1,SxID1,BNum1,BxNum1,SNum1,SxNum1; var SigCnt = 0; var Level = 1; var UnfillObj; function Chart1_OnRiseSignal(Signal) { if (Signal.signalKind == SIG_BUY ) { BuyID1 = Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1,3900, 2); //미체결 잔량 테스트를 위한 지정가 주문 Main.MessageLog("SIG_BUY 가격:"+ MarketData1.Bid(10) +"종목코드:"+MarketData1.code); } } function Main_OnOrderResponse(OrderResponse) { //차트1 주문별 주문번호 저장 if (OrderResponse.orderID == BuyID1) { BNum1 = OrderResponse.orderNum; Main.SetTimer(11,3000); Main.MessageLog("SMain_OnOrderResponse BNum1 : "+ BNum1 +" BuyID1:"+BuyID1); } } function Main_OnNotifyFill(NotifyFill) { if (NotifyFill.orderNum == BNum1) { Main.MessageLog("Main_OnNotifyFill BNum1 : "+ BNum1 +" BuyID1:"+BuyID1); Main.KillTimer(11); } } function Main_OnTimer(nEventID) { if (nEventID == 11) { Main.MessageLog("Main_OnTimer BNum1 : "+ BNum1 +" BuyID1:"+BuyID1); Account1.SetUnfillOrderNumber(BNum1); if (Account1.Unfill.count > 0) { Main.MessageLog("Account1.Unfill.count > 0 BNum1: "+ BNum1 +" BuyID1:"+BuyID1); } else { Main.MessageLog("Account1.Unfill.count else BNum1: "+ BNum1 +" BuyID1:"+BuyID1); //Main.KillTimer(11); } } }
프로필 이미지

예스스탁 예스스탁 답변

2022-10-18 10:38:32.0

안녕하세요 예스스탁입니다. 해외선물에는 OrderReplacePrice함수가 제공되지 않습니다. 정정주문은 Account1.OrderReplace하나만 제공되고 있습니다. Account1.OrderReplace(sOrderNumber, nCount, dPrice) 즐거운 하루되세요 > eagle이글 님이 쓴 글입니다. > 제목 : Re : Re : 미체결 잔량 확인 코드 관련 문의 > 안녕하세요. 먼저, 기존 문의드렸던 사항에 대해 개선되었음을 확인하였고, 빠른 조치에 감사드립니다. 다름아니라, 미체결잔량을 정상적으로 체크할 수 있게 되어 미체결시 주기적으로 정정 주문하도록 작성하여 운영 중인데, 미체결 발생시 타이머에서 정정주문 요청시Account1.OrderReplacePrice() 메소드가 없다는 에러가 발생함을 확인하여 확인요청드립니다. 예스스팟 편집기를 띄운 상태에서 미체결 발생하여 Main_OnTimer(nEventID) 타이머 메소드에서 Account1.OrderReplacePrice() 메소드를 호출하였는데 캡쳐3.jpg 파일과 같이 에러오류가 발생합니다. 해당라인은 184줄로 해당 줄은 캡쳐2.jpg와 같습니다. Account1.OrderReplacePrice() 메소드의 동작 확인 부탁드리겠습니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 미체결 잔량 확인 코드 관련 문의 > 안녕하세요 예스스탁입니다. 이용에 불편을 드려 죄송합니다. 주문번호에 자릿수 문제가 있어서 오늘 수정되어 반영되었습니다. 즐거운 하루되세요 > eagle이글 님이 쓴 글입니다. > 제목 : 미체결 잔량 확인 코드 관련 문의 > 안녕하세요. 미체결 잔량 확인 코드가 정상동작하지 않는 것 같아 문의 드립니다. 미체결 잔량을 확인하기 위해 아래와 같이 작성하였으나 BNum1주문에 대한 미체결 잔량이 존재함에도 if(Account1.Unfill.count > 0) 구문이 Else로 빠집니다. . 디버깅을 위해 스팟식에서 미체결 잔량이 발생하도록 지정가 주문하고, 타이머에서 미체결 잔량 체크하도록 하고 있는데(본 게시판에서 가이드 해주시는 코드 그대로) 정상 동작 하지 않습니다. 확인 부탁 드립니다. 한투 글로벌 예트 사용 중 입니다. 첨부화면 및 테스트 코드 공유합니다. 바쁘시겠지만 확인 부탁드립니다. var BuyID1,BxID1,SellID1,SxID1,BNum1,BxNum1,SNum1,SxNum1; var SigCnt = 0; var Level = 1; var UnfillObj; function Chart1_OnRiseSignal(Signal) { if (Signal.signalKind == SIG_BUY ) { BuyID1 = Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1,3900, 2); //미체결 잔량 테스트를 위한 지정가 주문 Main.MessageLog("SIG_BUY 가격:"+ MarketData1.Bid(10) +"종목코드:"+MarketData1.code); } } function Main_OnOrderResponse(OrderResponse) { //차트1 주문별 주문번호 저장 if (OrderResponse.orderID == BuyID1) { BNum1 = OrderResponse.orderNum; Main.SetTimer(11,3000); Main.MessageLog("SMain_OnOrderResponse BNum1 : "+ BNum1 +" BuyID1:"+BuyID1); } } function Main_OnNotifyFill(NotifyFill) { if (NotifyFill.orderNum == BNum1) { Main.MessageLog("Main_OnNotifyFill BNum1 : "+ BNum1 +" BuyID1:"+BuyID1); Main.KillTimer(11); } } function Main_OnTimer(nEventID) { if (nEventID == 11) { Main.MessageLog("Main_OnTimer BNum1 : "+ BNum1 +" BuyID1:"+BuyID1); Account1.SetUnfillOrderNumber(BNum1); if (Account1.Unfill.count > 0) { Main.MessageLog("Account1.Unfill.count > 0 BNum1: "+ BNum1 +" BuyID1:"+BuyID1); } else { Main.MessageLog("Account1.Unfill.count else BNum1: "+ BNum1 +" BuyID1:"+BuyID1); //Main.KillTimer(11); } } }