Configuration Guide

配置使用指南

适用版本 v1.0 日期 2026-05-29 关联文档 PRD · 模块技术规格
配置文件概述

每套交易系统对应一个 YAML 配置文件。框架启动时扫描配置目录,为每个文件创建独立运行实例。增删一套交易系统只需增删配置文件,框架代码不变。

配置文件放在 configs/ 目录下,文件名即实例名称:

# 目录结构示例 configs/ ├── btc_4h_ema.yaml # 实例 1 ├── eth_1h_naked.yaml # 实例 2 └── sol_trend.yaml # 实例 3

配置文件只定义算法组合和参数,不包含交易对。交易对在启动实例时指定,同一份配置可以在 BTC、ETH、SOL 等不同交易对上分别启动实例,不需要复制配置文件。每个实例有自己独立的分析结果和持仓记录。

完整配置示例

以下是一份可直接使用的配置文件,覆盖所有字段。

# BTC/USDT 4H 均线趋势跟踪配置 exchange: binance # symbol 在启动实例时指定,不写在配置文件里 # 例:python run.py --config btc_4h_ema.yaml --symbol BTC/USDT:USDT # ── 周期配置 ── trend_timeframe: 4h # 趋势判断周期 main_timeframe: 15m # 信号识别周期 kline_window: 300 # 回看 300 根 K 线 # ── 算法选择 ── trend_method: type: ema_group periods: [21, 55, 144] keylevel_method: type: horizontal_swing signal_method: type: golden_candle tp_method: type: fixed_rr # 固定盈亏比止盈 # ── 交易参数 ── trade_direction: TREND_FOLLOW # 顺势做单 min_rr_ratio: 2.0 # 最低盈亏比 2:1 risk_pct: 0.01 # 每笔最多亏损账户 1% stop_atr_buffer: 0.5 # 止损在关键区外侧 0.5 ATR auto_trade: false # 关闭真实下单,仅推通知 # ── 通知与会话 ── discord_webhook: https://discord.com/api/webhooks/... session_end_time: 23:00 # UTC 23:00 后不再开仓
字段参考 · 基础配置
字段说明示例值
exchange 交易所标识符。框架通过 CCXT 连接,填 CCXT 支持的交易所 ID binance / bybit
symbol(启动参数) 交易对不在配置文件里,而是启动实例时指定。同一份配置可以用于不同交易对,格式为 CCXT 永续合约格式(BASE/QUOTE:QUOTE) 启动时传入:BTC/USDT:USDT
trend_timeframe 趋势分析周期。TrendModule 和 KeyLevelModule 在此周期的 K 线上运行 4h / 1d
main_timeframe 主交易周期。SignalModule 在此周期识别信号。通常比趋势周期小 2-4 级 15m / 1h
kline_window K 线回看窗口(根数)。需覆盖所选算法的最大历史深度。EMA 200 需至少 200 根,建议留余量 300
字段参考 · 算法配置

每个算法字段格式均为 {type: "注册名", ...参数}。可选的注册名见 PRD · 算法目录。

字段说明可选 type
trend_method 趋势分析算法,决定系统如何判断当前是涨势、跌势还是震荡 ema_group / naked_candle / vegas_tunnel / trendline / pattern_trend
keylevel_method 关键位识别算法,决定如何找出支撑/阻力区间 horizontal_swing / pattern_level / specific_price
signal_method 入场信号算法,在关键位附近识别具体的开仓触发条件 golden_candle / pattern_signal / ema_signal
tp_method 止盈算法:fixed_rr 用盈亏比倍数计算目标价,支持多档止盈;keylevel_tp 用下一个关键位近端作为目标,无关键位时降级为 fixed_rr fixed_rr / keylevel_tp
字段参考 · 交易参数
字段说明示例
min_rr_ratio 最小可接受盈亏比,用第一档止盈计算。生成交易计划后,若实际盈亏比低于此值,该计划被丢弃,不开仓。推荐不低于 2.0 2.0
risk_pct 每笔交易的最大风险敞口,占账户可用余额的比例。仓位大小由此反推:qty = (balance × risk_pct) / |entry − stop|。合理范围 0.5%–2%,不建议超过 3% 0.01(1%)
stop_atr_buffer 止损价在关键区反向边界外额外留出的 ATR 倍数。留出缓冲防止正常波动触发止损后被反向洗出。值越大止损越宽,盈亏比越低 0.5
auto_trade 是否向交易所发送真实订单。false:只推通知和记录计划(推荐先用此模式跑 Forward Test);true:真实下单,需配置好 exchange API key false
字段参考 · 做单方向

trade_direction 决定系统在什么趋势条件下开仓,以及开多还是开空。

TREND_FOLLOW · 顺势
涨势只做多,跌势只做空

TrendModule 判断为涨势时,只识别做多信号;判断为跌势时,只识别做空信号;判断为震荡时,流水线短路,不开仓。

适用:大多数趋势行情,是最常用的方向配置。

LONG_ONLY · 只做多
无论趋势方向,只识别做多信号

忽略趋势方向,只要有合格的做多信号就开仓。震荡期间依然会开多仓。

适用:只想做现货多头、或账户不支持做空时。

SHORT_ONLY · 只做空
无论趋势方向,只识别做空信号

只开空仓。适用:看空某个标的、或仅用于对冲时。

COUNTER_TREND · 逆势
趋势向上时找做空信号,趋势向下时找做多信号

在趋势方向的反向寻找信号,用于关键阻力/支撑的反转交易。

适用:区间震荡市场的高抛低吸、或顶底反转判断。风险高于顺势,建议配合更高 min_rr_ratio(≥ 2.5)和更小 risk_pct。

字段参考 · 通知与会话
字段说明示例
discord_webhook Discord Webhook URL。触发三类通知:
① 信号生成:含交易对、方向、入场价、止损价、止盈价、盈亏比
② 订单成交:含实际入场价、仓位大小
③ 平仓复盘:含实际盈亏金额、盈亏比、持仓时长
留空则不推送通知
https://discord.com/api/webhooks/...
session_end_time 当日会话结束时间(UTC)。到达后不再新开仓;已有持仓不受影响,继续由 PositionMonitor 追踪。配合风控层的「当日强平」约束使用。不填则全天运行 23:00
配置方案 · BTC 4H 均线顺势

BTC 大周期趋势清晰,EMA 组合在 4H 周期表现稳定,搭配金K信号识别强势突破。

exchange: binance # symbol: BTC/USDT:USDT ← 启动时指定 trend_timeframe: 4h main_timeframe: 15m kline_window: 300 trend_method: {type: ema_group, periods: [21, 55, 144]} keylevel_method: {type: horizontal_swing} signal_method: {type: golden_candle} tp_method: {type: keylevel_tp} trade_direction: TREND_FOLLOW min_rr_ratio: 2.0 risk_pct: 0.01 stop_atr_buffer: 0.5 auto_trade: false
配置方案 · ETH 1H 裸K逆势

ETH 1H 周期噪音较大,裸K摆动结构更准,在关键位做反转,逆势配置要求更高盈亏比。

exchange: binance # symbol: ETH/USDT:USDT ← 启动时指定 trend_timeframe: 4h main_timeframe: 1h kline_window: 200 trend_method: {type: naked_candle} keylevel_method: {type: horizontal_swing} signal_method: {type: pattern_signal} tp_method: {type: fixed_rr} trade_direction: COUNTER_TREND min_rr_ratio: 2.5 risk_pct: 0.005 stop_atr_buffer: 0.8 auto_trade: false
配置方案 · 多套系统并行

两套配置同时运行,共用同一个框架和账户,各自独立触发信号、独立建仓,共享风控约束。

# configs/btc_4h_ema.yaml — 实例 1 exchange: binance # symbol: BTC/USDT:USDT ← 启动时指定 trend_timeframe: 4h main_timeframe: 15m trend_method: {type: ema_group, periods: [21, 55, 144]} # ... 其余字段同上
# configs/eth_1h_naked.yaml — 实例 2 exchange: binance # symbol: ETH/USDT:USDT ← 启动时指定 trend_timeframe: 4h main_timeframe: 1h trend_method: {type: naked_candle} # ... 其余字段同上

框架启动后两套实例并行运行。BTC 的 4H K 线和 ETH 的 4H K 线各自独立拉取(不同交易对,无法共享)。如果两套系统都配置了 BTC/USDT:USDT 且趋势算法参数完全相同,共享数据层会自动合并计算,只向交易所请求一次。