送给量化小白的小技巧:
原理很简单,算是一个小技巧,某些时候效果很不错,送给均线派,可以适度提升模型!
传统简单均线受困于固定周期参数的限制,不论你使用什么参数的均线都会出现的问题就是反应过快或者反应过慢,最让人头疼的是进场后的均线反应过慢,往往让你损失一大笔利润。自适应均线的原理很简单就是随着持仓周期的拉长,均线的参数慢慢变小,越来越敏感,有时候往往能收到意想不到的效果,各位看官看图
就如图上所示,加了自适应均线的模型因为均线参数的逐渐变小而慢慢敏感,于是额外获得了一段利润
但是有利也有弊,自适应均线会导致过早出场,与后面的利润失之交臂,如何使用还请自行决断。
代码如下
liqDays = 60
liqpoint = 0
holding_days = 0 #需要增加的三个变量
假如我的模型主策略在on_xmin_bar这个函数里面,在on_xmin_bar这个函数最后面加上这段代码
假如有持仓,并没有立即更新liqDays,而是判断持仓超过20个holding_days,开始启动liqDays的更新
当然了最低不能低于某一个阈值,我设置的是50,你们自行选择
# 更新自适应均线
if self.pos != 0:
self.holding_days += 1
if self.pos!=0 and self.holding_days>=20:
self.liqDays-=1
self.liqDays=max(self.liqDays,50)
else:
self.liqDays=60
self.liqpoint=am.close_array[-self.liqDays:].mean()
下面是多单出场演示,空单同理
elif self.holding_days>=20 and bar.close_price<=self.liqpoint:
self.sell(bar.close_price, abs(self.pos))
print('多单自适应均线止盈', bar.datetime, bar.close_price)