커뮤니티

문의드립니다.

프로필 이미지
우니쮸니
2016-05-24 18:10:14
1120
글번호 223919
답변완료
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으로 나와서 계속 진입을 합니다. 어떻게 처리해야 할까요? 답변 부탁드립니다. 감사합니다.