98 lines
2.9 KiB
Python
98 lines
2.9 KiB
Python
|
|
# -*- 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
|