一、依托均线的期权买方策略简介


今天我们介绍一个十分简单的期权交易策略。

我们在进行期权交易时,判断期权标的的价格走势是非常关键的一环。具体来说,当我们预判标的价格将有所上涨时,我们就可以买进看涨期权或卖出看跌期权;相反,当我们预判标的价格将有所下跌时,我们就可以卖出看涨期权或买进看跌期权。两种交易获取收益的方式相当直观。而问题的关键在于如何判断标的价格的走势。

这里我们介绍一个简单的判断方法,即依托均线对标的之后价格走势进行判断。详细内容如下所示。


依托 10 日均线的期权买权策略:期货价格站上 10 日均线,我们认定期货价格达到了相对高点,根据均值回归理论,我们可以判断之后价格会有所回落,选择买进看跌期权 (BuyPut);同样当期货价格跌破 10 日均线时,我们选择卖出看跌期权(SellPut)。若接近行权日期(3天内)时手中扔持有期权合约,我们选择以现价平仓。 

注:在本策略选择 50ETF 期权迚行交易,每次交易的手数为 200 手   


二、代码实现 

注:如对示例代码中调用的函数或方法有疑问,可以参考真格量化上的 API 文档 

先说明本策略需要用到的两个函数 

函数 1-Getop():获取相应月份、价格的期权合约代码,若是在当月 15 日之前,选择的是当月到期的期权合约,否则就是下个月到期的期权合约,选择的期权是使用标的最新价获取的虚值一档期权  

 


函数 2-stime():计算当前日期距离期权到期日的天数,计算方式在获取当前时间并规范时间格式后与行权到期日的时间相减  

 


  准备好所需函数后,我们可以开始完整的策略编写 

1、设定要引用的模块  

 


2、在开始事件 OnStart 中登陆账号、设置需要订阅的品种并订阅相关数据  

 


3、在 OnQuote 事件中,获取并计算之后交易需要的数据,包括 50ETF 的最新价、50ETF 的 40 日均线、当前仓位、交易用的合约代码以及距离合约到期的天数,使用的相关函数说明可以参照 API 文档  

 


4、在获取数据之后,在 OnQuote 部分编写交易执行代码,每当价格站上 10 日均线时买 入 200 手认沽期权,下单使用的是 QuickInsertOrder 函数。 

    同时,用 g.tradecode 来记录买入成交的期权合约,在之后卖出的交易中我们将用它来确定卖出的期权合约,这样可以防止由于时间变动导致的 Getop 函数获取的期权合约与已成交合约不相同的问题  

 

至此所有的代码就编写完毕了  

 

三、查看回测结果 

    我们通过日线回测来查看策略运行结果。 

    年化收益率 41.15%,最大回撤 7.52%,夏普比率 1.63,信息比率 1.92,表现还是不错的,各位读者可以给策略添加细节来加以改进