在回测中的持仓最后无法满仓是为什么呢?
由zwm521创建,最终由zwm521 被浏览 43 用户
前期都是可以满仓买入,到到了回测末期就无法满仓了。
买入是每天买一个全仓第二天卖出,第三天继续买入循环。权重就是单股100%,按 context.portfolio.cash账户现金买入。
context.stock_weights = [1]
context.max_cash_per_instrument = 1
context.options['hold_days'] = 0
buy_cash_weights = context.stock_weights
buy_instruments = list(ranker_prediction.instrument[:len(buy_cash_weights)])
max_cash_per_instrument = context.portfolio.portfolio_value * context.max_cash_per_instrument
for i, instrument in enumerate(buy_instruments):
cash = cash_for_buy * buy_cash_weights[i]
#if cash > max_cash_per_instrument - positions.get(instrument, 0):
# 确保股票持仓量不会超过每次股票最大的占用资金量
# cash = max_cash_per_instrument - positions.get(instrument, 0)
if cash > 0:
context.order_value(context.symbol(instrument), cash)
\