커뮤니티

예스스팟 Q&A

답변완료

수식 문의 드립니다.

코스피200 선물가격을 참조하여 해당월물 ATM 콜,풋을 매도 후 헷지해 나가는 경우입니다. 자세한 사항은 아래 참조 부탁드립니다. - 진입: 옵션 만기 다음날인 금요일 오전 9시 1분에 코스피200선물 가격에서 가장 가까운 ATM Call,Put X계약씩 매도 (매도 가능 계약수는 Input: Y(비율= 매도증거금/예탁금)을 설정해 예를 들어 Y=25(%)이면 예탁금의 25% 내에서 최초로 매도 가능한 ATM Call,Put 계약수 대로 매도 되도록 코딩, 매도 가능 계약수 산정은 최초 매도 진입에만 적용) - 포지션 진입 후, 포지션 델타가 +/- 1 초과 여부 체크해 가면서, 1. 포지션 델타가 1 이상 도달 시, 도달 시점의 코스피200 선물가에 가장 가까운 ATM Put 1계약 매수, Call 1계약 매도 (델타헷징 후 당일 델타가 다시 1 이상 도달 시, 같은 방법으로 ATM Put 1계약 매수, Call 1계약 매도) 코스피200선물 시가 갭하락으로 포지션 델타가 (예를 들면) 1.5 근처에서 장시작시, ATM Put 2계약 매수, Call 1계약 매도 (같은 방식으로 포지션 델타가 2.4 가 되면 (0.5 단위 반올림하면 2.5가 되므로) ATM Put 3계약 매수, Call 2계약 매도 2. 포지션 델타가 -1 이하 도달 시, 도달 시점의 코스피200 선물가에 가장 가까운 ATM Call 1계약 매수, Put 1계약 매도 (델타헷징 후 당일 델타가 다시 -1 이하 도달 시, 같은 방법으로 ATM Call 1계약 매수, Put 1계약 매도 코스피200선물 시가 갭상승으로 포지션 델타가 (예를 들면) -1.5 근처에서 장시작시, ATM Call 2계약 매수, Put 1계약 매도 (같은 방식으로 포지션 델타가 -2.4 가 되면 (0.5 단위 반올림하면 -2.5가 되므로) ATM Call 3계약 매수, Put 2계약 매도 - 청산: 진입월물의 만기 2일 전인 화요일 오후 3시에 포지션 일괄 청산 항상 감사드립니다.
프로필 이미지
밝은아침
2014-01-15
1071
글번호 222780

밝은아침 님에 의해서 삭제되었습니다.

프로필 이미지
밝은아침
2014-01-15
0
글번호 222779
답변완료

예스스팟식 문의드립니다.

현물의경우 자연스레 관심종목이 많아져서 차트가 계속추가되는데요. 1, 예스스팟 편집기에 차트객체와 종목개체를 전부 추가해야 되는건가요? 2, 위의 추가된 전종목 조건만족즉시 미완성봉이라도 종목당 100만원씩 1일 1번만 매수할 려고 합니다.(차트는 일봉기준) 3, 전종목 조건만족시 동시호가에 시장가매수 하는식도 부탁드립니다. 4. 그리고 코스피, 코스닥 금액에대한 예스스팟의 수량계산식도 궁금합니다. 날씨가 많이 추워졌습니다. 건강조심하시고 항상 친절한 답변 감사드립니다. jws4927@paran.com
프로필 이미지
HI_jws4927
2014-01-13
1026
글번호 222778
답변완료

729번 답변에 대한 추가 질문

안녕하세요. ^^ 답변 주신 내용은 주식매매에서 트레일링 인데요. 손절부분에 lowest 함수를 이용해서 추가를 하고 싶은데... 여러방법을 찾아봤지만.. 답이 안나와서 글을 남깁니다. ㅠㅠ A = 10일간의 평균 변동폭 B = 당일고가 - 진입가 C = 진입가 - (A - B) C값을 손절가격으로 할려는데... 잘 안되네요. 부탁드립니다. ^^
프로필 이미지
오토
2014-01-13
877
글번호 222777

관리자에 의해 프로그램 사용법 QnA로 이동되었습니다

프로필 이미지
탄젠트80
2014-01-12
9
글번호 222776
0

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

프로필 이미지
마루아빠
2014-01-11
23
글번호 222775
답변완료

확장차트 문의

안녕하세요? 아래 기능을 수행할 수 있는 예제 부탁 드립니다. 1. 9시 5분에 옵션종목을 가격이 1에 가장 가까운 콜/풋 옵션 종목 선정 2. 해당 옵션 종목으로 확장차트 생성 3. 확장 차트에 설정한 시스템에 의해서 매수 신호가 발생하면 매수주문 4. 청산 신호 발생하면 매도 주문 5. 오후 3시 5분 시각에 잔고에 미체결 주문 남아있으면 모두 취소 만약 상기 1번과 2번 구현이 확장차트 개체를 추가하는 방식으로 힘들면 확장차트를 수식으로 생성하는 예제로 부탁 드립니다.
프로필 이미지
lucky93
2014-01-08
908
글번호 222770

관리자에 의해 프로그램 사용법 QnA로 이동되었습니다

프로필 이미지
아인슈타인
2014-01-08
23
글번호 222768
0
답변완료

YT 장종료청산을 Spot에서 조정

안녕하세요~ 다음 수식 부탁드립니다. 현재 YT시스템의 신호를 기준으로 Spot에서 주문을 실행하고 있습니다. YT에서 장종료청산이 14:40으로 설정되어 있고, 14:30~14:40 사이에는 진입,청산이 이루어지지 않도록 코딩이 되어 있습니다. [ 원하는 Spot 수식 ] 14:30 이후 만약 포지션이 있다면, Spot에서 14:35 에 청산하고 YT에서 발생하는 14:40 장종료청산 신호는 무시하여 주문이 발생하지 않도록 하고 싶습니다. (한 계좌에 여러 시스템을 운용하므로, 해당되는 시스템에 한하여 작동) 이렇게 하고자 하는 이유는, YT에서 종료청산 시간을 변경할 수도 있지만 동일시스템을 종료청산 시간만 변경하여 사용할 경우 차트를 계속 추가해야 하는 문제 때문에 Spot에서 조정하고자 함입니다. 그럼 부탁드리겠습니다. 오늘도 즐겁고 활기찬 시간되시기 바랍니다. 감사합니다 !!!
프로필 이미지
새로운세상
2014-01-07
917
글번호 222766
답변완료

옵션매매 추가문의

수고하십니다. 아래 791번에 질문올렸는데요. 답변감사드리며 2가지 질문 더 드립니다. 1. 답변주신 내용에 1,2번 Timer설정시 if (BT == 1 && Replace1 == 0)이라는 조건문이 왜 들어가는지 궁금합니다. 3, 4번 Timer는 그런 조건문을 안 넣으셨는데요. 2. 아래식에서 현재는 선물청산신호시 모든 옵션도 같이 청산되도록 되어 있는데요. 선물에 손절청산신호(예를 들어 신호명이 LS_Long, LS_Short)가 나오면 옵션은 이후 Trailing Stop으로(옵션은 수익이므로) 수익청산 되도록 로직을 수정시키고 싶습니다. 만약 선물에 Trailing Stop으로 익절신호(예를 들어 신호명이 TS_Long, TS_Short)가 나오면 기존처럼 모든 옵션이 동시에 청산되어야 합니다. 간단히 말씀드리자면 선물손절시 옵션은 T/Stop으로, 선물익절이면 옵션동시청산입니다. 또한 옵션 T/Stop을 YT처럼 ATR T/Stop으로 만들수 있나요? 그게 안되면 최대수익대비하락폭 으로 수정부탁드립니다. 감사합니다. -------------------------------------- 안녕하세요 예스스탁입니다. 아래식 참고하시기 바랍니다. var Start; var UNum; var LNum; var CallCode; var CallPrice; var PutCode; var PutPrice; var CC; var PP; var CallOrderCode; var PutOrderCode; var BT; var ST; var BuySignalCode; var SellSignalCode; var BuySignalID; var SellSignalID; var BuySignalNum; var SellSignalNum; var Replace1; var Replace2; 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 ) { CallPrice[i+LNum] = Math.abs(Option.GetCurrent(0, i)); CallCode[i+LNum] = Option.GetATMCallRecent(i); } else { CallPrice[i+LNum] = -1; CallCode[i+LNum] = -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] } } for (var ii = -UNum; ii <= LNum; ii++) { if (Option.GetCurrent(1, ii) < 3.0) { PutPrice[ii+UNum] = Math.abs(Option.GetCurrent(1, ii)); PutCode[ii+UNum] = Option.GetATMPutRecent(ii); } else { PutPrice[ii+UNum] = -1; PutCode[ii+UNum] = -1; } } 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 (Signal.signalKind == 1) { Start = 1; if (CC >= PP && CC > -1 && PP > -1) { BT = 1; Replace1 = 0; BuySignalCode = CallOrderCode; BuySignalID = Account1.OrderSell(BuySignalCode, 1, Option.GetAskByCode(BuySignalCode, 1), 0); } else{ BT = -1; Replace1 = 0; BuySignalCode = PutOrderCode; BuySignalID = Account1.OrderBuy(BuySignalCode, 1, Option.GetBidByCode(BuySignalCode, 1), 0); } } if (Start == 1 && Signal.signalKind == 2) { if (BT == 1) { Account1.OrderBuy(BuySignalCode, 1, Option.GetAskByCode(BuySignalCode, 1), 0); } if (BT == -1) { Account1.OrderSell(BuySignalCode, 1, Option.GetBidByCode(BuySignalCode, 1), 0); } } if (Signal.signalKind == 3) { Start = 1; if (CC >= PP && CC > -1 && PP > -1) { ST = 1; Replace2 = 0; SellSignalCode = CallOrderCode; SellSignalID = Account1.OrderBuy(SellSignalCode, 1, Option.GetBidByCode(SellSignalCode, 1), 0); } else{ ST = -1; Replace2 = 0; SellSignalCode = PutOrderCode; SellSignalID = Account1.OrderSell(SellSignalCode, 1, Option.GetAskByCode(SellSignalCode, 1), 0); } } if (Start == 1 && Signal.signalKind == 4) { if (ST == 1) { Account1.OrderSell(SellSignalCode, 1, Option.GetBidByCode(SellSignalCode, 1), 0); } if (ST == -1) { Account1.OrderBuy(SellSignalCode, 1, Option.GetAskByCode(SellSignalCode, 1), 0); } } } function Main_OnOrderResponse(OrderResponse) { if (OrderResponse.orderID == BuySignalID) { BuySignalNum = OrderResponse.orderNum; if (BT == 1 && Replace1 == 0) { Main.SetTimer(1, 1000); Main.SetTimer(2, 3000); } } if (OrderResponse.orderID == SellSignalID) { SellSignalNum = OrderResponse.orderNum; Main.SetTimer(3, 1000); Main.SetTimer(4, 3000); } } function Main_OnTimer(nEventID) { if (nEventID == 1 && Replace1 == 0) { Replace1 = 1; Account1.SetUnfillOrderNumber(BuySignalNum); if (Account1.Unfill.count > 0 && BT == 1) { BuySignalID = Account1.OrderReplacePrice(BuySignalNum, Option.GetBidByCode(BuySignalCode,1)); } if (Account1.Unfill.count > 0 && BT == -1) { BuySignalID = Account1.OrderReplacePrice(BuySignalNum, Option.GetAskByCode(BuySignalCode,1)); } } if (nEventID == 2 && Replace1 == 1 ) { Replace1 = 2; Account1.SetUnfillOrderNumber(BuySignalNum); if (Account1.Unfill.count > 0 && BT == 1) { BuySignalID = Account1.OrderReplacePrice(BuySignalNum, Option.GetBidByCode(BuySignalCode,3)); } if (Account1.Unfill.count > 0 && BT == -1) { BuySignalID = Account1.OrderReplacePrice(BuySignalNum, Option.GetAskByCode(BuySignalCode,3)); } } if (nEventID == 3 && Replace2 == 0) { Replace2 = 1; Account1.SetUnfillOrderNumber(SellSignalNum); if (Account1.Unfill.count > 0 && ST == 1) { SellSignalID = Account1.OrderReplacePrice(SellSignalNum, Option.GetAskByCode(SellSignalNum,1)); } if (Account1.Unfill.count > 0 && ST == -1) { SellSignalID = Account1.OrderReplacePrice(SellSignalNum, Option.GetBidByCode(SellSignalNum,1)); } } if (nEventID == 4 && Replace2 == 1 ) { Replace2 = 2; Account1.SetUnfillOrderNumber(BuySignalNum); if (Account1.Unfill.count > 0 && ST == 1) { SellSignalID = Account1.OrderReplacePrice(SellSignalNum, Option.GetAskByCode(SellSignalNum,3)); } if (Account1.Unfill.count > 0 && ST == -1) { SellSignalID = Account1.OrderReplacePrice(SellSignalNum, Option.GetBidByCode(SellSignalNum,3)); } } } 즐거운 하루되세요 > 착한이 님이 쓴 글입니다. > 제목 : 옵션매수문의 > 수고하십니다. 아래의 내용에 맞게 YesSpot 수식 작성부탁드립니다. 또한 2번 같은 경우 본문의 라인이 길어질 수 있어 사용자함수로 만들어서 사용코자 하는데 가능할지요. 1. 예스트레이더의 선물 진입시 헷지를 위하여 옵션 매수 2. 3.0 이하의 콜옵션과 풋옵션중에 3.0 에 가장 근접하는 콜/풋 종목을 찾고 3. 선물매수신호 -> 그 종목이 콜이면 콜매도, 풋이면 풋매수, 선물매수청산신호 -> 옵션청산 4. 선물매도신호 -> 그 종목이 콜이면 콜매수, 풋이면 풋매도, 선물매도청산신호 -> 옵션청산 5. 옵션매수는 매수1호가에 지정가주문, 미체결시 1초후 매도1호가주문, 미체결시 3초후 매도3호가 주문 감사합니다.
프로필 이미지
착한이
2014-01-07
1022
글번호 222764