커뮤니티

예스스팟 Q&A

july 님에 의해서 삭제되었습니다.

프로필 이미지
july
2015-08-14
0
글번호 223624

july 님에 의해서 삭제되었습니다.

프로필 이미지
july
2015-08-14
0
글번호 223623
답변완료

문의드립니다

종목선택에서 주식종목이 전부 보이지 않습니다 검색을해도 나타나지 않고요 지수,해외,참조 목록만 보이고 주식,선/옵,주식선물,elw 목록 나타나지 않습니다
프로필 이미지
july
2015-08-14
1922
글번호 223622
답변완료

Option객체가 비정상입니다. 확인 부탁드립니다.

option 객체에서 게시판에 있는 예제를 활용하여 테스트하는데 var UNum = Option1.uppersATM; var LNum = Option1.lowersATM; LNum, UNum 모두 값이 -1로 나옵니다. Option 객체가의 이상합니다. 다시한번 점검 부탁드립니다. function Main_OnStart() { var UNum = Option1.uppersATM; var LNum = Option1.lowersATM; Main.MessageList("UNum", UNum); Main.MessageList("LNum", LNum); var PutCode = new Array(UNum+LNum+1); var PutPrice = new Array(UNum+LNum+1); //풋 옵션중 2.0에 가장 가까운 종목 매도 //풋 옵션 모든 종목을 현재가-2.0을 해서 절대값을 취해 저장 for (var i = -UNum; i <= LNum; i++) { PutPrice[i+UNum] = Math.abs(Option1.GetCurrent(1, i)-2.0); PutCode[i+UNum] = Option1.GetATMPutRecent(i); } //저장된 절대값중 가장 작은 종목의 값과 종목코드 계산 var PP = 99999999; PutOrderCode = ""; for (var i = -UNum; i <= LNum; i++) { if (PutPrice[i+UNum] < PP) { PP = PutPrice[i+UNum]; PutOrderCode = PutCode[i+UNum] } } Main.MessageList("PutOrderCode", PutOrderCode); var UNum = Option1.uppersATM; var LNum = Option1.lowersATM; var CallCode = new Array(UNum+LNum+1); var CallPrice = new Array(UNum+LNum+1); //콜 옵션중 2.0에 가장 가까운 종목 //콜 옵션 모든 종목을 현재가-2.0을 해서 절대값을 취해 저장 for (var i = -LNum; i <= UNum; i++) { CallPrice[i+LNum] = Math.abs(Option1.GetCurrent(0, i)-2.0); CallCode[i+LNum] = Option1.GetATMCallRecent(i); } //저장된 절대값중 가장 작은 종목의 값과 종목코드 계산 var CC = 99999999; CallOrderCode = ""; for (var i = -LNum; i <= UNum; i++) { if (CallPrice[i+LNum] < CC) { CC = CallPrice[i+LNum]; CallOrderCode = CallCode[i+LNum]; } } Main.MessageList("CallOrderCode", CallOrderCode); }
프로필 이미지
richon
2015-08-12
1914
글번호 223618

프로그램 문의

예스스팟을 사용하면 전략 차트의 전략이 자동으로 시험주문으로 변경이 되는거 같은데요 시험주문으로 변경이 되면 전략 차트의 자동주문 텝에서 예스트레이더가 끊겼을 경우 문자로 알려주는 기능을 쓸수가 없는데 이를 쓸수 있는 방법이 없는지요
프로필 이미지
궁금궁금123
2015-08-12
1943
글번호 223616
답변완료

Reference Error : MaxPutcode is not defined

더위에 수고 많으십니다. 항상 많은 도움 받고 있습니다. 2.5에 가까운 옵션값을 잡아서 선물차트신호를 => 옵션값으로 변환해서 매매하고 싶습니다. 일단 msg값만 확인되면 그 값으로 매수,매도 하면 될 것 같은데.. 여기서 막히네요.;; 제목과 같은 에러가 뜹니다... 옵션객체 , 계좌객체 , 차트객체는 모두 추가하였습니다. //================================================================== var ChartName = "A돌파"; var d = new Date(); var OpPrice = 2.50; //진입가격대, OpPrice에 가장 근접한 값 주문 var LowPrice = 0.40; //최소가격대 이상일때로 제한하는 변수 var HighPrice = 10.00; //최대가격대 이하일때로 제한하는 변수 var OrderGap = 0.30; //주문시 체결가격 설정(현재가 + OrderGap) var ForPrice; // 옵션값후보 var Delta; var MaxCall; // 콜을 여기에 저장 var MaxCallCode; // 콜의 코드를 여기에 저장 var MaxPut; var MaxPutCode; function Main_OnStart() { Delta = 100; for(var i = -10; i <= 10; i++) { ForPrice = Option.GetCurrent(0,i); // GetCurrent 0 은 콜 , 1은 풋 if ( Math.abs(ForPrice - OpPrice) <= Delta && LowPrice < ForPrice && ForPrice < HighPrice ) { Delta = Math.abs(ForPrice - OpPrice); MaxCallCode = Option.GetATMCallRecent(i); MaxCall = Option.GetCurrentByCode(MaxCallCode); } } Delta = 100; for(var i = -10; i <= 10; i++) { ForPrice = Option.GetCurrent(1,i); // GetCurrent 0 은 콜 , 1은 풋 if ( Math.abs(ForPrice - OpPrice) <= Delta && LowPrice < ForPrice && ForPrice < HighPrice ) { Delta = Math.abs(ForPrice - OpPrice); MaxPutCode = Option.GetATMPutRecent(i); MaxPut = Option.GetCurrentByCode(MaxPutCode); } } Main.MessageLog("<< 잔존일 "+Option.GetRemainDays(0,0)+"일 // 차트명 : "+ChartName+" >> ------------------------------- 구동시각 "+d.getHours()+":"+d.getMinutes()+":"+d.getSeconds()); Main.MessageLog("현재 Put 가격 : "+MaxPut+" // 종목코드 : "+MaxPutcode); // 출력 Main.MessageLog("현재 Call 가격 : "+MaxCall+" // 종목코드 : "+MaxCallcode); }
프로필 이미지
피니트
2015-08-11
1882
글번호 223610
답변완료

모의투자 관련 질문입니당

안녕하세요^^ 모의투자를 위해 HTS상에서 매수하려고 하였는데, 국내선물시장 안의 종목 중 매수가 가능한 종목이 거의 없더라구요! KP200 F1509 이외에 다른 종목을 고를 방법은 없는지 문의드립니다.
프로필 이미지
홍대림
2015-08-10
1919
글번호 223608
답변완료

미니선물옵션 주문 및 차월물 주문호가 오류

언제나 충실한 답변해 주셔서 감사합니다. 현재 선물신호를 이용한 옵션 매수 또는 매도 거래를 주로 하고 있습니다. 1. 미니옵션을 거래해 보려 했으나 주문가격대의 거래량이 적어서 그런지 빈호가가 많은듯해서 미니선물을 거래해 볼까 하는데요 + 선물매수(매도)신호 ---> 미니선물 매수(매도), +-5호가 주문, 수량은 외부변수 샘플 스팟수식 부탁드립니다. 2. 당월물 선물신호를 이용한 스팟 당월옵션거래는 오류없이 잘 사용하고 있는데요 테스트차 차월물 옵션거래(+-5호가 주문)를 시험해보니 일 3~4회 거래되는 시스템인데 차월물 주문처리, 종목선정은 정상인데 주문가격이 1회 정도가 "1.-2147483648" 로 되는 오류가 발생합니다.(주문가격오류가 있을때 있고 없을때 있고 간헐적 발생) 게시물 검색해보니 지정한 호가의 가격이 없을때 발생하는 오류하고 답변해주시고 아래와 같은 참고식을 주셨는데요 이렇게 수정하는게 맞는건가요? ============================ 아래 =========================== +당초+ Option.GetBidByCode(SellP_code, 5); A1.OrderSell(SellP_code, Vol, SxP_price, 0); +수정+ var SxP_price = Option.GetBidByCode(SellP_code, 5); if (isNaN(Option.GetBidByCode(SellP_code, 5)) == true ) var SxP_price = Option.GetBidByCode(SellP_code, 4); if (isNaN(Option.GetBidByCode(SellP_code, 4)) == true ) var SxP_price = Option.GetBidByCode(SellP_code, 3); if (isNaN(Option.GetBidByCode(SellP_code, 3)) == true ) var SxP_price = Option.GetBidByCode(SellP_code, 2); if (isNaN(Option.GetBidByCode(SellP_code, 2)) == true ) var SxP_price = Option.GetBidByCode(SellP_code, 1); if (isNaN(Option.GetBidByCode(SellP_code, 1)) == true ) var SxP_price = Option.GetCurrentByCode(SellP_code); A1.OrderSell(SellP_code, Vol, SxP_price, 0); 먼저 매수5호가를 저장하고 매수5호가가 가격이 없어 NaN이면 --> 매수4호가 저장하고 --> 매수4호가가 가격이 없어 NaN이면 --> 매수3호가 저장하고 --> 매수3호가가 가격이 없어 NaN이면 --> 매수2호가 저장하고 --> 매수2호가가 가격이 없어 NaN이면 --> 매수1호가 저장하고 --> 매수1호가가 가격이 없어 NaN이면 -->현재가 저장 --> 저장된 값으로 주문 ======================================================================= 무더운 날씨 즐겁게 보내시기 바랍니다.~
프로필 이미지
탄젠트80
2015-08-09
2030
글번호 223606
답변완료

스크립트 검증 기능에 대해

늘 친절한 답변에 감사드립니다. 스크립트 검증을 하다 보면 컴파일과 유사한 걸로 이해됩니다만, 선언이 없는 변수에 대한 사용시 이를 걸러내는 검증기능은 없는 것으로 결과가 나옵니다. 이에 대한 개선을 할 수는 없을까요? 첨부그림을 설명드립니다. 스크립트 #test 검증을 하면 정상적으로 "검증이 완료되었습니다."라는 메시지가 나타납니다. 그런데 이를 실행하면 "ReferenceError: ADX is not defined"라고 오류메시지가 보여지면서 실행이 되질 않습니다. 이 부분을 스크립트 검증 단계에서 걸러낼 수 있다면 훨씬 효율적이리라 생각되어 부탁드려 봅니다.
프로필 이미지
좋은선물
2015-08-05
2071
글번호 223603
답변완료

문의 드립니다.

수고하십니다. 프로그램 검토 요청드립니다. 선물 신호 발생시 옵션 매도하는 프로그램인데요.(옵션매수하는 부분을 수정해보았습니다.) 수량은 2개로 고정해놓았습니다. 1. 미진입 또는 미청산시 2초뒤에 재 실행하고 싶습니다. 2. 테스트를 해보니 4.0대의 종목으로 진입이 되는되 왜그런지 궁금합니다. 3. 기타 프로그램 검토 부탁드리겠습니다. 그럼 더운 날씨에 수고하십시요! ============================================================================================= //signalKind(1 : Buy, 2 : ExitLong, 3 : Sell, 4 : ExitShort) var CallOrderCode,PutOrderCode,T; function Main_OnStart() { T = 0; } function Chart1_OnRiseSignal(Signal) { if (T <= 0 && Signal.signalKind == 1) { Main.MessageList("--------------------------------------------"); Main.MessageList("Buy신호 발생"); var UNum = Option.uppersATM; var LNum = Option.lowersATM; var PutCode = new Array(UNum+LNum+1); var PutPrice = new Array(UNum+LNum+1); //풋 옵션중 2.0에 가장 가까운 종목 매도 //풋 옵션 모든 종목을 현재가-2.0을 해서 절대값을 취해 저장 for (var i = -LNum; i <= UNum; i++) { PutPrice[i+LNum] = Math.abs(Option.GetCurrent(0, i)-2.0); PutCode[i+LNum] = Option.GetATMPutRecent(i); } //저장된 절대값중 가장 작은 종목의 값과 종목코드 계산 var CC = 99999999; PutOrderCode = ""; for (var i = -LNum; i <= UNum; i++) { if (PutPrice[i+LNum] < CC) { CC = PutPrice[i+LNum]; PutOrderCode = PutCode[i+LNum] } } //종목을 찾았으면 if (CC < 99999999) { //주문가능현금의 5% //var OrderAbleAmoney = Account1.GetBalanceETCinfo(30)*0.05; //주문가격 var OrderPrice = Option.GetAsk(PutOrderCode, 3); //주문가능현금/(주문가격*50만원) //var Qty = Math.floor(OrderAbleAmoney/(OrderPrice*500000)); //1계약 이상 PutOrderCode종목 매도 주문 //if (Qty >= 1) //{ Account1.OrderSell(PutOrderCode, 2, OrderPrice, 0); T = 1; Main.SetTimer(1, 2000);//1번타이머 2초 //} } } //if (T == 1 && Signal.signalKind == 2) if (Signal.signalKind == 2) { Account1.SetBalanceItem(PutOrderCode, 0); //CallOrderCode 잔고가 있으면 매수3호가로 전량 매도 if (Account1.Balance.count > 0) { Main.MessageList("--------------------------------------------"); Main.MessageList("풋 매도 청산"); Account1.OrderBuy(Account1.Balance.code, Account1.Balance.count , Option.GetBid(PutOrderCode, 3), 0); T = 0; } } if (T >= 0 && Signal.signalKind == 3) { Main.MessageList("--------------------------------------------"); Main.MessageList("Sell신호 발생"); var UNum = Option.uppersATM; var LNum = Option.lowersATM; var CallCode = new Array(UNum+LNum+1); var CallPrice = new Array(UNum+LNum+1); //콜 옵션중 2.0에 가장 가까운 종목 //콜 옵션 모든 종목을 현재가-2.0을 해서 절대값을 취해 저장 for (var i = -UNum; i <= LNum; i++) { CallPrice[i+UNum] = Math.abs(Option.GetCurrent(1, i)-2.0); CallCode[i+UNum] = Option.GetATMCallRecent(i); } //저장된 절대값중 가장 작은 종목의 값과 종목코드 계산 var PP = 99999999; CallOrderCode = ""; for (var i = -UNum; i <= LNum; i++) { if (CallPrice[i+UNum] < PP) { PP = CallPrice[i+UNum]; CallOrderCode = CallCode[i+UNum]; } } //종목을 찾았으면 if (PP < 99999999) { //주문가능현금의 5% var OrderAbleAmoney = Account1.GetBalanceETCinfo(30)*0.05; //주문가격 var OrderPrice = Option.GetAsk(CallOrderCode, 3); //주문가능현금/(주문가격*50만원) //var Qty = Math.floor(OrderAbleAmoney/(OrderPrice*500000)); //1계약 이상 매수주문 //if (Qty >= 1) //{ Account1.OrderSell(CallOrderCode, 2, OrderPrice, 0); T = -1; Main.SetTimer(2, 2000);//2번타이머 2초 //} } } // if (T == -1 && Signal.signalKind == 4) if (Signal.signalKind == 4) { Account1.SetBalanceItem(CallOrderCode, 0); //CallOrderCode 잔고가 있으면 매수3호가로 전량 매도 if (Account1.Balance.count > 0) { Account1.OrderBuy(Account1.Balance.code, Account1.Balance.count , Option.GetBid(CallOrderCode, 3), 0); Main.MessageList("--------------------------------------------"); Main.MessageList("콜 매도 청산"); T = 0; } } }
프로필 이미지
왼손잡이
2015-08-05
2066
글번호 223602