策略先容
大类资产确立策略(Asset Allocation Strategy)是投资惩办中一种基于投资组合表面的策略,其主要目的是通过在不同类型的资产之间分拨投资来优化风险与答复的比例。这些资产类别时时包括股票、债券、现款及现款等价物、不动产、巨额商品以偏执他替代投资品种。资产确立的方针是期骗不同资产类别间的非十足关联性来裁汰全体投资组合的波动性和风险,同期寻求合理的答复。
大类资产确立策略的盈利逻辑主要基于以下几点:
漫衍风险:不同资产类别时时具有不同的风险答复特质和市集领略。通过各样化的投资组合,不错在某些资产领略欠安时,依靠其他资产的领略来均衡亏本,从而裁汰全体投资组合的波动性。关联性:资产之间的关联性料到了它们价钱变动的同步性。生机的资产确立是将投资漫衍到关联性低的资产中,这么即使市集环境变化,也不太可能总计资产同期领略欠安。计策与战术确立:计策资产确立基于永远的市集预期和投资方针,而战术资产确立则触及笔据短期市集预期和要求对资产确立进行调理。通过合理的计策和天简直战术调理,投资者不错在不同市集环境下寻求盈利。资本后果:礼聘资本后果高的投资格局,如低费率的指数基金或ETF,不错减少往还和惩办用度,从而提升投资组合的全体答复。
总之,大类资产确立策略的盈利逻辑在于通过经心机划的资产组合来均衡风险与答复,同期期骗市集的波动和永远趋势来杀青钞票增长
在中国,关于散户来说要杀青大类资产确立,最轻便的阶梯即是买场内ETF基金。
ETF列表
本文确立的ETF有8个,涵盖了国内股票、香港股票、海外股票、商品、黄金、债券市集,读取数据用到的表是<基金行情表>,表名为:cn_fund_bar1d。
商品ETF 510170.SH日经ETF 513520.SH德国指数ETF 513030.SH纳斯达克ETF 159941.SZ黄金ETF 518880.SH恒生ETF 159920.SZ沪深300ETF 510300.SH国债ETF 511010.SH
从下图不错看出,咱们再输入特征这个模块的”抒发式过滤要求“这个参数里作念了过滤,得到咱们所需要的8个ETF的后复权价钱数据。
策略构建
策略想想:按固定分拨好的权重买入并握有
动手技巧:2016-01-01
完毕技巧:2024-05-07
权重分拨:一共8个主义,其中国债波风险较小,是以咱们确立更大的权重,商品ETF权重是0.3,其余ETF是0.1,权重之后等于1。
回测法例
归来,不错看出大类资产确立策略永瞭望是一个正收益策略,远远跳跃银行利息,甚而能赶上通货推广带来的货币贬值,永远来看年化利率能作念到5-8个点。金融学术限度看,大类资产确立是一个比拟轻视但不错握续收益的盈利策略,往还推广起来最大的扼制即是东说念主的心扉,当下落的时候是否能坚握,当其他资产涨势凶猛的时候是否能坚握王人影响着最终得手的握仓收益。
总体来说,这个策略比买银行泄露能够买私募FOF居品是强太多了。
改日优化
再均衡。如期更新下单个资产的权重使用组合优化,比如风险平价模子、最小化风险模子、最大化收益模子、最大化夏普模子等。衔接动量因子作念主义择时
以上王人是常见的优化格局,这里就留给小伙伴我方去杀青吧,若是不会杀青,不错加入咱们的plus会员,咱们工程师不错提供杀青格局和代码。
代码克隆
部分策略源码:
from bigmodule import M# <aistudiograph># @param(id="m1", name="initialize")# 往还引擎:开动化函数,只推广一次def m1_initialize_bigquant_run(context): from bigtrader.finance.commission import PerOrder # 系统仍是确立了默许的往还手续费和滑点,要修改手续费可使用如下函数 context.set_commission(PerOrder(buy_cost=0.00015, sell_cost=0.00015, min_cost=0)) #国债放大握有仓位倍数 context.BOND_ETF_LEVERAGE = 3 print('刻下去还主义:', context.instruments) #每主义购买资金 context.max_cash_per_instrument = context.portfolio.portfolio_value/(len(context.instruments)-1+context.BOND_ETF_LEVERAGE) # @param(id="m1", name="before_trading_start")# 往还引擎:每个单元技巧开盘前调用一次。def m1_before_trading_start_bigquant_run(context, data): # 盘前处理,订阅行情等 pass# @param(id="m1", name="handle_tick")# 往还引擎:tick数据处理函数,每个tick推广一次def m1_handle_tick_bigquant_run(context, tick): pass# @param(id="m1", name="handle_data")# 往还引擎:bar数据处理函数,每个技巧单元推广一次def m1_handle_data_bigquant_run(context, data): # 获适应前握仓 positions = {e: p.amount for e, p in context.portfolio.positions.items()} #买入并握有 #每主义购买资金 for instrument in context.instruments: if instrument not in positions.keys(): cash = context.max_cash_per_instrument if instrument=='511010.SH': # 若是是国债ETF,买入时权要紧极少 cash = context.max_cash_per_instrument * context.BOND_ETF_LEVERAGE context.order_value(instrument, cash) # @param(id="m1", name="handle_trade")# 往还引擎:成交答复处理函数,每个成交发生时推广一次def m1_handle_trade_bigquant_run(context, trade): pass# @param(id="m1", name="handle_order")# 往还引擎:奉求答复处理函数,每个奉求变化时推广一次def m1_handle_order_bigquant_run(context, order): pass# @param(id="m1", name="after_trading")# 往还引擎:盘后处理函数,逐日盘后推广一次def m1_after_trading_bigquant_run(context, data): pass
好意思满实质和策略源码,请私信我获得。
#量化#