量化交易策略投资组合的建立

论坛 期权论坛 期权     
期权匿名问答   2022-3-23 14:36   12845   0
在很多人的认知里,交易策略就是看历史图表或看指标,这里买,那里卖,其实是不够的。我认为但凡谈到交易策略,必须是代码化、可自动执行。
这样就不会因为“你执行这个策略”和“我执行这个策略”,而出现偏差,同时人工交易所谓的“心魔”,也完全不存在了。
本篇是我开发交易策略的主要过程,将介绍我是如何开发交易策略的。
在此展示我开发GBP/USD的三个交易策略,以下为各策略近10年历史回测(2010年-2020年),数据源是Dukascopy。这些策略均是固定开仓0.1手(单利),带强止损(风险可控),不加仓(没有马丁)。
交易策略一:


交易策略二:


交易策略三:


每个人都希望在市场中稳定盈利,然而什么是稳定盈利?
我认为交易市场里的风险是不可以被消除的,每次投注都有亏损、甚至破产的风险,我们唯一能做的仅是降低风险。
1
如何降低风险?
1、降低(优化)单次投注的资金比例
通过降低单次投注的资金比例,可以避免资金的大幅回撤和破产风险。这点是用来保命的,是“活着”的前提。
优化仓位比较复杂,目前常用的方法是凯利公式,根据策略盈亏的概率和赔率来计算仓位。


在公式中,各参数意义为:
f  = 应投注的资本比例;
p = 获胜的概率(也就是抛硬币正面的概率);
q = 失败的概率,即(1 - p)(也就是硬币反面的概率);
b = 赔率,等于期望盈利 ÷可能亏损(也就是盈亏比);
公式上面的分子(bp-q)代表“赢面”,数学中叫“期望值”。
凯利告诉我们要通过选择最佳投注比例,才能长期获得最高盈利。我以下面这个策略(也是我开发的交易策略之一)举例说明:


什么才是不多不少、赚钱最快,风险最低的投注方式呢?
p赚钱的概率是51.09%,q亏钱的概率是48.91%,而赔率b=期望盈利÷可能亏损=108.47÷88.48。我们要求的答案是f,也就是(bp - q) ÷ b = 0.11。得到结论:对于该策略,最优的投注比例为总资金的11%.
2、交易策略的多元化配置(弱相关性)
在“活着”的基础上,我们通过交易策略多元化配置,来提高收益。
交易策略不能简单线性叠加,必须要保证任意两个交易策略的弱相关性,也就是策略之间很少出现同盈同亏的现象。
前文我展示了GBP/USD的三个策略,目前我GBP/USD的策略有十个。以下是这些策略的相关性比较。


相关性的计算方式是根据每日盈亏。比如策略A今天赚了,策略B今天也赚了,或者策略A昨天亏钱了,策略B昨天也亏钱了,这就是相关性较强,相关性较强会增大账户同时回撤的概率,一般来说,相关性低于0.4为弱相关。
以下为这10个GBP/USD交易策略近10年的历史回测。



因为这10个交易策略具有较低的相关性,所以我们可以对这10个交易策略进行叠加,以下是线性叠加之后的投资组合(portfolio)。


可以看到资金曲线的平滑度相比单策略提高很多。
2
如何生成交易策略?
所谓生成交易策略即是根据一段历史数据(样本内数据),来进行策略开发。以前述的GBP/USD为例,我选择2010-2015年GBP/USD一小时数据作为样本内数据。
我目前使用的是根据遗传进化算法来生成交易策略。遗传进化算法的应用领域很广,被用在各种领域求最优解。


用遗传进化算法生成策略基本思路:
1、先随机生成初代种群(随机使用指标/出入场条件等任意素材创建交易策略)
2、通过设置适应度(fitness),来对初代种群(产出的交易策略)进行排序。
3、保留优良个体(较好的策略),将优良个体(较好的策略)插入下一代新群体中,体现“优胜劣汰”的原则。
4、在遗传过程中,加入突变因子,种群(策略)大部分继承上一代种群(策略)的优点,但也会部分变异(随机改变其中一部分因子)。
5、每次迭代完成,都需用适应度(fitness)来对产出的交易策略进行排序,剔除表现不好的策略,保留表现好的策略。
6、当保留表现好的策略数量达到10000个后,可以停止生成交易策略。
对生成的策略进行样本外测试:
此时我们有了10000个在2010年-2015年表现较好的策略,为了验证这些交易策略是否有效,我们需要对策略进行样本外检测。
将这10000个策略放在2016-2020年的历史数据进行回测,剔除表现不好的策略,保留表现较好的策略,约300-400个策略会通过样本外检测,通过率大概是3%-4%.
此时我们就得到了一些交易策略,这些策略在2010-2020年的历史数据中表现都不错,但并不是所有的交易策略都可以使用。
3
如何检测交易策略的稳定度?
所谓稳健的交易策略,就是排除过度拟合。如下图三就是过度拟合(Overfitted).


如何避免交易策略的过度拟合?

  • 最小化参数的数量:尽可能减少交易策略的参数,也就是自由度。越简单的策略越具有适应性,稳定性也越高。
    一般在开发策略的时候做限定,使用不超过3个指标。
  • 新增样本外的交易时段:继续添加新的样本外数据,对策略进行稳健性检验。也可以使用其他品种的历史数据来进行测试,比如本文中是以GBP/USD的历史数据做开发,可以使用EUR/USD或GBP/JPY等的历史数据对策略进行测试,观察策略表现。
  • 蒙地卡罗随机法,也称模拟统计方法,是指使用随机模拟的方法进行检测,交易中大致可以分为以下角度:
1、随机历史行情:随机改变历史行情的ATR,最大改变幅度不超过30%,观察策略应对不同历史行情的稳定性。
2、随机参数改变:对策略参数进行随机改变,最大改变幅度不超过30%,观察策略应对随机参数的稳定性。
3、随机点差变动(spread)/滑点(slippage):因真实交易环境是浮动点差、且常有滑点,可以观察交易策略对随机点差变动和滑点的表现情况。
通过模拟统计方法,如果得到的交易曲线是发散的,那说明策略不稳定(如下图所示)。


如果得到的交易曲线是相对集中,那说明策略较稳定(如下图所示)


通过对交易策略稳定性的测试,10000个策略最终可能只剩下1-2个。我们至少需要几十个通过测试的交易策略,因为还需要做相关性检测,剔除相关性高的,之后将单策略进行组合,就得到了稳定性更高的投资组合(portfolio)。
文章来自汇商琅琊榜-Moon.
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:400157
帖子:80032
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP