问答交流

求助请教,如何实现日线当日卖出后,资金直接用于买入?

由bqn29k3u创建,最终由bqn29k3u 被浏览 23 用户

# 回测引擎:每日数据处理函数,每天执行一次
def m19_handle_data_bigquant_run(context, data):
    #...
    # 2. 生成卖出订单
    print(f'{today} before cash:{context.portfolio.cash}')
    if cash_for_sell > 0:
        for instrument in sell_instruments:
            res = context.order_target(context.symbol(instrument), 0)
            cash_for_sell -= positions[instrument]
            cash_for_buy += positions[instrument]
            if cash_for_sell <= 0:
                break
    # 问题:单日先卖出,后买入
    # 这么写 cash 并没有增加,也就是卖出的资金没办法使用,代码该如何实现?
    print(f'{today} after cash:{context.portfolio.cash}')
    # 3. 生成买入订单
    for i, instrument in enumerate(buy_instruments):
        single_cash = cash/len(buy_instruments)
        context.order_value(context.symbol(instrument), cash)

代码如上,卖出资金并不能立即使用吗?

尝试过,order_value使用把卖出的资金金额加上了,实际回测的交易详情,成交量只有100股,并没有用到卖出的资金

\

标签

股票交易金融市场交易策略投资决策日线
评论
  • 回测模块设置开盘卖,收盘买呢?
  • 模块设置的是,开盘价卖,开盘价买。
  • undefined
{link}