커뮤니티

예스스팟 Q&A

답변완료

문의 (YS)

1. YS청산코드 일부분입니다. 만약 2.98 호가에서 청산시그널이 발생하면 3.01에 주문이 되는 문제가 발생하면서 YS주문메시지에 "호가단위에 어긋납니다."라는 메시지가 출력이됩니다. 이를 수정부탁드리겠습니다. if (gPosition == 1 && gSignalKind == SIG_EXITLONG) { // gCallOrderCode 잔고 셋팅 CA.SetBalanceItem(gCallOrderCode, 0); // 잔고에 수량이 존재하면 if (CA.Balance.count > 0) { if (Option.GetCurrentByCode(gCallOrderCode) >= 3.0) var Tick = 0.05; else var Tick = 0.01; var EXLxCallPrice1 = Option.GetCurrentByCode(gCallOrderCode) + Tick * 3; gEXLxID1 = CA.OrderSell(gCallOrderCode, CA.Balance.count, EXLxCallPrice1, 0);
프로필 이미지
TRF
2014-03-24
1290
글번호 222880

시골소년 님에 의해서 삭제되었습니다.

프로필 이미지
시골소년
2014-03-23
11
글번호 222879

파문일기 님에 의해서 삭제되었습니다.

프로필 이미지
파문일기
2014-03-19
0
글번호 222871
답변완료

수식 점검 부탁드립니다^^

계좌객체 옵션객체 설정.. 1. 장시작후 2.5에 근접한 옵션을 설정(2.5 대항옵션)후 콜 2.5, 풋 2.5근접 옵션을 기준으로 위, 아래 행사가를 3-4개 참조해서 확장챠트를 콜 풋 각각 만듭니다. 2. 만들어진 확장챠트에 예스랭기지 수식으로 만들어진 시스템(OpCall, OpPut)을 적용하고 싶습니다. - 현재는 예스스팟전략 시험가동시 messagelist(콜,풋코드)가 뜹니다. 챠트 객체 생성후에 "정의되지 않은 업무가 요청되었습니다.(E_UNKONOWN_GBN)(10003)" 이라 뜨는데... 3. OpCall, OpPut 시스템의 진입명과 수량을 그대로 이용하고 싶습니다. 첨부파일은 적용하는 시스템이고, 또 챠트를 띄우는 방법을 알려주시면 ..... 감사합니다 var Start; var UNum; var LNum; var CallCode; var CallPrice; var PutCode; var PutPrice; var CC; var PP; var CallOrderCode; var PutOrderCode; var vol1; var vol2; var CallStart; var PutStart; var ChartEx1 ;//= null; var ChartEx2 ;//= null; function Main_OnStart() { Start = 0; vol1 = 0; vol2 = 0; CallStart = 0; PutStart = 0; var d = new Date(); var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); //9시 5분에 if (Start == 0 && HHMMSS >= 90001)// && HHMMSS >= 90030 { Start = 1; UNum = Option.uppersATM; LNum = Option.lowersATM; CallCode = new Array(UNum+LNum+1); PutCode = new Array(UNum+LNum+1); CallPrice = new Array(UNum+LNum+1); PutPrice = new Array(UNum+LNum+1); for (var i = -LNum; i <= UNum; i++) { CallPrice[i+LNum] = Math.abs(Option.GetCurrent(0, i)-2.3); CallCode[i+LNum] = Option.GetATMCallRecent(i); } CC = 99999999; // CallOrderCode = -1; for (var i = -LNum; i <= UNum; i++) { if (CallPrice[i+LNum] < CC) { CC = CallPrice[i+LNum]; CallOrderCode = CallCode[i+LNum]; } if (CallOrderCode == CallCode[i+LNum]) { CallOrderCode1 = CallCode[i+LNum-1]; CallOrderCode2 = CallCode[i+LNum+1]; CallOrderCode3 = CallCode[i+LNum+2]; } } for (var ii = -UNum; ii <= LNum; ii++) { PutPrice[ii+UNum] = Math.abs(Option.GetCurrent(1, ii)-2.3); PutCode[ii+UNum] = Option.GetATMPutRecent(ii); } PP = 99999999; // PutOrderCode = -1; for (var ii = -UNum; ii < LNum; ii++) { if (PutPrice[ii+UNum] <= PP) { PP = PutPrice[ii+UNum]; PutOrderCode = PutCode[ii+UNum]; } if (PutOrderCode == PutCode[ii+UNum]) { PutOrderCode1 = PutCode[ii+UNum-1]; PutOrderCode2 = PutCode[ii+UNum+1]; PutOrderCode3 = PutCode[ii+UNum+2]; PutOrderCode4 = PutCode[ii+UNum+3]; } } Main.MessageList("콜",CallOrderCode ,"풋",PutOrderCode); // 이자리까지는 확인이 됩니다. 확장챠트 형서이 않됩니다. //확장 차트객체 요청 var ReqChartItem1 = new ReqChartItem(CallOrderCode,10, CHART_PERIOD_SECOND, 5000, CHART_REQCOUNT_BAR, false, false); // var ChartSet2 = new ReqChartItem(PutOrderCode,10, CHART_PERIOD_SECOND, 5000, CHART_REQCOUNT_BAR, false, false); //참조데이터 추가 var ReqChartItem2 = new ReqChartItem(PutOrderCode1, 10, CHART_PERIOD_SECOND, 3000, CHART_REQCOUNT_BAR, false, false); var ReqChartItem3 = new ReqChartItem(PutOrderCode, 10, CHART_PERIOD_SECOND, 3000, CHART_REQCOUNT_BAR, false, false); var ReqChartItem4 = new ReqChartItem(PutOrderCode2, 10, CHART_PERIOD_SECOND, 3000, CHART_REQCOUNT_BAR, false, false); var ReqChartItem5 = new ReqChartItem(CallOrderCode1, 10, CHART_PERIOD_SECOND, 3000, CHART_REQCOUNT_BAR, false, false); var ReqChartItem6 = new ReqChartItem(CallOrderCode2, 10, CHART_PERIOD_SECOND, 3000, CHART_REQCOUNT_BAR, false, false); var ReqChartItem7 = new ReqChartItem("00000000", 10, CHART_PERIOD_SECOND, 3000, CHART_REQCOUNT_BAR, false, false); var ReqChartItem8 = new ReqChartItem(PutOrderCode3, 10, CHART_PERIOD_SECOND, 3000, CHART_REQCOUNT_BAR, false, false); var ReqChartItem9 = new ReqChartItem(PutOrderCode4, 10, CHART_PERIOD_SECOND, 3000, CHART_REQCOUNT_BAR, false, false); var ReqChartItem10 = new ReqChartItem(CallOrderCode3, 10, CHART_PERIOD_SECOND, 3000, CHART_REQCOUNT_BAR, false, false); //var R20 = new ReqChartItem("EI735", 10, CHART_PERIOD_SECOND, 3000, CHART_REQCOUNT_BAR, false, false); var ReferDataSet1 = new Array(ReqChartItem10,ReqChartItem2,ReqChartItem3,ReqChartItem4,ReqChartItem5,ReqChartItem6,ReqChartItem7,ReqChartItem8,ReqChartItem9); //시스템 설정 var SystemInfo1 = new SystemInfo("OpCall",YL_TYPE_NORMAL,null,null,null); // var SystemSet2 = new SystemInfo("OpPut",YL_TYPE_NORMAL,null,null,null); //지정한 설정으로 챠트 생성을 요청 Main.ReqChartEx(ReqChartItem1,SystemInfo1,null,ReferDataSet1); // Main.ReqChartEx(ChartSet2,SystemSet2,null,ReferDataSet2); } } //요청한 차트객체 생성이 완료되면 function Main_OnRcvChartEx(ChartEx) { if (ChartEx.GetCode(1) == PutOrderCode) { ChartEx2 = ChartEx; PutStart = 1; } } function Main_OnUp*dateMarket(sItemCode, lUp*dateID) { if (sItemCode == PutOrderCode && lUp*dateID == 20001) { // if (ChartEx2 != null) { Main.MessageList("Code",ChartEx2.GetCode(1)); } } } //확장차트에서 신호나오면 주문 function Main_OnRiseSignal(ChartEx2, Signal) { //차트 if (PutStart == 1 && ChartEx2.GetCode(1) == PutOrderCode) { if (Signal.signalKind == 1) { vol2 = Math.abs(Signal.count); Account1.OrderBuy(Signal.code,vol2,Option.GetAskByCode(Signal.code,3),0); } if (vol2 > 0 && Signal.signalKind == 2) { Account1.OrderSell(Signal.code,vol2,Option.GetBidByCode(Signal.code,3),0); } if (Signal.signalKind == 3) { vol2 = Math.abs(Signal.count); Account1.OrderBuy(Signal.code,vol2,Option.GetBidByCode(Signal.code,3),0); } if (vol2 > 0 && Signal.signalKind == 4) { Account1.OrderBuy(Signal.code,vol2,Option.GetAskByCode(Signal.code,3),0); } } }
프로필 이미지
파문일기
2014-03-20
1443
글번호 222870
답변완료

스팟 오류

오늘 아래와 같은 오류가 나서 청산이 안되었는데 수식의 오류가 있는지 문의드립니다. 예스스팟모니터에는 아래와 같이 오류가 나서 미체결주문이 되었는데 혹시 미체결일때 재주문할 수 있는 수식도 Sample이 있으면 부탁합니다. 주문가격 1.-2147483648 주문상태 [check_order_ok]가격 제한폭 초과[0.010000][36.500000][301J3250]: sqlnum 20003 사용 스팟수식은 아래와 같습니다. if (Start == 2 && Signal.signalKind == 4 ) //ExitShort신호발생시 주문종목 청산 { var SxP_price = Option.GetBidByCode(SellP_code, 5); A1.OrderSell(SellP_code, Vol, SxP_price, 0); }
프로필 이미지
펠릭스
2014-03-13
1437
글번호 222866
답변완료

실시간 데이터 받기

항상 빠른 답변을 주셔서 감사 합니다. 아직 함수들 사용에 미흡해서 무슨 함수를 써야하는지 공부중에 있는데 잘 이해가 안가네요. 예스스팟 프로그램중 질문이 있어 문의 드립니다. 예스랭기지를 사용해서 시작한후 선물 3분차트의 첫째봉의 고가 저가를 표시하는 차트를 지표로 추가를 하였습니다. 예스 랭기지 부분 Var : min_high(0), min_low(0); min_high = TimeHigh(090000,090259); min_low = TimeLow(090000,090259); Plot1(min_high, "고가"); Plot2(min_low, "저가"); 예스스팟 부분 var minhigh = C1.GetIndicatorData("고가저가", 1, 0); var minlow = C1.GetIndicatorData("고가저가", 2, 0); 예스 스팟에서 SyntaxError : Unexpected token ILLIEGAL 이라고 나옵니다. 예스랭지기에서 plot에 대해서 print해서 data를 디버깅으로 보니 시작 시점이 예로써 처음에는 9시가 아니여서 그런지 (1.#R)로 표시되다가 다음날 9시가 되면 정상적인 data가 나옵니다. 이부분 때문에 예스스팟에서 error가 띄는것 같은데 어떻게 해야 하나요? 답변 주시면 감사 하겠습니다.
프로필 이미지
jonathan
2014-03-21
1377
글번호 222865
답변완료

몇가지 질문 드립니다~

Q1) 첨부한 그림1을 보시면, 코드에서 4~7번 줄 사이(OnStart의 본문 구간)에는 본문을 접을 수 있는 표시가 생기는데 왜 밑의 함수에는 그런 표시가 안생기나요? 생기게 할 수 있나요? Q2) 예스스팟으로 주문을 내면 예스트레이더에 연계된 챠트에서(예:F1) 그 주문낸 내용이 표시가 되나요? 표시가 된다면, 체결되었을 때 표시가 되나요?
프로필 이미지
온고지신
2014-03-13
1317
글번호 222864

온고지신 님에 의해서 삭제되었습니다.

프로필 이미지
온고지신
2014-03-13
0
글번호 222863

온고지신 님에 의해서 삭제되었습니다.

프로필 이미지
온고지신
2014-03-13
1
글번호 222862
답변완료

문의드립니다

안녕하세요 예스 스팟을 이용하여 주식매매 시에 스팟 프로그램에 매수금액 및 수익률을 넣지 않고 일반 지표에서 처럼 입력 받아서 처리 하고 싶습니다 가능한지요? 가능하다면 샘플 좀 부탁드립니다
프로필 이미지
무영세
2014-03-10
1366
글번호 222861