以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  交易策略发布专区  (http://weistock.com/bbs/list.asp?boardid=10)
----  期权平价公式  (http://weistock.com/bbs/dispbbs.asp?boardid=10&id=183005)

--  作者:yukizzc
--  发布时间:2020/11/13 13:38:38
--  期权平价公式

根据平价公式C + K*e^-rt = S + P ,左边是持有一份认购期权和到期行权价折现后的现值,右边是标的物的现价和持有一份认沽期权

这个模块只需要传入一个月份参数就能得到一个pandas格式,字段分别是strick_price、left、   right  、left-right

其中left-right就是等式左边-右边后套利的价差。

 

 

# 该Python代码用于模块定义,供其他Python代码或VBA调用。

from PythonApi import *
import numpy as np
import pandas as pd
def cal(month):
    # 分别保存认购代码、认沽代码、行权价
    call_list = optionlabel_book(\'510050\',\'QQ\',str(month), 1)
    put_list = optionlabel_book(\'510050\',\'QQ\',str(month), 2)
    K_list = [float(format(get_option_info(i,5), \'.2f\')) for i in call_list]
   
   
   
    # 平价公式 C + K*e^-rt = S + P
    # 期权到期天数到期天数
    t = get_option_info(call_list[0],4)
    data = []
    for i in range(len(call_list)):
        a = get_dynainf(call_list[i],7) + K_list[i]*np.e**(-0.04*t/365)
        b = get_dynainf(\'510050\',7) + get_dynainf(put_list[i],7)
        data.append([K_list[i],a,b])
       
    df = pd.DataFrame(data,columns=[\'strick_price\',\'left\',\'right\'])
    df[\'left-right\'] = df[\'left\'] - df[\'right\']
    df.sort_values(by=\'strick_price\',inplace=True)
    return df
   
   

# 通过传入年月,2011表示20年的11月
a = cal(2011)
b = cal(2012)

print(a)
print(b)

[此贴子已经被作者于2020/11/13 13:48:39编辑过]