问答交流

在回测中的持仓最后无法满仓是为什么呢?

由zwm521创建,最终由zwm521 被浏览 43 用户

{w:100}前期都是可以满仓买入,到到了回测末期就无法满仓了。

买入是每天买一个全仓第二天卖出,第三天继续买入循环。权重就是单股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)

\

标签

回测持仓
评论
  • 是这样的,因为一些股票无法成交,导致仓位没满。你的hold_days=0 应该是当天买,次日卖,所以会间隔持仓,详细的你可以发下策略,我们帮你分析下
{link}