问答交流

实盘时怎么按照交易日计算持仓天数?

由bqlr9p7x创建,最终由xuxiaoyin 被浏览 13 用户

days_since = (data.current_dt - context.last_rebalance_date).days

if days_since >= context.min_rebalance_days:

min_rebalance_days是最小持仓天数,我是想days_since (当前持仓天数)至少要大于min_rebalance_days才产生换仓信号。days_since应该按交易日来计算,回测的时候没问题,但实盘的时候,我这个代码的days_since是按自然日来计算的。这个问题怎么解?

评论
  • days_since = (data.current_dt - context.last_rebalance_date).days 这行代码,跟回测或实盘没关系,它都算的是自然日期,但是在实盘的时候 context.last_rebalance_date 这个变量可能没有持久化,导致实盘每次运行时都是从初始值重新计算的,导致回测和实盘时有差异,建议对 context.last_rebalance_date 持久化保存
  • 持仓中是有下单天数的,或者你可以用handle_trade回调函数来记录开仓时间
{link}