from datetime import timedelta
def check_entry_timeout(self, pair: str, trade: Trade, order: Order,
current_time: datetime, **kwargs) -> bool:
"""
判断买入挂单是否超时,决定是否取消。
超时逻辑:
- 价格 > 100 USDT,挂单超5分钟取消
- 价格介于10~100 USDT,挂单超3分钟取消
- 价格 < 1 USDT,挂单超24小时取消
返回:
- True 表示取消挂单
- False 表示继续等待成交
"""
if trade.open_rate > 100 and trade.open_date_utc < current_time - timedelta(minutes=5):
return True
elif trade.open_rate > 10 and trade.open_date_utc < current_time - timedelta(minutes=3):
return True
elif trade.open_rate < 1 and trade.open_date_utc < current_time - timedelta(hours=24):
return True
return False
def check_exit_timeout(self, pair: str, trade: Trade, order: Order,
current_time: datetime, **kwargs) -> bool:
"""
判断卖出挂单是否超时,决定是否取消。
逻辑同买入挂单超时判断,分价位设定不同超时阈值。
"""
if trade.open_rate > 100 and trade.open_date_utc < current_time - timedelta(minutes=5):
return True
elif trade.open_rate > 10 and trade.open_date_utc < current_time - timedelta(minutes=3):
return True
elif trade.open_rate < 1 and trade.open_date_utc < current_time - timedelta(hours=24):
return True
return False