NH선물 모의투자로 예스스팟 테스트 중인데요
function Main_OnU*pdateMarket(sItemCode, lU*pdateID)
{
Account1.SetBalanceItem(OrderCode1, 0);
if (Account1.Balance.count == 0)
{
진입주문
}
... ...
}
이렇게 작성을 했는데요, 진입 조건이 맞아 처음 진입한 이후에는
Account1.Balance.count가 0보다 크게 나와야 하는게 정상 아닌가요?
0으로 나와서 계속 진입을 합니다.
어떻게 처리해야 할까요?
답변 부탁드립니다. 감사합니다.
답변 1
예스스탁
예스스탁 답변
2016-06-21 14:59:29
안녕하세요
예스스탁입니다.
현재 시세를 수신받을때마다 조건을 체크해 진입주문이 발생합니다.
주문 후 체결되기 전까지는 가원장에 값이 업데이트되기 전에
계속 체크해서 계속 주문이 발생하게 됩니다.
또한 실제 증권사의 원장은 체결이 발생하면
시세가 업데이트 되는 것 만큼 빠르게 업데이트가 되지 않습니다.
주문이후에 체결되고 원장 업데이트 디기 전까지는
주문로직을 타지않게 제어하셔야 합니다.
아래 내용 참고하셔서 수정보완해 제어해 가시기 바랍니다.
주문 후 체결이 발생하면
가원장과 원장과 다시 동기화를 하고
동기화가 완료되면 다시 주문이 들어갈수 있게 합니다.
var Order = false;
var OID = false;
var ONum = false;
function Main_OnU*pdateMarket(sItemCode, lU*pdateID)
{
if (Order == false)
{
Account1.SetBalanceItem(OrderCode1, 0);
if (Account1.Balance.count == 0)
{
Order = true;
OID = 진입주문;//Account1.OrderBuy or Account1.OrderSell
}
}
}
function Main_OnOrderResponse(OrderResponse)
{
if (OrderResponse.orderID == OID)
{
ONum = OrderResponse.orderNum;
}
}
function Main_OnNotifyFill(NotifyFill)
{
if (NotifyFill.orderNum == ONum)
{
Account1.Refresh(); //계좌 재동기화
}
}
function Main_OnUp*dateAccount(sAccntNum, sItemCode, lUp*dateID)
{
//계좌동기화 완료
if (lUp*dateID == 30000)
{
//false로 초기화
Order = false;
}
}
즐거운 하루되세요
> 우니쮸니 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> NH선물 모의투자로 예스스팟 테스트 중인데요
function Main_OnU*pdateMarket(sItemCode, lU*pdateID)
{
Account1.SetBalanceItem(OrderCode1, 0);
if (Account1.Balance.count == 0)
{
진입주문
}
... ...
}
이렇게 작성을 했는데요, 진입 조건이 맞아 처음 진입한 이후에는
Account1.Balance.count가 0보다 크게 나와야 하는게 정상 아닌가요?
0으로 나와서 계속 진입을 합니다.
어떻게 처리해야 할까요?
답변 부탁드립니다. 감사합니다.