만기일 양매도 시뮬을 하기 전에 옵션 종류별 만기일 결과가 어떻게 나오는지 먼저 확인해봅니다.

 

우선 시뮬 조건 기간을 좀 줄이고(weekly 목 옵션이 나온 시점 이후 부터)

진입 가격도 현실적으로 조정을 하였습니다.  (시초가격 0.1 이상)

기간 2019-01 ~ 2024-05-09
투자금 조건에 맞는 콜/풋에 각각 300,000원 투입 (최대 2,100,000원)
진입시기 만기일 시초가 (0.1 이상)
  시초가에서 3십만원으로 1계약을 못사는 행사가의 경우 장 중에 3십만원 이하로 오면 매수진입
최대 3 행사가
최대 4 행사가

 

우선 옵션 전체에 대한 연간 수익 표입니다. 23/11/06일에 발생한 최대 수익일을 제외하니 -53 pt 정도입니다.

 

다음으로는 정규옵션(월) 만기일 결과입니다. 손실이 나는 연도가 많습니다. 올해는 수익이군요.

 

Weekly옵션(월) 만기일 결과입니다. 시행한 2023년에는 큰 수익이 났었군요. 반면에 올해는 손실입니다.

마지막으로 Weekly옵션(목) 만기일 결과입니다. 2019년 시작이래 2021년만 제외하고 연단위로 수익이 나고 있습니다.

 

옵션의 종류에 따라 만기일 양매수 투자 결과가 상당히 차이가 납니다. Weekly 월 옵션의 양매수 수익이 떨어진다는 점도 흥미롭습니다. 

 

Weekly 월요일 만기 옵션 양매수가 손실이 나는 이유를 예상을 해보자면..

주말동안 발생할 변동성 때문에 금요일 만기시에 프리미엄이 높게 반영된 것일 수도 있도, 주말동안 큰 변동성이 없어서일 수도 있습니다. 금/월 사이 코스피 변동성을 분석해보아야할 듯 합니다.

 

반면에 Weekly목요일 옵션이 수익이 잘 나는 이유는 weekly 월 옵션 만기 이후 옵션 프리미엄이 잘 빠진 상태에서 목요일 변동성이 높아서 인 듯 합니다 이 또한 추가 분석이 필요합니다.

 

시뮬 결과만 보면 만기일 옵션 양매수 전략은 Weekly 목요일이 좋다 입니다.

 

다음은 2024년 옵션 종류별 일별 만기 수익 표입니다.

 

정규옵션

5/9일 수익률이 아주 좋았습니다.

 

Weekly 월 옵션

 

Weekly 목 옵션

 

 

양매수 수익이 잘 나온 만기일을 보면 KOSPI200 변폭도 중요하지만 시초가 대비 종가 변폭이 더 중요합니다. 

예를들어 4/18일 KOSPI 변폭은 1.78% 밖에 안되지만 (4/4일과 비교하여 비슷) 콜에서 큰 수익이 난 이유는 4/18일 시초가가 -로 시작하였기 때문입니다. -로 시작하면 OTM 옵션 가격은 아주 낮은 가격에서 시작하기 때문에 상대적으로 큰 수익이 나오는 구조입니다.

 

그렇다면 만기일 전날 종가에 양매수를 하면 어떨지 궁금해지는군요.

 

반응형

설정

트랙백

댓글

요즘 옵션 만기일 변동성이 좋습니다. 양매도 하다가 손실이 커지는 날이 많아지고 있죠.

변동성이 좋은 시점에는 양매수 수익이 잘 납니다. 어제 만기도 그랬었죠.

 

그렇다면 역사적으로 만기일 양매수를 하면 누적 수익 그래는 어떻게 될지 궁금해서 확인해보았습니다.

 

우선 조건입니다.

기간 2011-01 ~ 2024-05-09
투자금 조건에 맞는 콜/풋에 각각 300,000원 투입 (최대 2,100,000원)
진입시기 만기일 시초가
  시초가에서 3십만원으로 1계약을 못사는 행사가의 경우 장 중에 3십만원 이하로 오면 매수진입
최대 3 행사가
최대 4 행사가

 

weekly 옵션 만기도 추가하였습니다. 

weekly 옵션은 아래 시기에 시작하였습니다.

  • weekly 목 옵션 : 2019-09-23
  • weekly 월 옵션 : 2023-08-01

이 모든 조건을 모아 모아 만기일에 양매수로 진입하였을 때 시뮬 결과입니다.

 

지속적으로 손실이 누적되다가 2023년에 엄청난 수익이 발생하면서 +265.25 pt(6.6천만원) 수익이 났습니다.

2023년에 무슨 일이 있었을까요?  

 

2023년 시뮬 내용을 보니 2023-11-02일까지는 누적 손실 상태이었다가 11/06일에 엄청난 수익이 나옵니다. 0.01에 120개를 매수한 327 콜 옵션이 무려 882.32pt(2.2억) 수익을 안겨주면서 흑자 전환을 하게 됩니다.

 

시뮬상으로는 이런 결과가 나왔지만 실투에서도 수익이 나올까요?

  • 2011년 부터 누적적자 -563pt(약 1.4억)를 보면서  꾸준히 2023년 11월까지 만기일마다 최대 3백만원 양매수를 할 수 있을까?
  • 11/06일 행사가 327을 6.6까지 보유할 수 있을까?

현실적으로 둘 다 어려울 것입니다.  또한 23/11/06일 같은 경우가 향후 10년 이내에 다시 올 수 있느냐에 대한 의문이 드는 것도 사실입니다.

 

-------------

만약 매수 조건에 최저 가격을 넣는다면 어떻게 될까요?

예를들어 시초가가 0.1는 넘어야 매수하는 조건을  추가하여 시뮬해보았습니다. 

 

예상하셨겠지만 손실 상태입니다. 

 

만기일 옵션 프리미엄이 가장 적은 상태임에도 양매수가 누적 손실이 생기고 있습니다. 그만큼 양매수 전략은 수익내기 어려운 것 같습니다.

 

이번 시뮬의 결론입니다.

  • 만기일 규칙적인 양매수는 손실이 누적된다.

 

참고로 올해 옵션 양매수 시뮬 결과입니다(최저가 > 0.1 p). 올해는 주기적으로 양매수에서 큰 수익이 나서 누적 + 상태입니다만 불안 불안한 상황입니다.

 

큰 수익이 났던 4/18과 5/9일 상황을 좀 더 자세하게 보면 사이좋게 콜과 풋에서 큰 수익이 난 만기이군요.

 

----------------------------

 

그럼 만기일 같은 조건으로 양매도를 하면 어떨까요? 

 

 

------------

 

양매수 시뮬 결과는 아래 github에 있습니다. 오류가 있을 수 있는 점 참고하십시요. 오류가 발견되면 댓글 부탁드립니다. 바로 반영하도록 하겠습니다.

https://github.com/multizone-quant/api_ex

 

반응형

설정

트랙백

댓글

제가 요즘 관심이 있는 분야는 옵션인데요. back test를 위하여 과거 데이터를 모으고 있습니다.

 

우선 필요한 데이터는 kospi200 데이터입니다. 만기일 기준으로 월 별 kospi200 변화를 보고 싶은데요.

ebest api에서는 과거 분 데이터까지 얻을 수 있지만 기간이 제한적입니다.

 

그래서 과거 데이터를 얻을 수 있는 방법을 찾아 보았습니다.

 

우선 naver.

 

아래 사이트로 가보시면 과거 kospi200 데이터를 볼 수 있습니다. 다만 2006.01.03일 까지 가능하고 종가 정보만 얻을 수 있습니다. 이 정도만 있어도 기본적인 back test를 위한 자료는 확보할 수 있습니다.

https://finance.naver.com/sise/sise_index.naver?code=KPI200

 

좀 더 찾아보니 한국거래소에서도 과거 kospi200 데이터를 검색할 수 있더군요. 여기에서는 시고저종 정보 뿐아니라 아주 먼 옛날 정보까지 검색이 가능합니다. 빙고!!

 

일일이 손으로 저장을 하다 보니 아무래도 API가 있을 것 같아서 검색을 해보니 역시나 API를 지원합니다.

 

krx api를 사용하기 쉽게 만든 wrapper api가 있을 것 같아서 github를 검색해보니 역시나 있습니다.

https://github.com/sharebook-kr/pykrx

 

github에는 없는게 없으니 항상 github에서 찾아보는 습관을 들여야 합니다.

 

pykrx를 다운 받아서 돌려보았습니다. 잘 동작합니다.

 

pykrx를 이용하여 kospi200 과거 데이터를 받아보겠습니다.

data = stock.get_index_ohlcv_by_date("20220103", "20220110", "1101") # kospi200 은 안됨

 

업종 정보를 얻을 수 있는 함수는 get_index_ohlcv_by_date() 입니다. kospi200의 업종 코드는 101입니다.
 
그리고 pykrx에서는 코스피와 코스닥을 구분하기 위하여 앞에 1(코스피), 2(코스닥)를 추가합니다. 그래서 1101을 넣으면 kospi200 과거 정보가 나와야합니다. 그런데 동작하지 않습니다. 1027, 1111 모두 동작하는 하필 제가 필요로 하는 101만 동작하지 않습니다.
이 무슨 운명의 장난인지..
잠시 휴식을 취한 후 다시 한번 생각을 해 보았습니다. 왜 하필 kospi200만 안될까?
코드를 다시 보니 kospi200만 일관성이 없습니다. 027 이후 101 이후 111 뭔가 이상하죠..
그래서 혹시나 해서 028을 넣어보았더니.. 빙고!!!  잘 동작합니다.
data = stock.get_index_ohlcv_by_date("20220103", "20220110", "1028") # kospi200 028임
 

역시 뭔가 잘 안될때는 될 때까지 하는 것 보다는 잠시 휴식을 하고 전체를 다시 살펴보는 것이 문제 해결에 도움이 되는 듯 합니다.

 

 

 

 

 

 

반응형

설정

트랙백

댓글