怎样设计量化交易策略

用户头像量化小精灵
2023-05-24 发布

一、写在前面

首先对自我进行测评,可以先根据自身基础出发。

若是有程序功底或数据科学分析基础的人,对于这类学霸类型的交易爱好者来说,采用自建回测框架与交易实盘接入环境方式,方为最优解。比如,拿其中一个小门类基础数据来说,为了保证数据的质量,数据的清洗与存储是必须的,一个稳定高效且准确无误数据环境,对于搞好量化交易特别重要。

对于这类拥有良好基础的人,用什么python还是c语言,底层采用什么都不太重要,重要的是,能否快捷高效实现自己想要的数据科学辅助投资交易的功能。

若是基础较弱的人,可以借用第三方平台实现。量化交易过程中最大技术在于执行每一笔交易下单的模型的理论,以及通过具体实现架构能否从始至终的坚持去执行,而不在于花花绿绿的一些无关紧要的诱惑。

总的来说,对于新手来说开发一个策略最开始一定是模仿。

二、利用现成指标构建逻辑。

平台内置的技术指标,取出一个,写入买卖点,回测下历史行情,这样就可以得到一个简单的策略了。随着策略经验的积累,这里的逻辑选择会越来越多样化。

当然这样的策略一般是不赚钱的,所以我们第二步,进行参数优化。

选择参数遍历,观察不同参数对于策略会产生怎样的影响。一般情况下我们会得到几组看起来比较赚钱的参数,然后我们进行第三步,样本外检测。

比如说我们之前遍历的参数是2014年的数据得出的几个表现好的参数,那么我们就用2013/2015的数据对这些参数进行检测。一般来说,这一参数会在样本外惨淡无比,完全没有样本内优化出来的威武。这时第四步,进行观察,判断策略失效的原因是什么。

假设发现策略失效原因是样本外某一两次特殊的行情导致大幅亏损,那么我们就可以设置一个硬止损来规避这种风险;如果发现策略失效是因为交易次数过少,那我们就将交易逻辑稍微放松,比如要求>x的地方改为>=x甚至是>=x-1。等等等等,这种修改就是策略的经验了。

设置好新的逻辑后我们回到第二步,重复以上步骤。

整理策略思路:需要考虑一个能够上实盘的策略究竟是什么样子。 建议框架如下:

1、标的(股票就是选股形成股池,期货就是主观人为决定做哪几个品种)

2、资金大小

3、交易信号(买卖,开平)

4、风险控制部分(头寸管理,资金分配,止损,止盈)

5、策略当中固化的部份、

6、策略当中可调整迭代优化的部份

7、参数的选取:拟合与舍弃

最终我们修改得到了一个样本内外都赚钱的策略,第五步,实盘追踪。

在未来一段完全未知的行情中随着时间检验策略,观察策略的真实表现究竟如何。如果表现与预期相符合,那么说明策略有效,第六步,进行交易。

随着交易进行,我们也要观察策略的有效性,当发现策略出现超出预期的亏损时,第七步,调整或终止策略。

关于具体开发中的经验

1.某种程度上来说做策略就是 瞎想->尝试->瞎想->尝试 的循环。

2.选择指标时一定要避免使用未来函数。

3.参数不宜过多。

4.参数优化中,可用的参数组越多越好,说明策略有效性高。

5.在实盘中,策略的期望一般都要打折扣的,达到预期的50%就是合格。

6.交易次数太少的策略一般是运气。

7.测试出一条超级赚钱的曲线,一定是你逻辑写错了。

四、开立平台支持对应的证券账户、权限功能

期货另外需要开通对应的程序交易软件使用权限

这里需要注意,平台使用权限各不同,有一些券商为主导背景的平台,大多要求资产门槛、托管入户。

五、代码实施阶段。

这个阶段,主要目的是为了确保实现,程序语言是否准确完整无误地表达了所研究策略的所有要素,比如交易信号是否是你真正想要的,比如是否在设计过程中还有一些不完备的没有考量到的地方,需要改,需要减或增。

六、回测优化与调参

一些主观的交易思路过渡过来的策略(泛指传统的程序化CTA),这类型的策略并不需要优化,只要程序表达心中所指即可。

正常情况下,如果你的策略,自己都不确定,觉得某些参数可调整,可优化,那么就需要通过一轮轮一次次的回测实现你策略当中关键点。关键点的参数值确定,这个地方特别说明一下,好的交易平台与次的三方平台,差别就在于除了提供完备的金融数据访问API以及各类框架基础之外,还有回测的速度还有优化拟合的框架功能是否具备,一定需要重点关注你所使用的平台是否可以自动化拟合调参,还有优化调参的计算速度是多少。

七、写在最后

不要沉迷回测。尤其是单纯玩指标+调参数

在实盘交易中,帐户是否正向收益,更看重“级别周期的重要性”,尤其是期货。

搞清楚程序化交易与量化交易的区别

哲学思想的重要性,知行合一的重要性。

评论