原创内容第660篇,专注量化投资、个人成长与财富自由。

咱们ailabx量化实验室的策略开发平台基本开发完成了,预计本周向星友们开放。

今天实现一个斜率策略:

斜率因子是:对数年化收益*R平方,计算公式比较复杂一点,大概的意思是:它使用历史数据、对数收益率、线性回归和 R² 统计分析,来为每个 ETF 计算一个综合得分。

@calc_by_symbol
def slope(close: pd.Series, d: int = 20):
def _slope(close):
y = np.log(close)
x = np.arange(y.size)
slope, intercept = np.polyfit(x, y, 1)
annualized_returns = math.pow(math.exp(slope), 250) - 1
r_squared = 1 - (sum((y - (slope * x + intercept)) ** 2) / ((len(y) - 1) * np.var(y, ddof=1)))
score = annualized_returns * r_squared
return score

score = close.rolling(window=d).apply(lambda sub: _slope(sub))
return score

年化31.5%,卡玛比率1.06,只轮动不择时。

策略代码:代码在如下位置:

t = Task()
t.name = '斜率轮动'
t.start_date = '20131230'
#t.end_date = '20240625'
t.names = ['slope_25']
t.fields = ['slope(close,25)']
# t.period = 'RunEveryNPeriods'
# t.period_days = 10

#
信号因子
#t.select_buy = ['ma_5>ma_20']
#t.select_sell = ['ma_5<=ma_20']

#
排序
t.order_by_signal = 'slope_25'
t.order_by_topK = 1
t.order_by_DESC = True
t.order_by_dropN = 0
t.symbols = [
'159934.SZ', #黄金ETF(大宗商品)
'513100.SH', #纳指100(美股科技)
'510300.SH', #沪深300ETf
'159915.SZ' #创业板ETF A股成长)
]
res = Engine().run(t)
print(res.stats)
res.plot()
import matplotlib.pyplot as plt
trans = res.get_transactions()
trans.to_csv('trans.csv')
plt.show()

在网站在配置也是一样:

年化20%+的策略集与代码下载:AI量化实验室 星球,已经运行三年多,1100+会员。quantlab代码交付至5.X版本,含几十个策略源代码,因子表达式引擎、遗传算法(Deap)因子挖掘引等,每周五迭代一次。

AI量化实验室——2024量化投资的星辰大海

02 五年财务自由退休

明朝那些事》的结尾,当年明月写徐霞客。

为了那个结论——人应该按自己喜欢的方式度过一生。

我想到的方式:“心无挂碍,寄情山水”。

“心无挂碍”,向内修心,允许一切发生,一切发生皆有利于我。、向外需求财务自由,被动收入。

寄情山水,读书,探索,创作。

限时免费,感兴趣可入)五年之约,一起出发吧!

作者:AI量化实验室(专注量化投资、个人成长与财富自由)