[原创] 量化策略复盘:浅谈量化交易中的过拟合问题

你有没有听过这样的传闻,传说有一种这样的策略,每年只需要少数的参数修改,就可以实现高达200%+的收益,今天就要为大家带来这个神奇的策略,EMV(简易波动策略)策略:

“简易波动(Ease of Movement Value)反映的是价格、成交量、人气的变化,它是一种将价格与成交量变化相结合的技术,它通过衡量单位成交量的价格变动,形成一个价格波动指标。当市场人气聚集,交易活跃时提示买入信号;当成交量低迷,市场能量即将耗尽时提示卖出信号。

简易波动EMV根据等量图和压缩图的原理设计而成,它的核心理念是:市场价格仅在发生趋势转折或即将转折时,才会消耗大量能量,外在表现就是成交量变大。当价格在上升的过程中,由于推波助澜的作用,不会消耗太多的能量。虽然这个理念与量价同升的观点相悖,但的确有其独特的地方。”

不信,我们来使用Pine语言做一个试试看,洋洋洒洒十四行,EMV策略搞定。想学啊你,来发明者平台,我教你。

注:这里稍微做了小小的改动,这里使用了EMV的简单移动平均值,对于噪音信号做了一些平滑。

// 获取输入参数
len = input.int(5,minval=1,maxval=40) // 设置窗口长度

// 计算EMV
A = (high+low) / 2 // 计算A值
B = (high[1]+low[1]) / 2 // 计算B值
C = high - low // 计算C值
EM = (A-B) * C / volume*1000 // 计算EMV
EMV = ta.sma(EM,len) // 对EMV进行简单移动平均线计算

// 绘制图形
plot(EMV, title = 'EMV', color = color.blue) // 绘制EMV指标曲线

// 设置交易信号规则
n1 = input.int(0,minval=0,maxval=2) // 设置买入信号EMA阈值
n2 = input.int(0,minval=0,maxval=2) // 设置卖出信号EMA阈值

if ta.crossover(EMV,n1) // 判断是否发生买入信号
    strategy.entry('long',strategy.long) // 执行买入操作
if ta.crossunder(EMV,n2) // 判断是否发生卖出信号
    strategy.entry('short',strategy.short) // 执行卖出操作

runtime.log(EMV) // 输出EMV指标数据日志

这段代码基于EMV指标和其简单移动平均线的计算,定义了一个基本的交易策略:当EMV指标突破其n1天的EMA(买入阈值)时,执行买入操作;当EMV指标跌破其n2天的EMA(卖出阈值)时,执行卖出操作。

这里面有三个参数,分别是EMV的窗口长度,买入信号EMA阈值和卖出信号EMA阈值。话说ChatGpt由1750亿个参数就可以模拟众生,今天我们就来试试调试这三个参数来实现年化200%+的梦想。

首先我们设置原始的参数,窗口参数为15,买入阈值和卖出阈值都设为0,在2022到最新的2023年间,跑一下看下结果。

可以看到,使用1小时为策略周期,针对于纯碱主力合约,我们的策略收益为3967,而这仅仅是一手的收益。当然这并不是这个策略的极限,不知道调一下参数是否会有别的惊喜呢。

FMZ平台支持多个参数同时调参,当然时间会稍微长一点,大家也可以按顺序分别调整参数。最后我们看下我们最优的参数结果,窗口周期为29,买入阈值为0.2,卖出阈值为-1.3,让我么看下效果。

年化收益变为22890.575,神奇吗,就是这么神奇。简简单单三个参数的改变,就可以实现收益翻了7倍多,但是????

这个策略一直有效吗,让我们把时间换为早期的时间段,2020到2021年间,可以看到收益变为了-6764。

人生的大起大落真是刺激,本以为找到了可以一本万利的无风险策略,结果却是黄粱一梦。看来“All models are wrong, but some are useful”是真实的。问题究竟出在哪里呢?

答案是过拟合。过拟合(overfitting)是在,在机器学习模型中,模型过于强调训练数据的细节和噪声,结果导致它在新的、未见过的数据上的泛化性能较差。也就是说,过拟合本质上是对训练数据集过度拟合,使得模型在测试数据上表现不佳。有没有觉得我们在第一次调参后的数据过于绝对了,买入阈值为0.2,卖出阈值为-1.3,这意味着这一年确实是一个大涨之年,小小的跌幅不用怕,只有达到-1.3巨额的跌幅才是真的应该转变空头方向。

因此,在进行模型调优时,不应仅根据单一的准确率指标来衡量模型的优劣。相反,还应考虑模型的复杂度和一些评估指标,例如精度、召回率、F1分数等等。此外,针对过拟合问题,可采取一些正则化手段或者使用更多的数据等方法来降低模型的过拟合风险。最终,需要通过实践和不断地试验,寻找出最适合实际应用场景的模型。

温馨提醒:本文展示策略仅为教学使用,切勿直接带入实盘。金融有风险,入市需谨慎!

 

 

免责声明:信息仅供参考,不构成投资及交易建议。投资者据此操作,风险自担。
如果觉得文章对你有用,请随意赞赏收藏
592340665 1人赞赏收藏
相关推荐
相关下载
登录后评论
Copyright © 2019 宽客在线