커뮤니티

nh트레이더 잔고함수관련

프로필 이미지
freeman
2016-09-05 14:58:03
91
글번호 101690
답변완료
수고 많으십니다.^^* nh 트레이더 사용시(선물계좌는 한개임) 옵션 10분봉거래시 예를들면 시가 위에서 매수하고 잔고에 옵션포지션이 있을경우에만(왜냐면 매수체결이 안된경우대비) 청산식 주문이 나가도록 수식 좀 부탁드립니다. 해보니까 잘안되네요.ㅠㅠ
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2016-09-05 18:46:50

안녕하세요 예스스탁입니다. 문의하신 내용은 예스랭귀지의 잔고함수를 이용해서는 처리가 되지 않습니다. 예스랭귀지의 잔고함수는 실시간에서만 제공이 되며 차트의 시스템은 진입청산이 반복되어야 하는데 잔고체크해서 제어하게 되면 청산신호가 발생하지 않으면 그이후에 신호를 연결할수가 없습니다. 문의하신 내용은 예스스팟을 이용하셔서 처리하셔야 합니다. 차트는 예스랭귀지의 시스템식을 시험으로 적용해 조건만족하면 신호를 발생하게 하고 차트에서 신호가 발생하면 스팟에서 잔고확인후 주문을 집행하게 하셔야 합니다, 아래 스팟수식 참고하시기 바랍니다. 아래수식은 차트에서 신호가 발생하면 해당신호를 받아 주문을 내는데 청산신호가 발생할때 진입에 미체결 수량이 있으면 취소하고 잔고에 있는 수량만큼만 청산주문을 내게 됩니다. 스크립트 객체화면 설정 차트객체 추가 --> 속성에서 객체명 Chart1, 시스템적용된 차트와 아이디 연결 계좌객체 추가 --> 속성에서 객체명은 Account, 계좌번호 지정 종목객체 추가 --> 속성에서 객체명은 MarketData1, 차트와 같은 종목으로 지정 자세한 작성방법이나 객체설정방법은 예스스팟도움말 참고하시기 바랍니다. var pst,BuyID,SellID,BuyNum,SellNum; function Main_OnStart() { pst = 0; } function Chart1_OnRiseSignal(Signal) { if (Signal.signalKind == 1) //buy { pst = 1; BuyID = Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), Signal.count,MarketData1.Ask(1), 2); //지정가 } if (pst == 1 && Signal.signalKind == 2) //exitlong { pst = 0; //미체결취소 Account1.SetUnfillOrderNumber(BuyNum); if (Account1.Unfill.count > 0) { Account1.OrderCancel(BuyNum); } //잔고셋팅 Account1.SetBalanceItem(Main.GetOrderCode(MarketData1.code), 0); if (Account1.Balance.count > 0 && Account1.Balance.position == 2) { Account1.OrderSell(Main.GetOrderCode(MarketData1.code), Account1.Balance.count,0, 1);//시장가 } } if (Signal.signalKind == 3) //sell { pst = -1; Account1.OrderSell(Main.GetOrderCode(MarketData1.code), Signal.count,MarketData1.Bid(1), 2); } if (pst == -1 && Signal.signalKind == 4) //exitshort { pst = 0; Account1.SetUnfillOrderNumber(SellNum); if (Account1.Unfill.count > 0) { Account1.OrderCancel(SellNum); } Account1.SetBalanceItem(Main.GetOrderCode(MarketData1.code), 0); if (Account1.Balance.count > 0 && Account1.Balance.position == 1) { Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), Account1.Balance.count,0, 1); } } } function Main_OnOrderResponse(OrderResponse) { if (OrderResponse.orderID == BuyID ) { BuyNum = OrderResponse.orderNum; } if (OrderResponse.orderID == SellID) { SellNum = OrderResponse.orderNum; } } 즐거운 하루되세요 > freeman 님이 쓴 글입니다. > 제목 : nh트레이더 잔고함수관련 > 수고 많으십니다.^^* nh 트레이더 사용시(선물계좌는 한개임) 옵션 10분봉거래시 예를들면 시가 위에서 매수하고 잔고에 옵션포지션이 있을경우에만(왜냐면 매수체결이 안된경우대비) 청산식 주문이 나가도록 수식 좀 부탁드립니다. 해보니까 잘안되네요.ㅠㅠ