原创内容第885篇,专注智能量化投资、个人成长与财富自由。 1、本地核心版本,刷新策略,至少3个(notebook版本)。ailabx.com上线,论坛(bbs.ailabx.com)也上线了。我在本地化版本里也开发一个策略,年化37.5%,回撤控制在16.8%, 大类资产加止盈策略:import bt from bt.algos import * from bt_algos_extend import SelectTopK
select_signal = np.ones(stop_profit.shape) # 注意这里是全1,没有select_buy就是全选 select_signal = pd.DataFrame(select_signal, columns=stop_profit.columns, index=stop_profit.index)
select_signal = np.where(stop_profit, 0, select_signal) # select_sell置为0,就是清仓或不选 select_signal = pd.DataFrame(select_signal, index=stop_profit.index, columns=stop_profit.columns) select_signal.ffill(inplace=True) # 这一句非常关键,ffill就是前向填充,保持持仓状态不变。即不符合buy,也不符合sell,保持不变。 select_signal.fillna(0, inplace=True)
s1 = bt.Strategy('s1', [bt.algos.RunDaily(), #SelectAll(), bt.algos.SelectWhere(signal=select_signal), SelectTopK(signal=order_by), bt.algos.WeighEqually(), bt.algos.Rebalance()])
s2 = bt.Strategy('benchmark', [bt.algos.RunOnce(), bt.algos.SelectAll(), bt.algos.WeighEqually(), bt.algos.Rebalance()])
bkts = [bt.Backtest(s1, close),bt.Backtest(s2,close)] res = bt.run(*bkts) 年少时,一度想做一个论坛,来服务一批志趣相投的用户。本次也算圆了一个小心愿。使用
|