- 商品期货量化交易实战:以Python为工具
- 胡凯博等编著
- 2024字
- 2024-11-01 22:21:19
1.3 量化交易需要哪些准备工作
完整的量化交易生命周期,不仅仅是交易策略本身,它至少由5个环节构成,包括策略构思、建立模型、回测调优、仿真交易、实盘交易,如图1.4所示。
图1.4 量化交易生命周期
1.3.1 安装SDK
在进行策略构思前,首先安装发明者量化提供的免费SDK,它是一套基于Python的量化交易回测框架,由发明者量化发起并贡献主要代码,内置近百个技术指标及相应的源码,可以用少量代码构建各种交易策略,并且提供历史数据回测功能。在命令行中输入安装SDK的命令,如图1.5所示。
图1.5 在命令行中输入安装SDK的命令
注意:在安装SDK前,需要先在计算机上安装Python 3。此外,在Mac操作系统中安装SDK时,如果有安全限制,则需要在pip命令前添加sudo命令,在执行安装命令前,会要求输入系统密码。如果有需要,则可以手动安装与金融量化交易有关的第三方库,如talib、numpy、pandas等。
在SDK安装完成后,在代码的第1行输入“from fmz import*”,即可使用SDK。在下面的代码中,首先设置回测配置(包括数据起止时间、数据周期、回测品种等),再导入SDK,接着使用VCtx()函数对task对象进行初始化,然后调用SDK中的GetAccount()函数和GetTicker()函数分别获取账户信息和Tick数据,最后调用初始化后的task对象获取回测结果。
上述代码的运行结果如图1.6所示。
图1.6 运行结果
免费开源的SDK不仅可以输出最终的回测结果,还可以以图表的形式输出各种绩效曲线,包括账户权益、周期盈亏、资金占比。例如,双均线策略使用SDK中的Show()函数绘制回测图表,代码如下:
上述代码是一个完整的双均线交易策略。在使用发明者量化SDK运行上述代码后,会显示Python本地回测图表,包括账户权益、周期盈亏、资金占比等的回测绩效曲线,如图1.7所示。
发明者量化SDK可以与发明者量化交易平台配合使用,从而提供更加完善的量化交易功能及开放的量化交易社区。
图1.7 Python本地回测图表
1.3.2 策略构思
进行量化交易必须先回到交易市场,要在市场中多观察价格,理解市场波动的规律,并且尝试推断每一个交易逻辑,从而总结出交易策略。这里没有捷径,阅读经典的投资书籍或许有帮助,或者不断地坚持做交易,在失败中总结经验。
对初学者来说,开发交易策略最好的方式是模仿。直接利用现成的技术分析指标构建策略逻辑,写入交易规则,可以得到一个简单的交易策略。例如,单均线的策略逻辑为,如果价格高于最近10天的平均价格,就开仓买入;如果价格低于最近10天的平均价格,就开仓卖出。
随着市场经验的积累,在形成自己的交易方式后,策略逻辑的选择会越来越多样化,会进阶到更加系统的量化交易。无论是在股票市场上,还是在期货市场上,做一个有量化思维的交易者都是一件值得庆幸的事。
1.3.3 建立模型
交易者需要掌握一个量化交易工具,用于编写交易策略,实现其交易想法。如果你想成为一名高端的量化交易者,就需要学会一门计算机语言,这里推荐使用Python编程语言,因为它是科学计算的权威语言,并且可以提供各种开源的分析包、文件处理工具、网络、数据库等。Python策略默认代码如下:
1.3.4 回测调优
在编写完策略后,对策略进行回测,对参数进行筛选和优化。可以利用不同的参数对策略进行回测,观察该策略的夏普比率、最大回撤率、年化收益率等。通过对策略的不断调试和修改,最终得到一个完善的量化交易策略。例如,可以将2010—2015年的历史数据作为样本内数据,将2016—2020年的历史数据作为样本外数据。先用样本内数据优化出几组表现好的参数,再用这些参数对样本外数据进行回测。
在一般情况下,样本外数据的回测结果没有样本内数据的回测结果好,但如果样本外数据与样本内数据的结果大相径庭,那么这个策略可能是无效的,需要观察分析,判断策略失效的原因。
如果发现策略失效是因为在样本外数据中出现极端行情导致的大幅亏损,那么可以增加一个固定止损条件,用于规避这种风险;如果发现策略失效是因为交易次数过多,那么可以将交易逻辑收紧,降低交易频率。
如果一开始交易逻辑就是错误的,那么再怎么修改也很难得到一个赚钱的策略,这时需要重新审视自己的策略思路。此外,在参数优化中,可用的参数组越多越好,说明策略的适用性广泛。
策略的核心参数越少越好,如果参数过多,则容易造成数据过拟合。在回测时,对于交易次数过少的策略,其回测结果可能存在幸存者偏差。如果回测结果是一个超级赚钱的资金曲线,那么通常是策略逻辑写错了。
注意:本地SDK回测不支持回测调优,如果需要回测调优功能,则可以在发明者量化终端进行线上回测。
1.3.5 仿真交易
当交易逻辑正确,样本内、外数据回测都赚钱时,先不要急着在真实账户上交易,尤其对初学者来说,一定要先用仿真账户运行至少3个月,如果是中低频隔夜策略,则需要更长的仿真交易时间。在未来一段完全未知的仿真行情中,观察策略在仿真交易中的表现,仔细核对回测信号与仿真交易信号是否吻合,下单时的价格与成交时的价格是否有偏差,如果表现与预期相符,那么说明策略有效。
1.3.6 实盘交易
在经过一段时间的仿真交易检验后,就可以将策略放入实战中进行交易了。不过在量化交易过程中也要保持警惕,防范极端行情。在实盘交易中,策略的期望一般要打折扣,很难达到回测时的水平。