커뮤니티

14시 PUT 옵션 매수

프로필 이미지
좌오비우오비
2026-07-31 16:41:17
40
글번호 233064
답변완료

데이트레이딩

PUT 옵션 매수 수식 요청 드립니다.


1. PUT 옵션 매수

     - 진입시작 시간 : 140000

     - 진입제한 시간 : 150000

     - 행사가 선정 방법

           1) 옵션시세표에서 현재가격이 0.02인 행사가가 1개인 경우는 그 행사가를 선택합니다.

                                     ex)   

                                                    1502.50     0.05

                                                    1500.00     0.04  

                                                    1497.50     0.03

                                                    1495.00     0.02  *******선택

                                                    1492.50     0.01


           2) 옵션시세표에서 현재가격이 0.02인 행사가가 2개 이상인 경우는 내가격쪽 행사가를 선택합니다.

                                       ex)   

                                                  1502.50     0.03

                                                  1500.00     0.02  *******선택

                                                  1497.50     0.02

                                                  1495.00     0.01

                                                  1492.50     0.01


     - 선정된 행사가에서 0.02 체결이 발생하면 상대 매도1호가에 매수주문합니다. 수량4개.

     - 익절은  0.50 1개,  1.00 1개,  1.50  1개,  2.00 1개 입니다.

     - 익절하지 않은 수량은 151800에 모두 청산합니다.


항상 고맙습니다.

답변 1
프로필 이미지

예스스탁 예스스탁 답변

2026-08-05 15:34:03

안녕하세요 예스스탁입니다. var stime = 140000, etime = 150000, xtime = 151800; var BP = 0.02; var XP1 = 0.50; var XP2 = 1.00; var XP3 = 1.50; var XP4 = 2.00; var HHMMSS; var Code; var B,X1,X2,X3,X4; function Main_OnStart() { var d = new Date(); HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); Main.MessageList(HHMMSS,"|Spot Start"); B = false; X1 = false; X2 = false; X3 = false; X4 = false; if (HHMMSS < stime) { Main.MessageList(HHMMSS,"|타이머셋팅"); Main.SetTimer(1, 1000); } else { Main.MessageList(HHMMSS,"|지정시간 이후"); } } function Main_OnTimer(nEventID) { var d = new Date(); HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); if (nEventID == 1 && HHMMSS >= stime) { if (HHMMSS < etime) { if (B == false) { for(var i = -Option1.uppersATM; i <= Option1.lowersATM; i++) { if (B == false && Option1.GetCurrent(1,i) == BP) { Code = Option1.GetATMPutRecent(i); var OP = Option1.GetAsk(Code, 1); Account1.OrderBuy(Code, 4, OP, 0); B = true; } } } if (B == true) { if (X1 == false && Option1.GetCurrent(Code) >= XP1) { X1 = true; Account1.SetBalance(Code, 0); if (Account1.Balance.count > 0 && Account1.Balance.position == 2 ) { Account1.OrderSell(Code, 1, Option1.GetBid(Code,1), 0) } } if (X2 == false && Option1.GetCurrent(Code) >= XP2) { X2 = true; Account1.SetBalance(Code, 0); if (Account1.Balance.count > 0 && Account1.Balance.position == 2 ) { Account1.OrderSell(Code, 1, Option1.GetBid(Code, 1), 0) } } if (X3 == false && Option1.GetCurrent(Code) >= XP3) { X3 = true; Account1.SetBalance(Code, 0); if (Account1.Balance.count > 0 && Account1.Balance.position == 2 ) { Account1.OrderSell(Code, 1, Option1.GetBid(Code, 1), 0) } } if (X4 == false && Option1.GetCurrent(Code) >= XP4) { X4 = true; Account1.SetBalance(Code, 0); if (Account1.Balance.count > 0 && Account1.Balance.position == 2 ) { Account1.OrderSell(Code, 1, Option1.GetBid(Code, 1), 0) } } } } if (HHMMSS >= xtime) { Main.KillTimer(1); Account1.SetBalance(Code, 0); if (Account1.Balance.count > 0 && Account1.Balance.position == 2 ) { Account1.OrderSell(Code, Account1.Balance.count, Option1.GetBid(Code, 1), 0) } } } } 즐거운 하루되세요