@朱铭
将买卖函数修改为:
```
#6
#获得卖出信号,并执行卖出操作
#输入:context, data,toBuy-list
#输出:none
def order_stock_sell(context,data,toBuy):
# 对于不需要持仓的股票,全仓卖出
if len(context.portfolio.positions) > 0:
for stock in context.portfolio.positions.keys():
if stock not in toBuy:
order_target_value(stock, 0)
#7
#获得买入信号,并执行买入操作
#输入:context, data,toBuy-list
#输出:none
def order_stock_buy(context,data,toBuy):
if len(toBuy) > 0:
for stock in toBuy:
if stock not in context.portfolio.positions.keys():
order_target_value(stock,g.everyStock)
```
发现不少策略收益都略有提高,有的回撤还大幅减少了。
@朱铭 @JoinQuant量化课堂 买入和卖出的代码为何要从g.all_stock里查?当前持仓若不在toBuy中就卖出,再等分买入toBuy不就可以了吗?
def order_stock_buy(context, data, toBuy):
# 对于需要持仓的股票,按分配到的份额买入
for i in range(0, len(g.all_stocks)):
if indexOf(g.all_stocks[i], toBuy) > -1:
order_target_value(g.all_stocks[i], g.everyStock)
为什么不直接
for stock in toBuy:
order_target_value(stock, g.everyStock)
看代码,toBuy也是在g.all_stocks里面挑选出来的呀
这两个回测结果有微小区别,请问为什么?