커뮤니티

오류메세지??

프로필 이미지
너무조아
2016-02-10 19:29:35
2204
글번호 223808
답변완료

첨부 이미지

NO. 1337 호의 연속입니다. 예스글러벌 모의시장에서 테스트결과 주문함수의 가격구분을 아래의 시스템식과 같이 지정가 2로 변경 하였으나 동일한 오류메세지가 발생 합니다. 원인이 다른 데에 있는 것 같습니다. 그리고 위 그림과 같이 오류메세지를 확인 크릭 후에는 스크립트메세지에서는 다음단계로 진행은 되나 체결 통보가 발생하지 아니 합니다. 또한 예스글러벌 모의시장 차트의 오류사항을 NH선물에 수차례 시정을 요구 하였으나 분봉차트의 경우에는 업데이트가 되지 아니하여 시험작동을 할 수가 없습니다. 그리고 예스글러벌 리얼시장의 차트는 분봉차트는 5000 바 틱차트는 1000 바로 시스템을 구현하기에는 너무 짧아 보입니다. * 오류 메세지 내용 1. 종목코드값을 확인하시기바랍니다. 2. 미체결 내역에서 주문번호를 찾을 수 없어서 주문이 자체 거부 되었습니다. 참조사항 차트객체명 : C1 차트아이디 : D101 (자동매매 활성화 됨) 종목객체명 : SP 종목명 : E-mini S&P 500(2016.3) 종목코드 : ESH 16 var Position; var OrderCode; var BID; var SID; var SNum; var BNum; var BuyFill; var SellFill; function Main_OnStart() { Main.MessageLog("시작"); Position = 0; OrderCode = Main.GetOrderCode(SP.Code); } function C1_OnRiseSignal(Signal) { Main.MessageLog("신호완성/"+Signal.signalKind); if (Signal.signalKind == 1) { Position = 1; BID = A1.OrderBuy(SP.Code, 1, SP.Ask(2),2); Main.MessageLog("매수진입"); BuyFill = 0; } if (Position == 1 && Signal.signalKind == 2) { if (BuyFill == 1) { A1.OrderSell(SP.Code, 1, SP.Bid(2),2); Main.MessageLog("매수청산실행"); } if (BuyFill == 0) { A1.OrderCancel(BNum); Main.MessageLog("매수청산취소"); } } if (Signal.signalKind == 3) { Position = -1; SellFill = 0; SID = A1.OrderSell(SP.Code, 1, SP.Bid(2), 2); Main.MessageLog("매도진입"); } if (Position == -1 && Signal.signalKind == 4) { if (SellFill == 1) { A1.OrderBuy(SP.Code, 1, Ask(2), 2); Main.MessageLog("매도청산"); } if (SellFill == 0) { A1.OrderCancel(SNum); Main.MessageLog("매도청산취소"); } } } function Main_OnOrderResponse(OrderResponse) { if (Position == 1 && OrderResponse.orderID == BID) { BNum = OrderResponse.orderNum; } if (Position == -1 && OrderResponse.orderID == SID) { SNum = OrderResponse.orderNum; } } function Main_OnNotifyFill(NotifyFill) { if (Position == 1 && NotifyFill.orderNum == BNum) { BuyFill = 1; } if (Position == -1 && NotifyFill.orderNum == SNum) { SellFill = 1; } }
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2016-02-16 09:29:11

안녕하세요 예스스탁입니다. 1 SP.Code --> SP.code 종목객체의 종목코드는 소문자로 code입니다. 잘못된 프롸퍼티를 지정되어 종목코드가 지정이 되지 않고 주문이 나가므로 종목코드값을 확인하라는 메세지가 발생합니다. 2 주문이 정상적으로 접수가 되지 않아 미체결 내역이 없는데 취소주문이 수행되므로 거부된것 뿐입니다. 3 데이터 부분은 저희쪽에서도 건의드리도록 하겠습니다. 4 수정한 식입니다. var Position; var OrderCode; var BID; var SID; var SNum; var BNum; var BuyFill; var SellFill; function Main_OnStart() { Main.MessageLog("시작"); Position = 0; OrderCode = Main.GetOrderCode(SP.Code); } function C1_OnRiseSignal(Signal) { Main.MessageLog("신호완성/"+Signal.signalKind); if (Signal.signalKind == 1) { Position = 1; BID = A1.OrderBuy(SP.code, 1, SP.Ask(2),2); Main.MessageLog("매수진입"); BuyFill = 0; } if (Position == 1 && Signal.signalKind == 2) { if (BuyFill == 1) { A1.OrderSell(SP.code, 1, SP.Bid(2),2); Main.MessageLog("매수청산실행"); } if (BuyFill == 0) { A1.OrderCancel(BNum); Main.MessageLog("매수청산취소"); } } if (Signal.signalKind == 3) { Position = -1; SellFill = 0; SID = A1.OrderSell(SP.code, 1, SP.Bid(2), 2); Main.MessageLog("매도진입"); } if (Position == -1 && Signal.signalKind == 4) { if (SellFill == 1) { A1.OrderBuy(SP.code, 1, Ask(2), 2); Main.MessageLog("매도청산"); } if (SellFill == 0) { A1.OrderCancel(SNum); Main.MessageLog("매도청산취소"); } } } function Main_OnOrderResponse(OrderResponse) { if (Position == 1 && OrderResponse.orderID == BID) { BNum = OrderResponse.orderNum; } if (Position == -1 && OrderResponse.orderID == SID) { SNum = OrderResponse.orderNum; } } function Main_OnNotifyFill(NotifyFill) { if (Position == 1 && NotifyFill.orderNum == BNum) { BuyFill = 1; } if (Position == -1 && NotifyFill.orderNum == SNum) { SellFill = 1; } } 즐거운 하루되세요 > 너무조아 님이 쓴 글입니다. > 제목 : 오류메세지?? > NO. 1337 호의 연속입니다. 예스글러벌 모의시장에서 테스트결과 주문함수의 가격구분을 아래의 시스템식과 같이 지정가 2로 변경 하였으나 동일한 오류메세지가 발생 합니다. 원인이 다른 데에 있는 것 같습니다. 그리고 위 그림과 같이 오류메세지를 확인 크릭 후에는 스크립트메세지에서는 다음단계로 진행은 되나 체결 통보가 발생하지 아니 합니다. 또한 예스글러벌 모의시장 차트의 오류사항을 NH선물에 수차례 시정을 요구 하였으나 분봉차트의 경우에는 업데이트가 되지 아니하여 시험작동을 할 수가 없습니다. 그리고 예스글러벌 리얼시장의 차트는 분봉차트는 5000 바 틱차트는 1000 바로 시스템을 구현하기에는 너무 짧아 보입니다. * 오류 메세지 내용 1. 종목코드값을 확인하시기바랍니다. 2. 미체결 내역에서 주문번호를 찾을 수 없어서 주문이 자체 거부 되었습니다. 참조사항 차트객체명 : C1 차트아이디 : D101 (자동매매 활성화 됨) 종목객체명 : SP 종목명 : E-mini S&P 500(2016.3) 종목코드 : ESH 16 var Position; var OrderCode; var BID; var SID; var SNum; var BNum; var BuyFill; var SellFill; function Main_OnStart() { Main.MessageLog("시작"); Position = 0; OrderCode = Main.GetOrderCode(SP.Code); } function C1_OnRiseSignal(Signal) { Main.MessageLog("신호완성/"+Signal.signalKind); if (Signal.signalKind == 1) { Position = 1; BID = A1.OrderBuy(SP.Code, 1, SP.Ask(2),2); Main.MessageLog("매수진입"); BuyFill = 0; } if (Position == 1 && Signal.signalKind == 2) { if (BuyFill == 1) { A1.OrderSell(SP.Code, 1, SP.Bid(2),2); Main.MessageLog("매수청산실행"); } if (BuyFill == 0) { A1.OrderCancel(BNum); Main.MessageLog("매수청산취소"); } } if (Signal.signalKind == 3) { Position = -1; SellFill = 0; SID = A1.OrderSell(SP.Code, 1, SP.Bid(2), 2); Main.MessageLog("매도진입"); } if (Position == -1 && Signal.signalKind == 4) { if (SellFill == 1) { A1.OrderBuy(SP.Code, 1, Ask(2), 2); Main.MessageLog("매도청산"); } if (SellFill == 0) { A1.OrderCancel(SNum); Main.MessageLog("매도청산취소"); } } } function Main_OnOrderResponse(OrderResponse) { if (Position == 1 && OrderResponse.orderID == BID) { BNum = OrderResponse.orderNum; } if (Position == -1 && OrderResponse.orderID == SID) { SNum = OrderResponse.orderNum; } } function Main_OnNotifyFill(NotifyFill) { if (Position == 1 && NotifyFill.orderNum == BNum) { BuyFill = 1; } if (Position == -1 && NotifyFill.orderNum == SNum) { SellFill = 1; } }