커뮤니티

예스스팟 Q&A

답변완료

EuroFX, SnP 미체결 내역 오류 데이타 간혹 발생됨

미체결 내역의 account1,position1.count 가 0 인 미체결이 발생하오니, 확인 부탁합니다.
프로필 이미지
경복궁
2014-04-16
1124
글번호 222932
답변완료

교차차트

콜옵션과풋옵션이서로교차되는시점이보이는교차차트를만들수있나요?가능한수식이있음부탁드립니다
프로필 이미지
하얀그림자
2014-04-15
1107
글번호 222930

시초가기준 등가옵션에서

안녕하세요 1. 연결선물 기준으로 시초가 생성시 등가옵션을 구하고, 양옵션의 위아래 행사가 2개씩 포함 콜 5개 풋 5개의 옵션으로 확장챠트를 만듭니다. 2-11번까지의 옵션참조데이타는 일봉을 포함한 종목생성을 한후에 2. 양옵션의 행사가 중심으로 최근 5일전까지의 전일 고가저가를 비교한후, 콜일봉고가와 풋일봉고가가 0.2 이내에 근접한경우 이의 수치를 구하고 일봉저가의 경우도 마찬가지로 수치를 구하고 싶습니다. --> 3. 가장 최근의 것부터 순서대로 수치를 구하고 싶습니다. 감사합니다. var Start; var CallATM; var PutATM; var Nth = 1; var CallObject; var PutObject; var OrderCode; var MarketData1; var CallHigh = new Array(300); var CallLow = new Array(300); var PutHigh = new Array(300); var PutLow = new Array(300); var HHPrice = new Array(100); var LLPrice = new Array(100); var ItemObject = new Array(100);//갯수 var CallItem = new Array(100);//갯수 var PutItem = new Array(100);//갯수 var CoPutItem = new Array(100);//갯수 //스팟 시작시에 function Main_OnStart() { Start = 0; //날자 및 시계계산 var d = new Date(); var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); //코스피200선물에 가장 가까운 콜/풋 종목 선정 var var1 = MarketData1.open;//current;//expectedPrice var var2 = parseInt(var1/10)*10; var var3 = var1%10; var ATM = -1; if (var3 >= 8.75) ATM = var2+10; else if (var3 < 8.75 && var3 >= 6.25) ATM = var2+7.5; else if (var3 < 6.25 && var3 >= 3.75) ATM = var2+5.0; else if (var3 < 3.75 && var3 >= 1.25) ATM = var2+2.5; else ATM = var2+0.0; if (Start == 0 && HHMMSS >= 090000 ) { var UNum = Option.uppersATM; var LNum = Option.lowersATM; //CallATM = -1; for (var i = -LNum; i <= UNum; i++) { if (Option.GetExercisePrice(0, i) == ATM) { CallATM = Option.GetATMCallRecent(i+2,0); CallATM1 = Option.GetATMCallRecent(i+1,0); CallATM2 = Option.GetATMCallRecent(i,0); CallATM3 = Option.GetATMCallRecent(i-1,0); CallATM4 = Option.GetATMCallRecent(i-2,0); } } //PutATM = -1; for (var i = -UNum; i <= LNum; i++) { if (Option.GetExercisePrice(1, i) == ATM) { PutATM = Option.GetATMPutRecent(i-2,0); PutATM1 = Option.GetATMPutRecent(i-1,0); PutATM2 = Option.GetATMPutRecent(i,0); PutATM3 = Option.GetATMPutRecent(i+1,0); PutATM4 = Option.GetATMPutRecent(i+2,0); } } Main.MessageList("콜ATM :",CallATM2 ,"풋ATM :",PutATM2); //확장 차트객체 요청 var ChartSet3 = new ReqChartItem("00000000",1, CHART_PERIOD_MINUTE, 5000, CHART_REQCOUNT_BAR, false, false); //시스템 설정 var TradeSet = new SystemTradeInfo(TRADE_FIXCOUNT,1, 10000000,1, // 자산 0.003, 0.003,CALCMETHOD_PERCENT, // 진입/청산 수수료 0.05, 0.05,CALCMETHOD_POINT, // 진입/청산 슬리피지 PYRAMIDING_ENTRY, // 피라미딩 설정여부 1000, //1000, // 최대진입수량 10); // 최대진입횟수 var SystemSet3 = new SystemInfo("OpFuture",YL_TYPE_NORMAL,null,TradeSet,null); //참조데이터 추가 var R31 = new ReqChartItem(CallATM, 2, CHART_PERIOD_MINUTE, 2500, CHART_REQCOUNT_BAR, false, false); var R32 = new ReqChartItem(CallATM1, 2, CHART_PERIOD_MINUTE, 2500, CHART_REQCOUNT_BAR, false, false); var R33 = new ReqChartItem(CallATM2, 2, CHART_PERIOD_MINUTE, 2500, CHART_REQCOUNT_BAR, false, false); var R34 = new ReqChartItem(CallATM3, 2, CHART_PERIOD_MINUTE, 2500, CHART_REQCOUNT_BAR, false, false); var R35 = new ReqChartItem(CallATM4, 2, CHART_PERIOD_MINUTE, 2500, CHART_REQCOUNT_BAR, false, false); var R36 = new ReqChartItem(PutATM, 2, CHART_PERIOD_MINUTE, 2500, CHART_REQCOUNT_BAR, false, false); var R37 = new ReqChartItem(PutATM1, 2, CHART_PERIOD_MINUTE, 2500, CHART_REQCOUNT_BAR, false, false); var R38 = new ReqChartItem(PutATM2, 2, CHART_PERIOD_MINUTE, 2500, CHART_REQCOUNT_BAR, false, false); var R39 = new ReqChartItem(PutATM3, 2, CHART_PERIOD_MINUTE, 2500, CHART_REQCOUNT_BAR, false, false); var R40 = new ReqChartItem(PutATM4, 2, CHART_PERIOD_MINUTE, 2500, CHART_REQCOUNT_BAR, false, false); var ReferDataSet3 = new Array(R31,R32,R33,R34,R35,R36,R37,R38,R39,R40); //지정한 설정으로 챠트 생성을 요청 Main.ReqChartEx(ChartSet3,SystemSet3,null,ReferDataSet3); } } //요청한 차트객체 생성이 완료되면 function Main_OnRcvChartEx(ChartEx) { if ( ChartEx.GetCode(1) == MarketData1.code) { ChartEx3 = ChartEx; Start = 1; OrderCode = Main.GetOrderCode(MarketData1.code); if (ChartEx3.GetCode(4) == CallATM2 && ChartEx3.GetCode(9) == PutATM2) { for (var i = 2; i < 12; i++) { Main.ReqMarketData(ChartEx3.GetCode(i),12,0);//CallItem = } } } } function Main_OnRcvMarketData(MarketData) { Main.MessageList("종목객체수신",MarketData.code); for (var i = 2; i < 12; i++) { if (MarketData.code == ChartEx3.GetCode(i)) { Main.MessageList(i,"번째","종목객체생성완료 : ",ChartEx3.GetCode(i)); ItemObject[i] = MarketData; } { if (ItemObject[i] == MarketData && i < 7) { CallItem[i] = MarketData; CoPutItem[i+5] = MarketData; } if (ItemObject[i] == MarketData && i >= 7) { PutItem[i] = MarketData; } } } if (CallItem == MarketData && CoPutItem == MarketData )//&& PutATM2 == MarketData) { for (var ii = 0; ii <= 120; ii++) { for (var iii = 1; iii <= 5; iii++) { CallHigh[ii] = MarketData.GetPrevHigh(iii); CallLow[ii] = MarketData.GetPrevLow(iii); PutHigh[ii] = MarketData.GetPrevHigh(iii); PutLow[ii] = MarketData.GetPrevLow(iii); } } } /* if (CoPutItem == sItemCode && lU*pdateID == 20001) { for (var iii = 1; iii <= 5; iii++) { PutHigh[ii] = MarketData.GetPrevHigh(iii); PutLow[ii] = MarketData.GetPrevLow(iii); } } */ { if (Math.abs(CallHigh[ii]-PutHigh[ii]) <= 0.2 && CallHigh[ii] >= PutHigh[ii]) { HHPrice[ii] = CallHigh[ii]; } else if (Math.abs(CallHigh[ii]-PutHigh[ii]) <= 0.2 && CallHigh[ii] < PutHigh[ii]) { HHPrice[ii] = PutHigh[ii]; } if (Math.abs(CallLow[ii]-PutLow[ii]) <= 0.2 && CallLow[ii] >= PutLow[ii]) { LLPrice[ii] = CallLow[ii]; } else if (Math.abs(CallLow[ii]-PutLow[ii]) <= 0.2 && CallLow[ii] < PutLow[ii]) { LLPrice[ii] = PutLow[ii]; } } Main.MessageList("고저가 :",HHPrice[ii],LLPrice[ii]); }
프로필 이미지
파문일기
2014-04-14
1300
글번호 222929
답변완료

파일 출력 경로

수고하십니다. PrintOnFile (sFilePath, sMsg) 함수의 사용법을 보면. sFilePath 에 경로와 파일명을 넣는 것으로 나와있는데. "C:₩log.txt" 라고 해도. 원하는 경로에 출력되지 않습니다. PrintOnFile 함수는 "C:₩예스트레이더₩Spot₩Export" 안에만 출력이 되나요 ? 그렇다면 원하는 경로에 파일을 생성하는 다른 함수는 없는지요.
프로필 이미지
파생루키
2014-04-11
1253
글번호 222928
답변완료

옵션 손절식 부탁드립니다

1. 9시 이후로 1초 단위로 잔고 카운팅 2. 계좌잔고의 콜옵션이 매도포지션이고 진입가 대비 2.5배 이상이면 손절 3. 계좌잔고의 풋옵션이 매도포지션이고 진입가 대비 2배 이상이면 손절 감사합니다
프로필 이미지
재령
2014-04-11
1198
글번호 222927
답변완료

질문이요

거래시간이 매매안되는시간에 매매를하는걸로나와있는데 오류인가요? 매수매도와 청산을 동시간대에나와있는데 이것도좀이상한데 ..
프로필 이미지
아무것도모른다
2014-04-10
1138
글번호 222926
답변완료

파일 출력 문의건

안녕하세요. [질문내용] 스팟에서 임의의 텍스트 파일이 존재하는지 여부를 판별할 수 있나요?
프로필 이미지
hugnkiss
2014-04-09
1062
글번호 222921
답변완료

해외선물중 골드(GC_1) 의 취소주문이 작동 안할때가 많음

해외선물중 골드(GC_1) 의 취소주문이 작동 안할때가 많음 6E_1,CL_1 등은 정상 작동하나, 동일한 스팟 전략이 GC_1에 대해서는 취소가 작동 안하는경우가 많음,,, 검토 부탁합니다
프로필 이미지
경복궁
2014-04-09
1072
글번호 222919
답변완료

진행사항 문의건

아래 건의사항은 어떻게 진행되고 있는지 궁금합니다. [1월 질문내용] 스팟 전략이 적용된 상태에서 차트의 종목 변경시 "현재 차트데이터를 사용중입니다. ... 설정을 변경하시겠습니까?" 팝업이 차트의 분할된 수만큼 뜹니다. 많이 불편하네요. 개선이 필요할 것으로 생각됩니다. 팝업이 출력 되지 않게 하는 방법은 있나요? [예스스탁 답변] 스팟과 연동이 되거나 혹은 자동매매가 걸린 차트를 사용자분이 실수로 종목을 변경 시킬경우가 발생할수 있습니다. 이런 이유로 팝업창이 발생해서 한번더 확인과정을 거치게 됩니다. 설정창 같은 부분에서 옵션처리가 될수 있는지 건의하도록 하겠습니다. 감사합니다.
프로필 이미지
hugnkiss
2014-04-08
1061
글번호 222917
답변완료

OnRiseSignal 문의

아래 내용은 실제 장에 적용을 해서 확인하니 신호가 제대로 뜨네요. 감사 합니다. 다른 질문은 드리면, 1. 꼭 예스랭기지로 전략을 짜고 그 신호를 받아서 예스스팟을 짜야 하나요? 제 생각은 예스랭기지로 짜지않고 예스스팟으로 짜도 가능 한거죠. (아마도 복잡 하겠지만요) 2. 만약 예스랭기지로 전략을 짜고 진입 신호만 사용하고 청산을 예스스팟으로 해도 되죠? (그렇게 하려면 예스랭기지에서 진입한후 인위적으로 청산을 짜야 다음 신호가 들어오니깐요? => 그렇게 하는게 맞나요?) 혹시 다른 문제점은 없나요? +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ *** 안녕 하세요. C1_OnRiseSignal 신호시 문의 *** 먼저 예스스팟 문서에 따라 선택한 부분을 설명 드리면 1. 예스랭지기에서 전략을 만들었습니다. 2. 예스트레이더에서 전략 실행 차트를 띄우고 아이디는 PRESENT로 하고 예스스팟에는 객체를 C1, 아이디는 PRESENT로 만들었습니다. 그리고 차트에 시스템을 적용 하였습니다. 3. 그러면 차트에 매수/매도 진입과 청산이 나옵니다.(여기까지는 문제가 없습니다.) 4. 다음부터의 문제는 예스스팟으로 function Main_OnStart() { Main.MessageList("Pivot START"); } function C1_OnRiseSignal(Signal) { if (Signal.signalKind == 1) { Main.MessageList("Signal.signalKind = ",Signal.signalKind, " 시간=", HHMMDD); //Main.OrderBuy(sAccoutnNumber, sItemCode, nCount, dPrice, nPriceKind); } else if (Signal.signalKind == 3) { Main.MessageList("Signal.signalKind = ",Signal.signalKind, " 시간=", HHMMDD); //Main.OrderSell(sAccoutnNumber, sItemCode, nCount, dPrice, nPriceKind); } else { Main.MessageList("Signal.signalKind = ",Signal.signalKind, " 시간=", HHMMDD); } } 적용차트에는 신호가 뜨는데 function C1_OnRiseSignal(Signal) 함수로 알려주지를 않고 있습니다. 뭐가 잘못인가요? 답변 부탁드립니다. 감사 합니다.
프로필 이미지
jonathan
2014-04-08
1092
글번호 222916