着手ETF的资产配置模型构建

专注于ETF的AI量化投资/投资系统。确定下方向,一是基础数据,二是衍生指标。然后需要的回测平台我们基本搭建好了,我需要把它变成可以配置的方式。就是使用配置文件,这样传递策略就不必用notebook或者代码了。当然可以加密的方式。

从大类资产配置开始,战略资产配置到战术资产配置,然后加行业轮动,这样一个框架。

大类资产配置从宽基开始。

国债ETF(511010.SH),上证50ETF(510050.SH),纳指ETF(513100.SH),标普500(513500.SH),黄金ETF(518880.SH);沪深300ETF(510300.SH),中证500ETF(510500.SH),创业板50ETF(159949.SZ),创业板ETF(159915),中证1000(512100),科创50ETF(588000),恒生指数(159920),德国ETF(513030),日经ETF(513520),法国CAC40(513080)。

其实足够了。

对于这些宽基,我们要做相关性分析。相关性高的,取有代表性的即可。

选择期中几支,做等权组合,风险平价组合,作为benchmark。

而后引入动量,基本面,北上等等多因子模型进行加减权重的依据。

再次对A股权益类,引入行业轮动来增厚收益。

大类资产配置,每季度调仓,全选标的池里的标的,等权分配。

symbols = [
    '510300.SH',# 沪深300ETF
    '511260.SH', # 十年国债ETf
    '518880.SH',   # 黄金ETF
    '511880.SH',   #银华日利货币ETF
    #'510500.SH',  # 中证500
    #'513520.SH',  # 日经ETF
    #'513030.SH',  # 德国
    #'513080.SH',  # 法国CAC
]
names = ['close']
fields = ['$close']

from engine.bt_engine import BacktraderEngine
from datetime import datetime

e = BacktraderEngine(init_cash=100000, start=datetime(2010, 1, 1))
e.add_features(symbols, names, fields)

from engine.strategy.algos import RunQuarterly, SelectAll, WeightEqually

e.run_algo_strategy([RunQuarterly(), SelectAll(), WeightEqually()])
e.analysis(pyfolio=False)

图片

风险平价策略:

symbols = [
    '511260.SH',  # 国债
    '518880.SH',  # 黄金
    '510300.SH',  # 沪深300
    '511880.SH',  # 货币
    # '510500.SH',  # 中证500
    # '513520.SH',  # 日经ETF
    # '513030.SH',  # 德国
    # '513080.SH',  # 法国CAC
]
names = ['close']
fields = ['$close']

from engine.bt_engine import BacktraderEngine
from datetime import datetime
from engine.datafeed.dataloader import Dataloader

loader = Dataloader(symbols,names=['return'], fields=['$close/Ref($close,1)-1'])
df = loader.load_one_df()
print(df)
df_returns = df.pivot_table(index='date', columns=['code'], values=['return'])
df_returns.dropna(inplace=True)
print(df_returns)

e = BacktraderEngine(init_cash=100000, start=datetime(2018, 1, 1))
e.add_features(symbols, names, fields)

from engine.strategy.algos import RunQuarterly, SelectAll, WeightRP


e.run_algo_strategy([RunQuarterly(), SelectAll(), WeightRP(returns_df=df_returns)])
e.analysis(pyfolio=False)

图片

由于ETF成立的时间有长有短,指数的数据比较全,计算起来也比较简单。明天基于全球指数进行计算,包括动量之类的也没有问题。然后在A股的权益市场部分,可以考虑动量轮动来增厚收益。

发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/104200
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!

(0)
股市刺客的头像股市刺客
上一篇 2024 年 7 月 29 日
下一篇 2024 年 7 月 29 日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注