我有开始日期和结束日期的列表。它们被分类。。。在start_dates = [
datetime.date(2009, 11, 5), datetime.date(2009, 11, 13),
datetime.date(2009, 11, 25), datetime.date(2009, 11, 26),
datetime.date(2009, 12, 4), datetime.date(2009, 12, 7),
datetime.date(2009, 12, 29), datetime.date(2009, 12, 30)]
end_dates = [
datetime.date(2009, 10, 1), datetime.date(2009, 10, 2),
datetime.date(2009, 10, 9), datetime.date(2009, 10, 12),
datetime.date(2009, 11, 4), datetime.date(2009, 12, 14),
datetime.date(2009, 12, 15)]
开始日期代表我们收到购买股票建议的日期。截止日期是我们收到出售建议的日期。建议的来源是不同的,我们正在回溯测试如果我们使用来自一个来源的购买建议,而另一个来源的销售建议会发生什么。因此,我们有两个日期序列,我们想把它们分解成成对的或者间隔的,我们可以在这段时间内持有股票。在
因此,我们将从起始日期开始确定何时买入股票:11月5日我们买入头寸。然后我们在结束日期循环寻找第一个销售建议:12月14日。再说一遍,当我们没有持仓时,当我们从一个来源得到建议时买入,当我们确实持有来自另一个来源的头寸时卖出。在
你可能会说我们想在循环的两个列表中的哪一个。在
因此,上述输入产生:
^{pr2}$
我在for循环中使用for循环,不知道是否有更好的方法。性能是有趣的,因为它将在40年的时间跨度内应用于数千个场景;其中一些列表涉及数千个日期。在