커뮤니티

예스스팟 Q&A

답변완료

수식문의

예스스팟을 이용해 chart1과 chart2를 이용해 선물매매시 chart1과 chart2가 같은 방향으로 신호가 나오면 진입하고, 두 챠트가 서로 다른 신호가 나오면 진입은 안하며, 진입후 청산은 두 챠트중 먼저 나오는 신호에 따라 청산하고, 진입은 하루중 두 챠트 신호 나오는대로 여러번 가능하고, 9시부터 오후3시까지 거래하는 수식좀 부탁합니다.
프로필 이미지
HI_iiisong8
2014-06-18
1114
글번호 223033
답변완료

문의드립니다.

안녕하십니까? 수고가 많으십니다. 옵션 포지션을 청산하는 로직을 부탁드립니다. 진입은 손 매매로 하고, 콜, 풋옵션 매도, 매수가 모두 들어간 4가지 옵션의 포지션 손실이 일정금액을 넘어서면 포지션 전체를 청산하는 로직을 원합니다. 1. 계좌의 포지션을 모두 읽어들입니다. 2. 계좌 전체 손실이 진입대비 100만원(금액은 변경가능하게 변수로 처리)을 초과하면 청산을 시작 3. 먼저, 매도포지션 가운데 손해가 큰 옵션(예를 들어, put옵션매도)부터 청산 시작 - 현재가로 주문 - 10초(기간도 변경가능하게 변수로 처리)까지 put옵션 매도포지션이 완전 청산되지 않으면 (put옵션매도 갯수가 여러 개여서 한 번 주문으로 모두 청상되지 않을 가능성에 대비해서) 상대1호가로 주문 변경 - 15초(기간도 변경가능하게 변수로 처리)까지 모두 청산되지 않으면 상대 4호가로 주문 변경 4. put 옵션매도가 모두 청산된 것을 확인한 후 put 옵션 매수 포지션 청산 시작 - 청산 주문과정은 위의 3과 동일하게 함 5. put옵션의 반대쪽 call옵션 매도를 청산하기 시작 - 주문과정은 위와 동일 6. call옵션 매수 포지션 청산 으로 모든 포지션을 순차적으로 청산하는 로직이 필요합니다. 위는 put옵션 매도 손실>call옵션 매도 손실인 경우를 예로 들었습니다. 반대로 put옵션 매도손실<call옵션 매도손실 인 경우는 1. call 매도 청산 2. call 매수 청산 3. put 매도 청산 4. put 매수 청산의 순서로 하면 됩니다. 항상 수고해주셔서 감사드립니다. 부탁드립니다.
프로필 이미지
nobound
2014-06-18
1162
글번호 223032
답변완료

FOK 개념의 취소 주문이 작동 안됨

대상 종목 : ES_1 1. 매수 조건 발생하여 , 매수 2호가에 10 계약 주문 2. 가격변동하면서 매수 2 호가에 10 계약중, 3 계약만 체결되고 지수 급등 3. 미체결 물량 7계약을 취소 주문 발생 시킴 4. 취소 주문 접수되었으나, 취소 안되고, 로직에서는 미체결이 남아 있어 지속 취소 주문 발생되며 계속 Looping 발생
프로필 이미지
경복궁
2014-06-18
1213
글번호 223031
답변완료

문의

1. 예스트레이더에서 예스스팟으로 작성된 전략식이 있고, 옵션객체도 포함되어 있을 경우, 이를 YG에서 복사해서 옮겨넣을시 옵션객체를 삭제할 수가 없더군요. 확인부탁드립니다. 2. 또한, 예스트레이더에서는 그리드객체가 추가된것으로 알고 있습니다. 예스글로벌은 언제쯤 업데이트 예정인가요? 엑셀연동의 대안책으로 그리드객체가 나왔다고 추정이 되는데, 엑셀객체를 이용한 연동과 비교해서 그리드객체 사용의 장점은 무엇인지 간단히 설명부탁드립니다. 활용방안도 부탁드립니다. 3. 확장차트를 띄우면 초기 화면 사이즈 지정이나 봉의 색깔이라든지 배경화면색깔 등을 일반차트와 마찬가지로 변경할 수 가 없나요?? 현재 제가 오픈한 차트는 보기가 좀 난해합니다. 까만바탕에 빨강, 파랑 봉색깔... 해결방법 부탁드립니다. 그리고 추후에 확장차트 제거도 고려해주시면 고맙겠습니다. 메인시그널이 살아있는한 무한정 띄우게 되니 좀 어지럽네요. 4. 첨부그림2에서와 같이 확장차트를 띄우기 위한 조건이 스팟수식내에 성립이 되지 않았는데도 기본적으로 생성이 됩니다. 이는 정상인가요?? 5. 예스글로벌 전략실행차트에서 메인은 틱차트, DATA2는 분봉을 띄울경우 이를 시스템식에 넣고 검증하면 신호가 나타나질 않습니다. 또한, DATA2의 이평선을 적용시켜도 표기가 되질 않습니다. 데이타는 최대로(5000봉) 불러들였습니다. 메인을 분봉으로하면 정상적으로 동작이 됩니다. 왜 틱차트에서는 안되는지요?? 아래 수식만 넣어도 시스템식이 정상적으로 동작하질 않네요. VARS: MP1(100, DATA2); VARS: M1(0, DATA2); // D2C는 위에서 선언됨 M1 = DATA2(MA(D2C, MP1)); 6. 스팟에서 YL의 아래 수식이 있을 경우 봉의 몇번째 이후라는 표현은 어떻게 가능한가요?? if (TSFs.UTRiDX > 0) AND (INDEX <= TSFs.UTRiDX + 10) then 7. 7026번 관련해서 다시 언급하자면, 첨부그림과 같이 성능보고서의 거래내역 탭에서 진입명을 클릭하면 진입명들이 콤보박스로 나오고 해당 진입명을 클릭하면 매수/청산 리스트가 쭈욱뜨는 것처럼 이를 에디터에서도 가능하게 해주십사 문의드린 것입니다. 청산도 마찬가지로... 에디터에서 콤보박스형태가 아니라 리스트로 보여지고 출력된 진입명을 클릭하면 해당진입명의 첫번째줄로 이동하면 진입 청산전략이 하나의 시스템식에 많은 사용자의 입장에서는 좋겠다는 생각입니다. General한 제 의견이 반영되었으면 좋겠습니다. 감사합니다.
프로필 이미지
gt
2014-06-13
1490
글번호 223021

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

프로필 이미지
brucehan
2014-06-11
0
글번호 223018

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

프로필 이미지
brucehan
2014-06-11
42
글번호 223017
답변완료

수식 문의

1. 예스스팟 초보라 수식좀 부탁드리겠습니다. 종목객체명: CMD 어카운트: CAC 확장차트객체: CCX 차트는 모두 시장시간으로 세팅됨 해외선물 미니다운존스 C1[이름] 메인차트에서 A라는 매수 신호발생시 확장차트 생성 확장차트 종목은 Emini S&P 500으로 설정 M1선이 M2선을 CROSSUP하고 스토캐스틱 30을 빠져나올때 매수신호 발생후 진입 파라볼릭선을 하향이탈하면 청산 메인차트는 기본적으로 포지션 트레이딩이며 A라는 신호가 국내서버 리셋시간이전까지 유효하다면 국내서버 리셋시간 1분전에 메인차트의 진입명, 진입종목명, 진입시간, 진입가격 등을 저장해야 하고, 다시 예스스팟을 켰을때 해당 진입이 있을경우 정보를 불러들임 이 정보는 진입이 되어 있을경우 매 15분마다 한번씩 저장되는 기능도 추가부탁드립니다. (정전이나 네트웍 단절시 대비) 가이드 라인만 잡아주시면 고맙겠습니다. 2. 엑셀객체를 추가하고 스팟을 가동하면 처음에는 정상적으로 엑셀이 실행됩니다. 이후 엑셀을 닫고 전략을 다시 적용하기 위해 예스스팟에서 삭제하고 다시 적용하면 예스스팟 편집기에서 아래와 같은 메시지가 뜹니다. 엑셀을 정상적으로 호출할 수 없습니다. CXL: 객체를 생성할 수 없습니다. 이후 파일 이름을 BB.xlsx로 바꾸고 실행하면 또 불러집니다. 마찬가지로 예스스팟에서 전략을 삭제하면 "엑셀을 정상적으로 호출할 수 없습니다."라는 메시지가 뜹니다. 엑셀을 닫으면 윈도우 작업관리자에서 EXCEL.EXE *32라는 부분이 삭제되어야 하는데 그렇치않고 계속 떠 있더군요. 설정환경은 아래와 같습니다. 객체명: CXL 파일명: AA.xlsx 프로세스 생성: 아니오 원인이 무엇인가요? 참고로 윈도우7, 엑셀2013을 씁니다. 3. 예스스팟 편집기에서 자동완성기능은 끌수 없나요?? 익숙치 않은 사용자에게느 많이 불편하군요. 마지막으로 예스스팟 답변들이 통상적으로 많이 늦는데 조금만 빨리 달아주실수는 없는지요?? 부탁드리는 입장에서 이런말씀드리기가 좀 뭐하지만, 이곳 게시판도 신경써주시면 감사드리겠습니다. 예스스팟 QA질문란을 예스스팟수식 Q&A와 예스스팟 프로그램 Q&A로 분리해서 운용하는 것도 나쁘지 않을 듯 합니다. 수고하십시요.
프로필 이미지
gt
2014-06-16
1475
글번호 223016

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

프로필 이미지
훈sys
2014-06-10
10
글번호 223015
답변완료

간단한 질문 문의

안녕하세요 기존 게시판에 공개된 스팟전략으로 공부중인데 초보라 이해부탁드려요 아래는 선물신호시 3.0~1.5의 프리값중 2.3에 가까운 옵션 종목을 매도하는 스팟전략인데요 장중의 프리값의 큰변동시 진입종목이 변경될때가 있는데 이와 상관없이 처음 진입한 종목을 당일 장중 내내 거래하고 싶습니다. 어려우셔도 아래식을 지정종목으로 거대될수 있도록 스팟전략 부탁드립니다. - 예)금일의 경우 장중내내 선물 매수신호시 ---> 풋 외가 1호가(P257.5) 매도 선물 매도신호시 ---> 콜 외가 1호가(C262.5) 매도 ============================================================================= var Start; var UNum; var LNum; var CallCode; var CallPrice; var PutCode; var PutPrice; var CC; var PP; var CallOrderCode; var PutOrderCode; function Main_OnStart() { Start = 0; } function Chart1_OnRiseSignal(Signal) { 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++) { if (Option.GetCurrent(0, i) <= 3.0 && Option.GetCurrent(0, i) >= 1.5) { CallPrice[i+LNum] = Math.abs(Option.GetCurrent(0, i)-2.3); CallCode[i+LNum] = Option.GetATMCallRecent(i); } else { CallPrice[i+LNum] = 9999999; CallCode[i+LNum] = 9999999; } } for (var ii = -UNum; ii <= LNum; ii++) { if (Option.GetCurrent(1, ii) <= 3.0 && Option.GetCurrent(1, ii) >= 1.5) { PutPrice[ii+UNum] = Math.abs(Option.GetCurrent(1, ii)-2.3); PutCode[ii+UNum] = Option.GetATMPutRecent(ii); } else { PutPrice[ii+UNum] = 9999999; PutCode[ii+UNum] = 9999999; } } //buy신호 발생시 if (Signal.signalKind == 1) { Start = 1; PP = 9999999; PutOrderCode = 9999999; for (var iii = -LNum; iii <= UNum; iii++) { if (PutPrice[iii+LNum] < PP) { PP = PutPrice[iii+LNum]; PutOrderCode = PutCode[iii+LNum] } } if (PP < 9999999) { Account1.OrderSell(PutOrderCode, 1, 0, 1); Main.MessageLog("B신호종류:"+Signal.signalKind+" /종목코드:"+PutOrderCode+" /START:"+Start); } else { Main.MessageLog("B신호종류:"+Signal.signalKind+" /종목코드: 지정한 가격대 종목이 없음"+" /START:"+Start); } } // Exitlong신호 발생시 if (Start == 1 && Signal.signalKind == 2) { Start = 0; if (PP > 0) { Account1.OrderBuy(PutOrderCode, 1, 0, 1); Main.MessageLog("B신호종류:"+Signal.signalKind+" /종목코드:"+PutOrderCode+" /START:"+Start); } else { Main.MessageLog("B신호종류:"+Signal.signalKind+" /종목코드: 지정한 가격대 종목이 없음"+" /START:"+Start); } } //sell신호 발생시 if (Signal.signalKind == 3) { Start = -1; CC = 9999999; CallOrderCode = 9999999; for (var iiii = -UNum; iiii <= LNum; iiii++) { if (CallPrice[iiii+UNum] < CC) { CC = CallPrice[iiii+UNum]; CallOrderCode = CallCode[iiii+UNum]; } } if (CC < 9999999) { Account1.OrderSell(CallOrderCode, 1, 0, 1); Main.MessageLog("B신호종류:"+Signal.signalKind+" /종목코드:"+CallOrderCode+" /START:"+Start); } else { Main.MessageLog("B신호종류:"+Signal.signalKind+" /종목코드: 지정한 가격대 종목이 없음"+" /START:"+Start); } } //exitshort신호 발생시 if ( Start == -1 && Signal.signalKind == 4) { Start = 0; if (CC > 0) { Account1.OrderBuy(CallOrderCode, 1, 0, 1); Main.MessageLog("B신호종류:"+Signal.signalKind+" /종목코드:"+CallOrderCode+" /START:"+Start); } else { Main.MessageLog("B신호종류:"+Signal.signalKind+" /종목코드: 지정한 가격대 종목이 없음"+" /START:"+Start); } } } ================================================================================ 수고하세요~
프로필 이미지
탄젠트80
2014-06-09
1382
글번호 223014
답변완료

진입체결 확인 즉시 청산주문

안녕하세요. 다음 수식 부탁드립니다. 연결선물 분봉, YT 리버스신호에 의한 YesSpot주문, 데이트레이딩 -------------------------- 1) 장개시후 YT에서 조건 충족시 신호 발생 (리버스 신호) 2) YesSpot에서 YT신호 발생 종가로 주문 - YT신호가 발생한 후 5봉이 경과하기 전에 체결이 안되면 주문 취소 - 5봉 경과전 새로운 YT신호는 모두 무시 3) YT기준 5봉이내 2)의 주문 체결시 - 체결확인 즉시, Spot에서 매수진입신호발생 종가 +0.50 매수청산주문 매도진입신호발생 종가 -0.50 매도청산주문 (YT의 Atlimit의 주문방식이 아니고, 종가 + - 0.50 주문대기 방식임) - 주문체결시, Spot에서 3) 4)에 의한 청산이 발생하기 전까지 YT의 새로운 신호는 모두 무시 - 3) 4)에 의한 청산이후, YT의 새로운 리버스 신호발생하면 Spot 진입 4) 실제 진입체결가 기준으로 1pt 손절 ---> YT와 진입기준이 다르므로 Spot으로 제어 - Atstop 개념 - 손절 발생시 당일 추가적인 매매 없음 (Spot으로 제어) 5) 14:30 포지션 청산 (Spot으로 제어) - 계좌에 다른 시스템들이 혼합되어 있으므로, 계좌 진고포지션 기준이 아닌 시스템 기준으로 요망 참고로 위의 방식을 사용할 경우 YT의 리버스 신호와 다르게 주문이 진행됩니다. (예를들어, YT의 신호발생후 Spot에서 5봉이내에 체결이 되었을 경우, 이후에도 YT는 리버스신호가 계속 발생할 수 있으나, 위의 경우 Spot에서는 0.5pt 익절 또는 1pt 손절이 발생할 때까지 YT의 모든 신호가 무시됨) 이상입니다. 그럼 오늘도 즐거운 하루되시기를 바라겠습니다. 감사합니다.
프로필 이미지
새로운세상
2014-06-17
1425
글번호 223013