bigquant量化技术指标的自定义策略单纯通过计算MA多头指标,以短线 =5, MA 长线 =20, 当 MA 短线在 MA 长线上方时,买入股票,否则卖出股票。
调仓周期为 20 个工作日,而且最大允许持仓股票数为 10 只,最终得到这个策略的回测结果如下:
使用代码:
def handle_data(context, data):
if context.trading_day_index < context.observation:
return
##########
# 1. 资金分配
# 平均持仓时间是hold_days,每日都将买入股票,每日预期使用 1/hold_days 的资金
# 实际操作中,会存在一定的买入误差,所以在前hold_days天,等量使用资金;之后,尽量使用剩余资金(这里设置最多用等量的1.5倍)
is_staging = context.trading_day_index < context.next_trade_day # 是否在建仓期间(前 hold_days 天)
cash_avg = context.portfolio.portfolio_value / context.hold_days
cash_for_buy = context.portfolio.cash
cash_for_sell = cash_avg - (context.portfolio.cash - cash_for_buy)
positions = {e.symbol: p.amount * p.last_sale_price
for e, p in context.portfolio.po