策略日期过滤方案咨询:如何排除或仅在指定日期交易
交易策略日期过滤解决方案
一、排除重大新闻等指定日期交易
核心逻辑是先维护一个需要避开的日期列表,每次交易前检查当前日期是否在列表中,若不在则执行交易操作。
示例代码(Python)
from datetime import datetime # 维护需要排除的日期集合(统一用YYYY-MM-DD格式,避免格式冲突) excluded_dates = {"2023-03-02", "2023-05-05"} def should_execute_trade(): # 获取当前交易日期(若为回测则取数据中的日期字段,此处示例用当前系统时间) current_date = datetime.now().strftime("%Y-%m-%d") # 不在排除列表中则允许交易 return current_date not in excluded_dates # 交易执行逻辑 if should_execute_trade(): print("执行交易操作") else: print("今日为排除日期,跳过交易")
二、仅在指定日期交易
逻辑与前者相反,维护一个允许交易的日期列表,只有当前日期在列表内时才执行交易。
示例代码(Python)
from datetime import datetime # 维护允许交易的日期集合 allowed_dates = {"2023-03-02", "2023-06-10"} def should_execute_trade(): current_date = datetime.now().strftime("%Y-%m-%d") # 在允许列表中才执行交易 return current_date in allowed_dates # 交易执行逻辑 if should_execute_trade(): print("执行交易操作") else: print("今日不在允许交易日期内,跳过交易")
实用提示
- 日期格式务必统一(推荐YYYY-MM-DD),避免因格式不匹配导致判断失效
- 若用于回测,直接取行情数据中的日期字段进行判断即可,无需依赖系统时间
- 可将日期列表存到外部配置文件(如JSON、CSV),方便后续批量更新维护
内容的提问来源于stack exchange,提问作者honeybadger21
相关产品推荐
相关产品推荐

