周四面试了某比较想去的公司的金融衍生品部门,技术面的项目是在交易所市场买卖期货,用以对冲卖出场外期权。我采用的是Delta区间动态对冲的方法,记录一下这次技术面中编写的策略回测工具,之后以备使用。时间较少,代码结构与变量命名较为随意。
hedge.py
用来计算在特定阈值下的对冲的效果,输入文件:marketinfo.xlsx为期货一分钟级行情数据,输出文件trade.xlsx和result.xlsx分别为期货端交易记录和分钟级对冲时的各项参数与损益指标。
import math
import pandas as pd
from scipy.stats import norm
def bsm(pnow,k,rf,remainingday,yearvol):
#输入:(现价,执行价,连续无风险利率3%,剩余天数100天,年波动率0.15)
#输出:看涨期权价格[0],看涨期权delta[1]
d1 = ((math.log(pnow/k))+(rf+0.5*yearvol*yearvol)*(remainingday/255))/(yearvol*math.sqrt(remainingday/255))
d2 = ((math.log(pnow/k))+(rf-0.5*yearvol*yearvol)*(remainingday/255))/(yearvol*math.sqrt(remainingday/255))
nd1 = norm.cdf(d1)
nd2 = norm.cdf(d2)
exprt = math.exp(-rf*remainingday/255)
prise = pnow*nd1-k*exprt*nd2
return [prise,nd1]
# getbsm = bsm(3400,3400,0.03,100,0.15)
# print("看涨期权的价格为",getbsm[0],"看涨期权的delta为",getbsm[1])
#BSM参数设定
k=3400
rf=0.03#连续复利无风险利率
firstremaingday=93#第一天开始交易时剩余交易日,假设期权4月15日到期,距离12月1日还有93个交易日
yearvol=0.1257
#其他参数设定
marginrate=0.1#期货保证金率
rr=0.07#年化单利公司资金成本
ga