1、新增傅里叶策略

2、新增策略管理、策略重启功能
This commit is contained in:
2025-11-20 16:15:45 +08:00
parent 2c917a467a
commit 711b86d33f
46 changed files with 12136 additions and 0 deletions

View File

@@ -0,0 +1,45 @@
from datetime import timedelta
from tqsdk import TqApi, TqAuth, TqAccount
from futures_trading_strategies.SA.Spectral.SpectralTrendStrategy import SpectralTrendStrategy
# 导入 TqsdkEngine而不是原来的 BacktestEngine
from src.indicators.indicators import PriceRangeToVolatilityRatio, ZScoreATR
from src.tqsdk_real_engine import TqsdkEngine
# 导入你的策略类
# --- 配置参数 ---
# Tqsdk 的本地数据文件路径,注意 Tqsdk 要求文件名为 KQ_m@交易所_品种名_周期.csv
# 主力合约的 symbol
symbol = "KQ.m@CZCE.SA"
strategy_parameters = {
'main_symbol': 'SA', # <-- 替换为你的交易品种代码,例如 'GC=F' (黄金期货), 'ZC=F' (玉米期货)
'trade_volume': 1,
# 'order_direction': ['SELL', 'BUY'],
# 'indicators': [BollingerBandwidth(20, 2.0, 1.8, 5), BollingerBandwidth(20, 2.0, 1.8, 5),],
'model_indicator': ZScoreATR(14, 100, 0.5, 3),
'spectral_window_days': 8, # STFT窗口大小(天)
'low_freq_days': 8, # 低频下限(天)
'high_freq_days': 4, # 高频上限(天)
'trend_strength_threshold': 0.7, # 相变临界值
'exit_threshold': 0.3, # 退出阈值
'enable_log': True
}
# api = TqApi(TqKq(), auth=TqAuth("emanresu", "dfgvfgdfgg"))
api = TqApi(TqAccount('H宏源期货', '903308830', 'lzr520102'), auth=TqAuth("emanresu", "dfgvfgdfgg"))
# --- 1. 初始化回测引擎并运行 ---
print("\n初始化 Tqsdk 回测引擎...")
engine = TqsdkEngine(
strategy_class=SpectralTrendStrategy,
strategy_params=strategy_parameters,
api=api,
symbol=symbol,
duration_seconds=60 * 15,
roll_over_mode=True, # 启用换月模式检测
history_length=1000,
close_bar_delta=timedelta(minutes=58)
)
engine.run() # 这是一个同步方法,内部会运行 asyncio 循环