之前看了前辈们有关,日内交易在收盘前平掉所有仓位的代码,有些看不明白,自己有一点想法,重写一种,但是写出来是报错的,想请各位大佬们指出下我的错误
需求:在每天夜盘(23:00)前3分钟清掉仓位以及在下午(15:00)前3分钟清掉仓位。
我的平仓思路是这样的:如果bar.datetime 落在 14:58到15:00之间 或者 22:58到23:00之间,清仓。
exit_time_start_1 = time(hour=14, minute=57)
exit_time_end_1 = time(hour=15, minute=00)
exit_time_start_2 = time(hour=22, minute=57)
exit_time_end_2 = time(hour=23, minute=00)
我的判断逻辑:
if self.exit_time_start_1 < bar.datetime <self.exit_time_end_1 or self.exit_time_start_2<bar.datetime<self.exit_time_end_2 :
if self.pos > 0:
self.sell(bar.close_price,abs(self.pos))
elif self.pos <0:
self.cover(bar.close_price,abs(self.pos))
但是,策略现在运行后提示我错误在
File "c:\vnstudio\lib\site-packages\vnpy_ctastrategy\backtesting.py", line 228, in run_backtesting
self.callback(data)
File "c:\vnstudio\lib\site-packages\vnpy_ctastrategy\strategies\Emarbshfe20211122.py", line 110, in on_bar
self.bg.update_bar(bar)
File "c:\vnstudio\lib\site-packages\vnpy\trader\utility.py", line 266, in update_bar
self.update_bar_minute_window(bar)
File "c:\vnstudio\lib\site-packages\vnpy\trader\utility.py", line 303, in update_bar_minute_window
self.on_window_bar(self.window_bar)
File "c:\vnstudio\lib\site-packages\vnpy_ctastrategy\strategies\Emarbshfe20211122.py", line 143, in on_3min_bar
if self.exit_time_start_1 < bar.datetime <self.exit_time_end_1 or self.exit_time_start_2<bar.datetime<self.exit_time_end_2 :
TypeError: '<' not supported between instances of 'datetime.time' and 'datetime.datetime'
1、请问下我的思路是否有问题。
2、如果思路没问题的话,这个报错该怎么修改。