커뮤니티

옵션 일정시간에 순차적으로 매수, 일정시간에 순차적으로 매도 가능할까요?

프로필 이미지
자쿠
2019-11-29 17:04:51
215
글번호 134023
답변완료
열심히 머리를 굴리고 있는데, 너무 어려워 부탁을 드려봅니다. 꾸벅 옵션 등가격 확인 옵션콜매도 2개, 옵션풋매도 2개를 기계적으로 특정 시간에 하고, 특정시간에 매수해서 청산(매도 후, 매수청산)하려고 합니다. 또한 스탑로스 기준을 넣으려고 합니다. 도움주시면 정말 감사드리겠습니다. 꾸벅 -------------------------------------------- ● 등가 옵션 시장가 매도 총 26 세트 9시 등가콜 2개 매도, 등가풋 2개 매도 9시 10분 등가콜 2개 매도, 등가풋 2개 매도 9시 20분 등가콜 2개 매도, 등가풋 2개 매도 9시 30분 등가콜 2개 매도, 등가풋 2개 매도 9시 40분 등가콜 2개 매도, 등가풋 2개 매도 9시 50분 등가콜 2개 매도, 등가풋 2개 매도 10시 등가콜 2개 매도, 등가풋 2개 매도 10시 10분등가콜 2개 매도, 등가풋 2개 매도 10시 20분등가콜 2개 매도, 등가풋 2개 매도 10시 30분등가콜 2개 매도, 등가풋 2개 매도 10시 40분등가콜 2개 매도, 등가풋 2개 매도 10시 50분등가콜 2개 매도, 등가풋 2개 매도 11시 00분등가콜 2개 매도, 등가풋 2개 매도 -------------------------------------------- 9시부터 ~ 11시 까지 매도한 것을 14:00시부터 15:00까지 시장가 매수 청산 14:00 등가콜 2개 매수, 등가풋 2개 매수 (숫자상 14시 것만 2개입니다) 14:10 등가콜 4개 매수, 등가풋 4개 매수 14:20 등가콜 4개 매수, 등가풋 4개 매수 14:30 등가콜 4개 매수, 등가풋 4개 매수 14:40 등가콜 4개 매수, 등가풋 4개 매수 14:50 등가콜 4개 매수, 등가풋 4개 매수 15:00 등가콜 4개 매수, 등가풋 4개 매수 ------------------------------------------- 스탑로스는 금액기준 250만원일때, 보유한 물량 전량청산. 청산 후, 매매중지.
시스템
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2019-12-02 09:58:27

안녕하세요 예스스탁입니다. 1 예스랭귀지는 차트에 적용되어 기본차트 종목에 대해서만 신호와 주문이 가능합니다. 단일종목의 차트를 열고 해당 종목에 대해 신호를 발생하고자 할때 사용하는 언어입니다. 2개 종목에 대해 주문을 집행하기 위해서는 각각 차트를 열고 신호를 적용해야 하는데 다른 차트의 종목의 손익을 알지 못해 여러종목의 총손익을 이용해 제어가 가능하지 않습니다. 2 문의하신 내용은 차트 기반의 예스랭귀지 보다는 프로그램에 제공되는 또다른 시스템 트레이딩 기능인 예스스팟으로 구현하셔야 합니다. 예스스팟은 자바스크립트 언어가 탑제되어 있고 사용자분이 해당 언어로 코딩이 가능하셔야 사용가능합니다. 언어와 관련된 부분은 예스스팟도움말과 자바스크립트 관련 서적을 참고하시기 바랍니다. 간단한 내용이므로 해당 게시판에 가이드 내용을 남겨드립니다. 9시가 되면 등가 콜풋을 선정하고 9시~11시까지 10분간격으로 매도하고 14~15시에 10분간격으로 청산하게 됩니다. 250만 손실시 모두 청산되는 내용도 포함되어 있습니다. 스크립트 객체설정 옵션객체추가 --> 객체명은 Option1, KP200옵션지정 계좌객체추가 --> 객체명은 Account1, 주문낼 계좌로 지정 var HHMMSS, HHMMSS1; var Call,Put; function Main_OnStart() { Main.MessageList("Start"); Main.SetTimer(1, 1000); } function Main_OnTimer(nEventID) { if (nEventID == 1) { var d = new Date(); HHMMSS1 = HHMMSS; HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); if (HHMMSS >= 90000 && HHMMSS1 < 90000) { Call = Option1.GetATMCallRecent(0, 0); Put = Option1.GetATMPutRecent(0, 0); } if ((HHMMSS >= 90000 && HHMMSS1 < 90000) || (HHMMSS >= 91000 && HHMMSS1 < 91000) (HHMMSS >= 92000 && HHMMSS1 < 92000) (HHMMSS >= 93000 && HHMMSS1 < 93000) (HHMMSS >= 94000 && HHMMSS1 < 94000) (HHMMSS >= 95000 && HHMMSS1 < 95000) (HHMMSS >= 100000 && HHMMSS1 < 100000) (HHMMSS >= 101000 && HHMMSS1 < 101000) (HHMMSS >= 102000 && HHMMSS1 < 102000) (HHMMSS >= 103000 && HHMMSS1 < 103000) (HHMMSS >= 104000 && HHMMSS1 < 104000) (HHMMSS >= 105000 && HHMMSS1 < 105000) (HHMMSS >= 110000 && HHMMSS1 < 110000)) { Account1.OrderSell(Call,2,0,1); Account1.OrderSell(Put,2,0,1); } if (HHMMSS >= 140000 && HHMMSS1 < 140000) { Account1.SetBalance(Call,0); if (Account1.Balance.count > 0 && Account1.Balance.position == 1) { Account1.OrderBuy(Call,Math.min(2,Account1.Balance.count),0,1); } Account1.SetBalance(Put,0); if (Account1.Balance.count > 0 && Account1.Balance.position == 1) { Account1.OrderBuy(Put,Math.min(2,Account1.Balance.count),0,1); } } if ((HHMMSS >= 141000 && HHMMSS1 < 141000) (HHMMSS >= 142000 && HHMMSS1 < 142000) (HHMMSS >= 143000 && HHMMSS1 < 143000) (HHMMSS >= 144000 && HHMMSS1 < 144000) (HHMMSS >= 145000 && HHMMSS1 < 145000) (HHMMSS >= 150000 && HHMMSS1 < 150000)) { Account1.SetBalance(Call,0); if (Account1.Balance.count > 0 && Account1.Balance.position == 1) { Account1.OrderBuy(Call,Math.min(4,Account1.Balance.count),0,1); } Account1.SetBalance(Put,0); if (Account1.Balance.count > 0 && Account1.Balance.position == 1) { Account1.OrderBuy(Put,Math.min(4,Account1.Balance.count),0,1); } } if (HHMMSS >= 90000 && HHMMSS <= 150000) { var CallPL = 0; var PutPL = 0; var CallV = 0; var PutV = 0; Account1.SetBalance(Call,0); if (Account1.Balance.count > 0 && Account1.Balance.position == 1) { CallPL = (Account1.Balance.avgUnitCost - Account1.Balance.current)*Account1.Balance.count; CallV = Account1.Balance.count; } Account1.SetBalance(Put,0); if (Account1.Balance.count > 0 && Account1.Balance.position == 1) { PutPL = (Account1.Balance.avgUnitCost - Account1.Balance.current)*Account1.Balance.count; PutV = Account1.Balance.count; } if (CallV > 0 && PutV > 0 && CallPL+PutPL <= (-2500000/250000)) { Main.KillTimer(1); Account1.OrderBuy(Call,CallV,0,1); Account1.OrderBuy(Call,PutV,0,1); } } if (HHMMSS >= 150000) { Main.KillTimer(1); } } } 즐거운 하루되세요 > 자쿠 님이 쓴 글입니다. > 제목 : 옵션 일정시간에 순차적으로 매수, 일정시간에 순차적으로 매도 가능할까요? > 열심히 머리를 굴리고 있는데, 너무 어려워 부탁을 드려봅니다. 꾸벅 옵션 등가격 확인 옵션콜매도 2개, 옵션풋매도 2개를 기계적으로 특정 시간에 하고, 특정시간에 매수해서 청산(매도 후, 매수청산)하려고 합니다. 또한 스탑로스 기준을 넣으려고 합니다. 도움주시면 정말 감사드리겠습니다. 꾸벅 -------------------------------------------- ● 등가 옵션 시장가 매도 총 26 세트 9시 등가콜 2개 매도, 등가풋 2개 매도 9시 10분 등가콜 2개 매도, 등가풋 2개 매도 9시 20분 등가콜 2개 매도, 등가풋 2개 매도 9시 30분 등가콜 2개 매도, 등가풋 2개 매도 9시 40분 등가콜 2개 매도, 등가풋 2개 매도 9시 50분 등가콜 2개 매도, 등가풋 2개 매도 10시 등가콜 2개 매도, 등가풋 2개 매도 10시 10분등가콜 2개 매도, 등가풋 2개 매도 10시 20분등가콜 2개 매도, 등가풋 2개 매도 10시 30분등가콜 2개 매도, 등가풋 2개 매도 10시 40분등가콜 2개 매도, 등가풋 2개 매도 10시 50분등가콜 2개 매도, 등가풋 2개 매도 11시 00분등가콜 2개 매도, 등가풋 2개 매도 -------------------------------------------- 9시부터 ~ 11시 까지 매도한 것을 14:00시부터 15:00까지 시장가 매수 청산 14:00 등가콜 2개 매수, 등가풋 2개 매수 (숫자상 14시 것만 2개입니다) 14:10 등가콜 4개 매수, 등가풋 4개 매수 14:20 등가콜 4개 매수, 등가풋 4개 매수 14:30 등가콜 4개 매수, 등가풋 4개 매수 14:40 등가콜 4개 매수, 등가풋 4개 매수 14:50 등가콜 4개 매수, 등가풋 4개 매수 15:00 등가콜 4개 매수, 등가풋 4개 매수 ------------------------------------------- 스탑로스는 금액기준 250만원일때, 보유한 물량 전량청산. 청산 후, 매매중지.
프로필 이미지

자쿠

2020-02-04 11:58:40

진심으로 친절하고 상세한 답변 감사드립니다. 꾸벅 추가질문1) 아래내용을 하이투자증권 혹은 NH투자증권 예스트레이더로 실행하려고 합니다. 어느 증권사 예스트레이더를 사용하면 좋을까요? 차이가 있는건지, 2증권사 예스트레이더 무관한건지 알고 싶습니다. 추가질문 2) 만약 증거금이 부족한 경우가 있다면, 예를 들어, 아래 수식으로 진행하는데 증거금이 1억원이 필요한데, 5천만원 밖에 없다면 발생되는 문제가 있을 것 같습니다. 예를 들어서, 매도는 일부만 되고, 청산수식으로 인해 매수가 잡히는 일이 생기지는 않는지요. 추가질문 3) 매도 수량과 청산수량을 바꾸려면 아래 수식에서 ordersell 수량만 숫자를 바꿔서 사용해도 무방할까요? Account1.OrderSell(Call,2,0,1); Account1.OrderSell(Put,2,0,1); Account1.OrderSell(Call,2,0,1); Account1.OrderSell(Put,2,0,1); Account1.OrderBuy(Put,Math.min(4,Account1.Balance.count),0,1); } 이런식의 수량지정되어 있는것만 수정해서 사용하면 되는 건가요? ----------------------------------------------- > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 옵션 일정시간에 순차적으로 매수, 일정시간에 순차적으로 매도 가능할까요? > 안녕하세요 예스스탁입니다. 1 예스랭귀지는 차트에 적용되어 기본차트 종목에 대해서만 신호와 주문이 가능합니다. 단일종목의 차트를 열고 해당 종목에 대해 신호를 발생하고자 할때 사용하는 언어입니다. 2개 종목에 대해 주문을 집행하기 위해서는 각각 차트를 열고 신호를 적용해야 하는데 다른 차트의 종목의 손익을 알지 못해 여러종목의 총손익을 이용해 제어가 가능하지 않습니다. 2 문의하신 내용은 차트 기반의 예스랭귀지 보다는 프로그램에 제공되는 또다른 시스템 트레이딩 기능인 예스스팟으로 구현하셔야 합니다. 예스스팟은 자바스크립트 언어가 탑제되어 있고 사용자분이 해당 언어로 코딩이 가능하셔야 사용가능합니다. 언어와 관련된 부분은 예스스팟도움말과 자바스크립트 관련 서적을 참고하시기 바랍니다. 간단한 내용이므로 해당 게시판에 가이드 내용을 남겨드립니다. 9시가 되면 등가 콜풋을 선정하고 9시~11시까지 10분간격으로 매도하고 14~15시에 10분간격으로 청산하게 됩니다. 250만 손실시 모두 청산되는 내용도 포함되어 있습니다. 스크립트 객체설정 옵션객체추가 --> 객체명은 Option1, KP200옵션지정 계좌객체추가 --> 객체명은 Account1, 주문낼 계좌로 지정 var HHMMSS, HHMMSS1; var Call,Put; function Main_OnStart() { Main.MessageList("Start"); Main.SetTimer(1, 1000); } function Main_OnTimer(nEventID) { if (nEventID == 1) { var d = new Date(); HHMMSS1 = HHMMSS; HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); if (HHMMSS >= 90000 && HHMMSS1 < 90000) { Call = Option1.GetATMCallRecent(0, 0); Put = Option1.GetATMPutRecent(0, 0); } if ((HHMMSS >= 90000 && HHMMSS1 < 90000) || (HHMMSS >= 91000 && HHMMSS1 < 91000) (HHMMSS >= 92000 && HHMMSS1 < 92000) (HHMMSS >= 93000 && HHMMSS1 < 93000) (HHMMSS >= 94000 && HHMMSS1 < 94000) (HHMMSS >= 95000 && HHMMSS1 < 95000) (HHMMSS >= 100000 && HHMMSS1 < 100000) (HHMMSS >= 101000 && HHMMSS1 < 101000) (HHMMSS >= 102000 && HHMMSS1 < 102000) (HHMMSS >= 103000 && HHMMSS1 < 103000) (HHMMSS >= 104000 && HHMMSS1 < 104000) (HHMMSS >= 105000 && HHMMSS1 < 105000) (HHMMSS >= 110000 && HHMMSS1 < 110000)) { Account1.OrderSell(Call,2,0,1); Account1.OrderSell(Put,2,0,1); } if (HHMMSS >= 140000 && HHMMSS1 < 140000) { Account1.SetBalance(Call,0); if (Account1.Balance.count > 0 && Account1.Balance.position == 1) { Account1.OrderBuy(Call,Math.min(2,Account1.Balance.count),0,1); } Account1.SetBalance(Put,0); if (Account1.Balance.count > 0 && Account1.Balance.position == 1) { Account1.OrderBuy(Put,Math.min(2,Account1.Balance.count),0,1); } } if ((HHMMSS >= 141000 && HHMMSS1 < 141000) (HHMMSS >= 142000 && HHMMSS1 < 142000) (HHMMSS >= 143000 && HHMMSS1 < 143000) (HHMMSS >= 144000 && HHMMSS1 < 144000) (HHMMSS >= 145000 && HHMMSS1 < 145000) (HHMMSS >= 150000 && HHMMSS1 < 150000)) { Account1.SetBalance(Call,0); if (Account1.Balance.count > 0 && Account1.Balance.position == 1) { Account1.OrderBuy(Call,Math.min(4,Account1.Balance.count),0,1); } Account1.SetBalance(Put,0); if (Account1.Balance.count > 0 && Account1.Balance.position == 1) { Account1.OrderBuy(Put,Math.min(4,Account1.Balance.count),0,1); } } if (HHMMSS >= 90000 && HHMMSS <= 150000) { var CallPL = 0; var PutPL = 0; var CallV = 0; var PutV = 0; Account1.SetBalance(Call,0); if (Account1.Balance.count > 0 && Account1.Balance.position == 1) { CallPL = (Account1.Balance.avgUnitCost - Account1.Balance.current)*Account1.Balance.count; CallV = Account1.Balance.count; } Account1.SetBalance(Put,0); if (Account1.Balance.count > 0 && Account1.Balance.position == 1) { PutPL = (Account1.Balance.avgUnitCost - Account1.Balance.current)*Account1.Balance.count; PutV = Account1.Balance.count; } if (CallV > 0 && PutV > 0 && CallPL+PutPL <= (-2500000/250000)) { Main.KillTimer(1); Account1.OrderBuy(Call,CallV,0,1); Account1.OrderBuy(Call,PutV,0,1); } } if (HHMMSS >= 150000) { Main.KillTimer(1); } } } 즐거운 하루되세요 > 자쿠 님이 쓴 글입니다. > 제목 : 옵션 일정시간에 순차적으로 매수, 일정시간에 순차적으로 매도 가능할까요? > 열심히 머리를 굴리고 있는데, 너무 어려워 부탁을 드려봅니다. 꾸벅 옵션 등가격 확인 옵션콜매도 2개, 옵션풋매도 2개를 기계적으로 특정 시간에 하고, 특정시간에 매수해서 청산(매도 후, 매수청산)하려고 합니다. 또한 스탑로스 기준을 넣으려고 합니다. 도움주시면 정말 감사드리겠습니다. 꾸벅 -------------------------------------------- ● 등가 옵션 시장가 매도 총 26 세트 9시 등가콜 2개 매도, 등가풋 2개 매도 9시 10분 등가콜 2개 매도, 등가풋 2개 매도 9시 20분 등가콜 2개 매도, 등가풋 2개 매도 9시 30분 등가콜 2개 매도, 등가풋 2개 매도 9시 40분 등가콜 2개 매도, 등가풋 2개 매도 9시 50분 등가콜 2개 매도, 등가풋 2개 매도 10시 등가콜 2개 매도, 등가풋 2개 매도 10시 10분등가콜 2개 매도, 등가풋 2개 매도 10시 20분등가콜 2개 매도, 등가풋 2개 매도 10시 30분등가콜 2개 매도, 등가풋 2개 매도 10시 40분등가콜 2개 매도, 등가풋 2개 매도 10시 50분등가콜 2개 매도, 등가풋 2개 매도 11시 00분등가콜 2개 매도, 등가풋 2개 매도 -------------------------------------------- 9시부터 ~ 11시 까지 매도한 것을 14:00시부터 15:00까지 시장가 매수 청산 14:00 등가콜 2개 매수, 등가풋 2개 매수 (숫자상 14시 것만 2개입니다) 14:10 등가콜 4개 매수, 등가풋 4개 매수 14:20 등가콜 4개 매수, 등가풋 4개 매수 14:30 등가콜 4개 매수, 등가풋 4개 매수 14:40 등가콜 4개 매수, 등가풋 4개 매수 14:50 등가콜 4개 매수, 등가풋 4개 매수 15:00 등가콜 4개 매수, 등가풋 4개 매수 ------------------------------------------- 스탑로스는 금액기준 250만원일때, 보유한 물량 전량청산. 청산 후, 매매중지.