[일상] 옵션 합성 수익 그래프[2]

지난 번에 opstrat 소개를 했었는데요. 직관적으로 사용하기 아주 쉬운 package입니다.
그런데 opstrat는 이름에서 보듯이 옵션으로만 합성이 가능한데요.

합성을 하다보면 선물도 추가하는 경우도 자주 있습니다.
그래서 기존 opstrat 소스에 선물도 함께 합성할 수 있도록 소스 수정을 했습니다.

예를보시죠
일명 커버드 콜 전략인 선물매수, 콜 옵션 매도 합성 그래프입니다.

코드도 간단합니다. 기존 구조를 최대한 이용하였습니다.
선물을 위하여 옵션종류에 'f'를 추가하여 선물 계산식은 반영하였습니다. 그냥 x축 상의 값에 가격을 빼주면 됩니다. 매도의 경우에는 음수만 붙이면 되므로 기존 코드를 수정할 필요는 없습니다.

def payoff_calculator(x, op_type, strike, op_pr, tr_type, n):
    y=[]
    if str.lower(op_type)=='f':
        for i in range(len(x)):
            y.append(x[i]-op_pr)
    elif op_type=='c':
        for i in range(len(x)):
            y.append(max((x[i]-strike-op_pr),-op_pr))
    else:
        for i in range(len(x)):
            y.append(max(strike-x[i]-op_pr,-op_pr))
    y=np.array(y)

    if tr_type=='s':
        y=-y
    return y*n

커버드 콜 합성을 그리기 위한 코드입니다. 옵션과 선물에 대한 정보만 입력하면 됩니다.

import numpy as np 
import matplotlib.pyplot as plt 
import seaborn

import opstrat as op

op1={'op_type': 'c', 'tr_type': 's', 'op_pr': 4.45, 'strike': 320.0}

f_price = 320.0
f1 ={'op_type': 'f', 'tr_type': 'b', 'op_pr': f_price, 'strike': 330.0}

op_list=[op1, f1]
op.multi_plotter(spot=322.5,spot_range=20, op_list=op_list, show_org_lines=False)

커버드콜 합성 결과입니다.

image.png

잘 그려지는군요. opstrat 덕분에 선물/옵션 합성 그래프를 쉽게 그릴 수 있게 되었습니다.

옵션을 가정하고 만들어진 프로그램이다보니 약간 손 볼 부분이 더 있기는 하지만 사용하는데는 큰 문제없습니다.

Sort:  

[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.

Upvoted! Thank you for supporting witness @jswit.

Coin Marketplace

STEEM 0.30
TRX 0.12
JST 0.033
BTC 64307.66
ETH 3146.33
USDT 1.00
SBD 3.88