很不幸,注释掉如下这条语句后,收益大幅度下降:
```
set_slippage(FixedSlippage(0.001))
```
需要注释掉的原因是滑点不可能这么低,那就干脆用系统默认的滑点吧。
如下两条语句有错误
```
set_order_cost(OrderCost(close_tax=0.000, open_commission=0.00006, close_commission=0.00006, min_commission=0), type='stock')
order_target(target_etf,context.portfolio.available_cash)
```
`set_order_cost`语句用错是因为type='stock'对买卖etf不起任何作用,正确的写法是type='fund'。另外,问一句,佣金有十万分之6这么低么?
`order_target`语句错误是因为这是按数量买入,而本意应该是按金额买入,正确的写法是:order_value(target_etf,context.portfolio.available_cash)
`注释掉滑点设置语句后,收益降到39.98%`
`改正order_target错误后,收益为44.11%`
回测期间内,收益基本持平大盘。
最后,代码完全可以写的更简练优雅一点,比如target,target_02, target_etf, target_etf02, 那如果是target不是2只,而是3只,4只,难道还target_03,target_04,target_etf03, target_etf_04,并把各处都去改一遍?
2021-03-10