커뮤니티

스팟 오류 내용 확인

프로필 이미지
yes랭귀지
2019-10-01 01:46:01
2654
글번호 214919
답변완료

첨부 이미지

주문후 체결되지 못해 포지션만 잡힌 상태에서 청산 주문이 체결되어 반대로 진입하는 현상을 막기위해 예스스팟을 사용하여 현진입수량이 0이면 청산 주문이 취소되는 코드를 작성하였습니다. 참고로 아래 코드는 수식작성 게시판에서 답변받을 내용을 조금 수정한 코드입니다. 그런데 그림처럼 전송오류가 나오면서 주문이 들어가지 않는거 같습니다. 업로드한 그림은 모의투자에서 발동시킨 화면 입니다. 어떤 문제가 있는건지 확인 부탁드립니다. 그리고 스팟에서 주문하게 수식을 만들면 시스템 수식에의한 주문은 실제 실행하지 않나요? 스팟에서 주문은 오류났지만 시스템 주문 신호가 발생했는데 거래내역 조회 화면(4250)에서 확인되는 거래가 0건으로 확인 됩니다. var BID,SID,BNum,SNum; var vol = 2; //진입수량 1걔 function Main_OnStart() { Main.MessageList("Start") } //연결된 차트에서 신호발생 function C1_OnRiseSignal(Signal) { //매수진입신호이면 if (Signal.signalKind == 1) { //매도3호가로 지정가 주문하고 주문아이디는 BID에 저장 BID = A1.OrderBuy(Main.GetOrderCode(Signal.code),vol,Signal.price,2); } if (Signal.signalKind == 2) { //매수진입주문의 주문번호로 미체결 셋팅 A1.SetUnfill(BNum); //미체결 수량이 잇으면 if ( A1.Unfill.count > 0 ) { //취소 A1.OrderCancel(Bnum); } //잔고셋팅 A1.SetBalance(Main.GetOrderCode(Signal.code), 0); //매수포지션 잔고가 있으면 if (A1.Balance.count > 0 && A1.Balance.position == 2) { //매수3호가로 잔고수량만큼 매도주문 A1.OrderSell(Main.GetOrderCode(Signal.code),A1.Balance.count,Signal.price,1) } } //매도진입신호 발생 if (Signal.signalKind == 3) { //매수3호가로 지정가 주문하고 주문아이디는 SID에 저장 SID = A1.OrderSell(Main.GetOrderCode(Signal.code),vol,Signal.price,2); } //매도청산신호 발생 if (Signal.signalKind == 4) { //매도진입주문 미체결객체 셋팅 A1.SetUnfill(SNum); //미체결수량이 있으면 if ( A1.Unfill.count > 0) { //취소 A1.OrderCancel(Snum); } //잔고셋팅 A1.SetBalance(Main.GetOrderCode(Signal.code), 0); //매도포지션 잔고가 있으면 if (A1.Balance.count > 0 && A1.Balance.position == 1) { //매도3호가로 잔고수량만큼 매수주문 A1.OrderBuy(Main.GetOrderCode(Signal.code),A1.Balance.count,Signal.price,1) } } } //주문응답 function Main_OnOrderResponse(OrderResponse) { //BID에 저장된값과 동일아이디의 주문응답이면 if (OrderResponse.orderID == BID) { //주문번호 BNum에 저장 BNum = OrderResponse.orderNum; } //SID에 저장된값과 동일아이디의 주문응답이면 if (OrderResponse.orderID == SID) { //주문번호 SNum에 저장 SNum = OrderResponse.orderNum; } }
예스글로벌 (NH선물)
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2019-10-01 16:57:48

안녕하세요 예스스탁입니다. 수식에 문제가 있지 않습니다. 해당 선물사의 모의투자에서 발생하는 문제입니다. 해외선물은 저희는 프로그램만 제공하기에 데이타나 모의투자등에 대한 관리등의 권한이 없습니다. 올려주신 내용은 NH선물사에 전달해서 해당 종목을 거래하기 위해서는 영업팀으로 연락을 하셔야 한다는 답변을 받았습니다. NH선물사의 영업팀 전화번호를 남겨드립니다. 02-3774-0311 즐거운 하루되세요 > yes랭귀지 님이 쓴 글입니다. > 제목 : 스팟 오류 내용 확인 > 주문후 체결되지 못해 포지션만 잡힌 상태에서 청산 주문이 체결되어 반대로 진입하는 현상을 막기위해 예스스팟을 사용하여 현진입수량이 0이면 청산 주문이 취소되는 코드를 작성하였습니다. 참고로 아래 코드는 수식작성 게시판에서 답변받을 내용을 조금 수정한 코드입니다. 그런데 그림처럼 전송오류가 나오면서 주문이 들어가지 않는거 같습니다. 업로드한 그림은 모의투자에서 발동시킨 화면 입니다. 어떤 문제가 있는건지 확인 부탁드립니다. 그리고 스팟에서 주문하게 수식을 만들면 시스템 수식에의한 주문은 실제 실행하지 않나요? 스팟에서 주문은 오류났지만 시스템 주문 신호가 발생했는데 거래내역 조회 화면(4250)에서 확인되는 거래가 0건으로 확인 됩니다. var BID,SID,BNum,SNum; var vol = 2; //진입수량 1걔 function Main_OnStart() { Main.MessageList("Start") } //연결된 차트에서 신호발생 function C1_OnRiseSignal(Signal) { //매수진입신호이면 if (Signal.signalKind == 1) { //매도3호가로 지정가 주문하고 주문아이디는 BID에 저장 BID = A1.OrderBuy(Main.GetOrderCode(Signal.code),vol,Signal.price,2); } if (Signal.signalKind == 2) { //매수진입주문의 주문번호로 미체결 셋팅 A1.SetUnfill(BNum); //미체결 수량이 잇으면 if ( A1.Unfill.count > 0 ) { //취소 A1.OrderCancel(Bnum); } //잔고셋팅 A1.SetBalance(Main.GetOrderCode(Signal.code), 0); //매수포지션 잔고가 있으면 if (A1.Balance.count > 0 && A1.Balance.position == 2) { //매수3호가로 잔고수량만큼 매도주문 A1.OrderSell(Main.GetOrderCode(Signal.code),A1.Balance.count,Signal.price,1) } } //매도진입신호 발생 if (Signal.signalKind == 3) { //매수3호가로 지정가 주문하고 주문아이디는 SID에 저장 SID = A1.OrderSell(Main.GetOrderCode(Signal.code),vol,Signal.price,2); } //매도청산신호 발생 if (Signal.signalKind == 4) { //매도진입주문 미체결객체 셋팅 A1.SetUnfill(SNum); //미체결수량이 있으면 if ( A1.Unfill.count > 0) { //취소 A1.OrderCancel(Snum); } //잔고셋팅 A1.SetBalance(Main.GetOrderCode(Signal.code), 0); //매도포지션 잔고가 있으면 if (A1.Balance.count > 0 && A1.Balance.position == 1) { //매도3호가로 잔고수량만큼 매수주문 A1.OrderBuy(Main.GetOrderCode(Signal.code),A1.Balance.count,Signal.price,1) } } } //주문응답 function Main_OnOrderResponse(OrderResponse) { //BID에 저장된값과 동일아이디의 주문응답이면 if (OrderResponse.orderID == BID) { //주문번호 BNum에 저장 BNum = OrderResponse.orderNum; } //SID에 저장된값과 동일아이디의 주문응답이면 if (OrderResponse.orderID == SID) { //주문번호 SNum에 저장 SNum = OrderResponse.orderNum; } }