Files
lm_code/adaptive_third_strategy/config.py

98 lines
2.9 KiB
Python
Raw Normal View History

2026-01-31 10:35:25 +08:00
# -*- coding: utf-8 -*-
"""
自适应三分位趋势策略 - 配置参数
"""
# ========== 数据与周期 ==========
CONTRACT_SYMBOL = "ETHUSDT"
STEP_5M = 5
STEP_15M = 15
STEP_60M = 60
# 有效K线标准实体 >= max(ATR(20)*0.1, 最小波动阈值)
MIN_BODY_ATR_RATIO = 0.1
MIN_VOLATILITY_PERCENT = 0.0005 # 当前价格 × 0.05%
# ========== 趋势判断EMA周期 ==========
# 长期1小时 EMA(50) vs EMA(200)
EMA_LONG_FAST = 50
EMA_LONG_SLOW = 200
# 中期15分钟 EMA(20) vs EMA(50)
EMA_MID_FAST = 20
EMA_MID_SLOW = 50
# 短期5分钟 EMA(9)
EMA_SHORT = 9
# 交易模式aggressive / conservative / strict
TREND_MODE = "conservative"
# ========== 动态触发 ==========
ATR_PERIOD = 20
VOLATILITY_COEF_CLAMP = (0.3, 3.0) # 波动率系数范围
BASE_COEF = 0.33
# 趋势方向系数(顺势更易触发)
TREND_FAVOR_COEF = 0.8
TREND_AGAINST_COEF = 1.2
# ========== 信号确认(至少满足几项) ==========
CONFIRM_REQUIRED = 2
VOLUME_MA_PERIOD = 20
VOLUME_RATIO_THRESHOLD = 0.8 # 成交量 > 前20根均量 × 0.8
# ========== 风险管理 ==========
MAX_POSITION_PERCENT = 0.10 # 单笔最大 10%
BASE_POSITION_PERCENT = 0.02 # 基础仓位 2%
STOP_LOSS_ATR_MULT = 2.0 # 硬止损 = ATR × 2.0
TIME_STOP_BARS = 3 # 3根K线未盈利平仓
TRAIL_START_ATR = 1.0 # 盈利 1×ATR 后启动移动止损
TRAIL_ATR_MULT = 0.5 # 移动止损距离 0.5×ATR
# 止盈目标ATR倍数与分批比例
TP1_ATR = 1.5
TP2_ATR = 3.0
TP3_ATR = 5.0
TP1_RATIO = 0.30
TP2_RATIO = 0.30
TP3_RATIO = 0.40
# ========== 反手条件 ==========
REVERSE_BREAK_MULT = 0.5 # 突破幅度 > 实体/2
REVERSE_LOSS_ATR = 0.5 # 当前持仓亏损 > 0.5×ATR 可反手
MIN_BARS_SINCE_ENTRY = 2 # 距离上次开仓至少2根K线
SAME_KLINE_NO_REVERSE = True # 同一K线不反手
# ========== 市场状态调整 ==========
# 强趋势 / 震荡 / 高波动 时的系数
STRONG_TREND_COEF = 0.25
STRONG_TREND_STOP_ATR = 3.0
RANGE_COEF = 0.4
RANGE_STOP_ATR = 1.5
HIGH_VOL_POSITION_COEF = 0.5
HIGH_VOL_EXTRA_CONFIRM = 1
# ========== 禁止交易时段UTC+8 小时:分) ==========
FORBIDDEN_PERIODS = [
(0, 0, 0, 30), # 00:00-00:30
(8, 0, 8, 30), # 08:00-08:30
(20, 0, 20, 30), # 20:00-20:30
]
# 高波动暂停ATR > 平均ATR × 2 暂停
ATR_PAUSE_MULT = 2.0
# ========== 自适应绩效 ==========
CONSECUTIVE_LOSS_PAUSE = 3 # 连续亏损3次仓位减半
WIN_RATE_LOOKBACK = 20
WIN_RATE_PAUSE_THRESHOLD = 0.40 # 胜率<40% 暂停
MAX_DRAWDOWN_PERCENT = 0.10 # 最大回撤10% 观察期
MAX_TRADES_PER_DAY = 20
MAX_HOLD_BARS = 4 * 12 # 4小时 ≈ 4*12 根5分钟
# ========== 回测/实盘通用 ==========
CONTRACT_SIZE = 10000
SLIPPAGE_POINTS = 3
FEE_RATE = 0.0005
FEE_FIXED = 5
# 回测专用:固定手续费(合约多为按比例,可设为 0 观察策略本身)
FEE_FIXED_BACKTEST = 0
# 两笔开仓之间至少间隔 N 根 5 分钟 K 线,减少过度交易
MIN_BARS_BETWEEN_TRADES = 4