첨부 이미지
그림1
안녕하세요.
미체결 잔량 확인 코드가 정상동작하지 않는 것 같아 문의 드립니다.
미체결 잔량을 확인하기 위해 아래와 같이 작성하였으나
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);
}
}
}