답변완료
미체결 잔량 확인 코드 관련 문의
안녕하세요.
미체결 잔량 확인 코드가 정상동작하지 않는 것 같아 문의 드립니다.
미체결 잔량을 확인하기 위해 아래와 같이 작성하였으나
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);
}
}
}
답변완료
부탁드려요
아래수식에서 매수 금액을 n 만큼 지정할수 있게 도와주세요
부탁드려요 머리가 안 돌아가 이것 저것 짜집기해도 안 되네요
//스팟 첫 실행시
function Main_OnStart()
{
//1번 타이머, 60초
Main.SetTimer(1, 5000);
}
function Main_OnTimer(nEventID)
{
if (nEventID == 1)
{
//종목검색 수행
Main.ReqPowerSearch("3")
}
}
//종목검색 완료
function Main_OnRcvItemList(aItemList, nCount)
{
//1종목 이상 검색되면
if (nCount >= 1)
{
//리스트 첫종목부터 마지막종목까지 순차적으로
//1번 타이머 동작
for (var i = 0; i < nCount; i++)
{
//잔고를 셋팅
Account1.SetBalance(aItemList[i],0);
//보유수량이 없으면
if (Account1.Balance.count == 0)
{
//매수주문
Account1.OrderBuy(aItemList[i], 1,0,1);
}
}
}
}
답변완료
예스글로벌 (NH선물) 에서 해외 선물 MarketData 에서 일부 데이터가 쓰레기 값임
안녕하세요.
예스글로벌 (NH선물)의 예스스팟을 이용해서 프로그램 개발하고 있는데요.
해외 선물 MarketData 에서 일부 데이터가 쓰레기 값으로 차 있습니다.
가장 최근월물 E-mini S&P 500 과 Nasdaq 100 futures 모두 MarketData 에 GetPrevHigh(1), GetPrevOpen(1), GetPrevHigh(1), GetPrevLow(1) 를 해보면 전부 의미있는 데이터가 아닌 1.4814925181420344e-309 이런식의 값들이 들어가 있습니다.
MarketData 를 요청할때는 올바르게 다음과 같이 요청했습니다.
// 하루 전의 데이터만 필요해서 1을 넣었습니다.
Main.ReqMarketData(esFuturesInfoAndTradingHour.FuturesInfo.FutureCode, 1, 0);
Main.ReqMarketData(nqFuturesInfoAndTradingHour.FuturesInfo.FutureCode, 1, 0);
이러고 나서 Main_OnRcvMarketData 내부에서
MarketData.GetPrevOpen(1); 이렇게 하면 이상한 값이 나옵니다.