커뮤니티

예스스팟 Q&A

답변완료

문의드립니다.

다음과 같이 선물챠트를 이용해서 옵션을 거래를 하고자 하는데요.. 예스스팟 수식 전환을 부탁드립니다. 답변 감사드립니다. ================================================================= 1. 진입 선물챠트A 그리고 선물챠트B 그리고 선물챠트C에서 매수신호가 발생하면 등가+2 당월물 콜옵션을 시장가로 600만원어치 매수한다. 2. 청산 (1) 선물챠트A 또는 선물챠트B에서 매도신호가 발생하면 현재 잔고상 보유 콜옵션을 전량 청산한다. (2) 진입시점(세개 챠트 동시 매수신호 발생 시) 선물가격 대비 0.5pt이상 상승을 한 후, 진입한 선물가격으로 다시 하락하면 잔고상 보유 콜옵션 전량 청산한다.(본절처리) (3) 진입시점(세개 챠트 동시 매수신호 발생 시) 선물가격 대비 0.9pt상승하면 진입시점에 매수한 콜옵션 수량의 30%를 청산한다. (4) 진입시점(세개 챠트 동시 매수신호 발생 시) 선물가격 대비 1.5pt상승하면 진입시점에 매수한 콜옵션 수량의 30%를 청산한다. (5) 선물챠트D에서 매수 익절신호가 발생하면 진입시점에 매수한 콜옵션 수량의 40%를 청산한다. 3. 거래시간 제한 당일 오후 12시 30분 이후부터 챠트에서 발생하는 신호는 진입하지 않는다.(당일 오후 12시 30분에 청산한다는 것이 아니라 새로운 진입을 금지하는 것임) 풋옵션 거래는 이와 반대로 하면 될 것 같은데요. 감사합니다.
프로필 이미지
극동해
2013-10-27
1144
글번호 222665
답변완료

수동주문 후 손절은 예스스팟으로...

안녕하세요... 수동으로 주문후 매수주문의 경우는 바로 전봉 저가에, 매도주문의 경우는 전봉 고가에 손절 주문(역지정가 주문) 나가게 하고 싶습니다. 즉, 매수 혹은 매도 주문은 손으로 수동으로 주문합니다. 예스스팟은 수동으로 체결된 주문에 대하여 즉시 체결된 봉의 전봉의 고가 또는 저가로 손절 주문(역지정가 주문)을 제출하는 코딩을 하고싶습니다. 예를들어 10분봉차트에서 9시 32분에 손으로 매수체결 시켰을 경우 예스스팟은 9시 30분 봉의 저가에 역지정가 주문을 내는 코딩입니다. 매도체결의 경우는 반대로요 표현이 제대로 되었는지 모르겠네요.. 부탁드립니다.
프로필 이미지
카라얀
2013-10-23
1138
글번호 222662
답변완료

문의 드립니다.

매번 도움을 받고 스팟을 잘 사용하고 있습니다. 감사합니다. 지금 사용하고 있는 수식은 아래와 같습니다. 몇 가지 수정을 좀 했으면 하는데 가능한지요. (수정하고 싶은 내용은) 선물 진입 신호시 옵션 매도로 진입을 하려고 하는데 증거금이 부족할 때 입니다. (방법1) 옵션 매도 대신 매수로 진입하는 방법 (방법2) 진입되어 있는 옵션 매도 포지션에서 외가 매수를 해서 증거금을 확보후 옵션 매도로 진입하는 방법입니다. 예) 진입되어 있는 포지션 - 풋 270 매도 1계약 진입하려고 하는 포지션 풋 267 매도 1계약 (하지만 증거금 부족) 증거금 확보를 위해 외가 풋 245 매수 진입 (0.04 ~ 0.07 정도의 외가) 증거금이 학보된 후 풋 267 매도 진입 위와 같이 수식 좀 부탁드립니다. 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) { //Buy신호이면 if (Signal.signalKind == 1) { Start = 1; //옵션 1.0 이하 종목 중 1에 가장 높은 가격을 가지는 콜/풋 종목을 찾음 UNum = Option.uppersATM; LNum = Option.lowersATM; CallCode = new Array(UNum+LNum+1); CallPrice = new Array(UNum+LNum+1); PutCode = new Array(UNum+LNum+1); PutPrice = new Array(UNum+LNum+1); // 콜종목 찾기 for (var i = -LNum; i <= UNum; i++) { //값이 1.0 이하이면 if (Option.GetCurrent(0, i) <= Price) { CallPrice[i+LNum] = Option.GetCurrent(0, i); CallCode[i+LNum] = Option.GetATMCallRecent(i); } else //값이 1.0 보다 크면 { CallPrice[i+LNum] = -1; CallCode[i+LNum] = -1; } } //풋종목 찾기 for (var ii = -UNum; ii <= LNum; ii++) { if (Option.GetCurrent(1, ii) <= Price ) { PutPrice[ii+UNum] = Option.GetCurrent(1, ii); PutCode[ii+UNum] = Option.GetATMPutRecent(ii); } else //값이 1.0 보다 크면 { PutPrice[ii+UNum] = -1; PutCode[ii+UNum] = -1; } } CC = -1; CallOrderCode = -1; for (var iii = -LNum; iii <= UNum; iii++) { if (CallPrice[iii+LNum] > CC) { CC = CallPrice[iii+LNum]; CallOrderCode = CallCode[iii+LNum]; } } PP = -1; PutOrderCode = -1; for (var iiii = -UNum; iiii <= LNum; iiii++) { if (PutPrice[iiii+UNum] > PP) { PP = PutPrice[iiii+UNum]; PutOrderCode = PutCode[iiii+UNum]; } } //콜매수 if (CC > -1) Account1.OrderBuy(CallOrderCode, CBqt, Option.GetAskByCode(CallOrderCode, 5),0); //풋매도 if (PP > -1) Account1.OrderSell(PutOrderCode, PSqt, Option.GetBidByCode(PutOrderCode, 5),0); } if (Signal.signalKind == 2 && Start == 1) { Account1.SetBalanceItem(CallOrderCode, 0); if(Account1.Balance.count >0 && Account1.Balance.position==2) Account1.OrderSell(CallOrderCode, Math.min(Account1.Balance.count, CBqt), Option.GetBidByCode(CallOrderCode, 5), 0); // Account1.OrderSell(CallOrderCode, CBqt, Option.GetBidByCode(CallOrderCode, 5), 0); Account1.SetBalanceItem(PutOrderCode, 0); if(Account1.Balance.count >0 && Account1.Balance.position==1) Account1.OrderBuy(PutOrderCode, Math.min(Account1.Balance.count, PSqt), Option.GetAskByCode(PutOrderCode, 5), 0); // Account1.OrderBuy(PutOrderCode, PSqt, Option.GetAskByCode(PutOrderCode, 5), 0); } //Sell신호이면 if (Signal.signalKind == 3) { Start = 1; //옵션 1.0 이상 종목 중 1에 가장 가까운 가격을 가지는 콜/풋 종목을 찾음 UNum = Option.uppersATM; LNum = Option.lowersATM; CallCode = new Array(UNum+LNum+1); CallPrice = new Array(UNum+LNum+1); PutCode = new Array(UNum+LNum+1); PutPrice = new Array(UNum+LNum+1); //콜종목 찾기 for (var i = -LNum; i <= UNum; i++) { if (Option.GetCurrent(0, i) <= Price) { CallPrice[i+LNum] = Option.GetCurrent(0, i); CallCode[i+LNum] = Option.GetATMCallRecent(i); } else//값이 1.0보다 크면 { CallPrice[i+LNum] = -1; CallCode[i+LNum] = -1; } } //풋종목 찾기 for (var ii = -UNum; ii <= LNum; ii++) { if (Option.GetCurrent(1, ii) <= Price ) { PutPrice[ii+UNum] = Option.GetCurrent(1, ii); PutCode[ii+UNum] = Option.GetATMPutRecent(ii); } else// 값이 1.0보다 크면 { PutPrice[ii+UNum] = -1; PutCode[ii+UNum] = -1; } } CC = -1; CallOrderCode = -1; for (var iii = -LNum; iii <= UNum; iii++) { if (CallPrice[iii+LNum] > CC) { CC = CallPrice[iii+LNum]; CallOrderCode = CallCode[iii+LNum] } } PP = -1; PutOrderCode = -1; for (var iiii = -UNum; iiii <= LNum; iiii++) { if (PutPrice[iiii+UNum] > PP) { PP = PutPrice[iiii+UNum]; PutOrderCode = PutCode[iiii+UNum]; } } //콜매도 if (CC > -1) Account1.OrderSell(CallOrderCode, CSqt, Option.GetBidByCode(CallOrderCode, 5),0); //풋매수 if (PP > -1) Account1.OrderBuy(PutOrderCode, PBqt, Option.GetAskByCode(PutOrderCode, 5),0); } //exitshort신호 발생하면 if (Signal.signalKind == 4 && Start == 1) { Account1.SetBalanceItem(CallOrderCode, 0); if(Account1.Balance.count >0 && Account1.Balance.position==1) Account1.OrderBuy(CallOrderCode, Math.min(Account1.Balance.count, CSqt), Option.GetAskByCode(CallOrderCode, 5), 0); // Account1.OrderBuy(CallOrderCode, CSqt, Option.GetAskByCode(CallOrderCode, 5), 0); Account1.SetBalanceItem(PutOrderCode, 0); if(Account1.Balance.count >0 && Account1.Balance.position==2) Account1.OrderSell(PutOrderCode, Math.min(Account1.Balance.count, PBqt), Option.GetBidByCode(PutOrderCode, 5), 0); // Account1.OrderSell(PutOrderCode, PBqt, Option.GetBidByCode(PutOrderCode, 5), 0); } }
프로필 이미지
루이001
2013-10-23
1150
글번호 222661
답변완료

확장차트를 만들때 현상

안녕하세요. 늘 수고 하십니다. 1.확장차트 검증에러 확장차트를 만들고 나서 검증을 누르면 다음과 같이 오류보고 창에 에러메시지가 생깁니다. 확장차트가 에러가 난것으로 보여 스크립트를 저장하고,적용해보면 정상적으로 나옵니다. 이후 일부 코딩을 수정하여 SyntaxError 가 나게 코딩을 처리하여 저장하기 전까지는 코딩이 에러가 있는지 없는지 조차 구분이 안되고 확장차트에 대한 에러가 지속적으로 나오고, 다시 저장을 해서 스크립트를 적용하면 그때서야 에러메시지를 출력합니다. 확인 부탁드립니다. 2. 수식으로 확장챠트 만들기 ReqChartEx(ReqChartItem, SystemInfo, IndicatorInfo, ReqRefItem) 를 사용하여 확장챠트를 만드는 샘플을 부탁드립니다. SystemInfo, IndicatorInfo, ReqRefItem를 사용하지 않으려면 어떻게 처리하는지도 부탁드리겠습니다. 시도를 많이 해보았는데.... ㅠ.ㅠ 계속 예스트레이더가 다운되네요
프로필 이미지
히말라야
2013-10-23
1405
글번호 222660

마루아빠 님에 의해서 삭제되었습니다.

프로필 이미지
마루아빠
2013-10-21
9
글번호 222656
답변완료

[주식]전략명 문의 드립니다.

안녕하세요. 1. 여러가지 전략을 넣어서 종목을 진입 시키다보니 특정 전략명의 전략은 청산을 시키지 않았으면 해서요. 전략명을 체크해서 그 전략명을 제외하고 나머지 전략들만 청산을 시킬려면 어떻게 하면 될까요? 가능한가요? ^^; 2. 1번이 힘들다면... 오늘 진입된 종목만 청산 시킬려면 어떻게 해야될까요? ㅡㅡ; #주식
프로필 이미지
오토
2013-10-21
1062
글번호 222655

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

프로필 이미지
큰상
2013-10-20
35
글번호 222653

마루아빠 님에 의해서 삭제되었습니다.

프로필 이미지
마루아빠
2013-10-20
20
글번호 222652
답변완료

엑셀 관련되서..

수고 하십니다. 질문 드립니다. 기관 순매수 종목[4602]을 예스스팟을 이용하여 엑셀로 매일 받고 싶은데요.. 예스스팟에서 가능 한건가요?
프로필 이미지
포이에마
2013-10-17
1217
글번호 222648
답변완료

질문 드립니다.

안녕하세요? 스팟으로 전략을 만들다가 궁금해서 질문 올립니다. 고정자산으로 수량을 설정하여 진입하는 방법과, 진입한 수량만큼 청산시키는 방법을 알려주시면 감사하겠습니다.
프로필 이미지
뚱언니알러지
2013-10-16
1262
글번호 222646