This commit is contained in:
薇薇安 2026-02-12 13:57:19 +08:00
parent 8c91db3f60
commit 0df841c93c
5 changed files with 98 additions and 103 deletions

View File

@ -819,11 +819,11 @@ class ConfigManager:
# - 提高最小价格变动百分比从2%到2.5%),避免止损过紧
'STOP_LOSS_PERCENT': eff_get('STOP_LOSS_PERCENT', 0.12), # 默认12%(保证金百分比)
'TAKE_PROFIT_PERCENT': eff_get('TAKE_PROFIT_PERCENT', 0.10), # 默认10%(第二目标/单目标止盈)
'TAKE_PROFIT_1_PERCENT': eff_get('TAKE_PROFIT_1_PERCENT', 0.15), # 默认15%(分步止盈第一目标,提高整体盈亏比)
'TAKE_PROFIT_1_PERCENT': eff_get('TAKE_PROFIT_1_PERCENT', 0.20), # 默认20%2026-02-12优化拉高第一目标改善盈亏比)
'MIN_STOP_LOSS_PRICE_PCT': eff_get('MIN_STOP_LOSS_PRICE_PCT', 0.025), # 默认2.5%2026-01-29优化从2%提高到2.5%,给波动更多空间)
'MIN_TAKE_PROFIT_PRICE_PCT': eff_get('MIN_TAKE_PROFIT_PRICE_PCT', 0.02), # 默认2%防止ATR过小时计算出不切实际的微小止盈距离
'USE_ATR_STOP_LOSS': eff_get('USE_ATR_STOP_LOSS', True), # 是否使用ATR动态止损
'ATR_STOP_LOSS_MULTIPLIER': eff_get('ATR_STOP_LOSS_MULTIPLIER', 2.0), # ATR止损倍数2.02026-01-29优化从1.5提高到2.0,减少被正常波动扫出
'ATR_STOP_LOSS_MULTIPLIER': eff_get('ATR_STOP_LOSS_MULTIPLIER', 3.0), # ATR止损倍数3.02026-02-12优化减少噪音止损配合止盈拉远
'ATR_TAKE_PROFIT_MULTIPLIER': eff_get('ATR_TAKE_PROFIT_MULTIPLIER', 2.0), # ATR止盈倍数2.02026-01-27优化降低止盈目标更容易触发
'RISK_REWARD_RATIO': eff_get('RISK_REWARD_RATIO', 3.0), # 盈亏比3:12026-01-27优化降低更容易触发保证胜率
'ATR_PERIOD': eff_get('ATR_PERIOD', 14), # ATR计算周期
@ -887,7 +887,7 @@ class ConfigManager:
'BETA_FILTER_ENABLED': eff_get('BETA_FILTER_ENABLED', True), # 大盘共振过滤BTC/ETH下跌时屏蔽多单
'BETA_FILTER_THRESHOLD': eff_get('BETA_FILTER_THRESHOLD', -0.005), # -0.5%2026-01-27优化更敏感地过滤大盘风险15分钟内跌幅超过0.5%即屏蔽多单)
# RSI / 24h 涨跌幅过滤(避免追高杀跌)
'MAX_RSI_FOR_LONG': eff_get('MAX_RSI_FOR_LONG', 70), # 做多时 RSI 超过此值则不开多
'MAX_RSI_FOR_LONG': eff_get('MAX_RSI_FOR_LONG', 65), # 做多时 RSI 超过此值则不开多2026-02-1265 避免追高)
'MAX_CHANGE_PERCENT_FOR_LONG': eff_get('MAX_CHANGE_PERCENT_FOR_LONG', 25), # 做多时 24h 涨跌幅超过此值则不开多
'MIN_RSI_FOR_SHORT': eff_get('MIN_RSI_FOR_SHORT', 30), # 做空时 RSI 低于此值则不做空
'MAX_CHANGE_PERCENT_FOR_SHORT': eff_get('MAX_CHANGE_PERCENT_FOR_SHORT', 10), # 做空时 24h 涨跌幅超过此值则不做空
@ -911,7 +911,8 @@ class ConfigManager:
'SYMBOL_LOSS_COOLDOWN_ENABLED': eff_get('SYMBOL_LOSS_COOLDOWN_ENABLED', True),
'SYMBOL_MAX_CONSECUTIVE_LOSSES': eff_get('SYMBOL_MAX_CONSECUTIVE_LOSSES', 2),
'SYMBOL_LOSS_COOLDOWN_SEC': eff_get('SYMBOL_LOSS_COOLDOWN_SEC', 3600),
# 第一目标止盈最小盈亏比(相对止损距离)
'MIN_RR_FOR_TP1': eff_get('MIN_RR_FOR_TP1', 1.5), # 2026-02-12保证 TP1 至少 1.5 倍止损距离,改善盈亏比
}
def _sync_to_redis(self):

View File

@ -22,16 +22,18 @@ if str(backend_dir) not in sys.path:
# 需要同步的缺省项(仅插入数据库中不存在的 key
DEFAULTS_TO_SYNC = [
{"config_key": "MAX_RSI_FOR_LONG", "config_value": "70", "config_type": "number", "category": "strategy",
"description": "做多时 RSI 超过此值则不开多(避免超买区追多。2026-01-31新增"},
{"config_key": "MAX_RSI_FOR_LONG", "config_value": "65", "config_type": "number", "category": "strategy",
"description": "做多时 RSI 超过此值则不开多(2026-02-1265 避免追高)"},
{"config_key": "MAX_CHANGE_PERCENT_FOR_LONG", "config_value": "25", "config_type": "number", "category": "strategy",
"description": "做多时 24h 涨跌幅超过此值则不开多(避免追大涨)。单位:百分比数值,如 25 表示 25%。2026-01-31新增。"},
{"config_key": "MIN_RSI_FOR_SHORT", "config_value": "30", "config_type": "number", "category": "strategy",
"description": "做空时 RSI 低于此值则不做空避免深超卖反弹。2026-01-31新增。"},
{"config_key": "MAX_CHANGE_PERCENT_FOR_SHORT", "config_value": "10", "config_type": "number", "category": "strategy",
"description": "做空时 24h 涨跌幅超过此值则不做空24h 仍大涨时不做空。单位百分比数值。2026-01-31新增。"},
{"config_key": "TAKE_PROFIT_1_PERCENT", "config_value": "0.15", "config_type": "number", "category": "strategy",
"description": "分步止盈第一目标(保证金百分比,如 0.15=15%。第一目标触发后了结50%仓位,剩余追求第二目标。"},
{"config_key": "TAKE_PROFIT_1_PERCENT", "config_value": "0.2", "config_type": "number", "category": "strategy",
"description": "分步止盈第一目标(保证金百分比,如 0.2=20%。2026-02-12 提高以改善盈亏比。"},
{"config_key": "MIN_RR_FOR_TP1", "config_value": "1.5", "config_type": "number", "category": "strategy",
"description": "第一目标止盈相对止损的最小盈亏比TP1 至少为止损距离的 1.5 倍。2026-02-12 新增。"},
{"config_key": "SCAN_EXTRA_SYMBOLS_FOR_SUPPLEMENT", "config_value": "8", "config_type": "number", "category": "scan",
"description": "智能补单:多返回的候选数量。当前 TOP_N 中部分因冷却等被跳过时,仍会尝试这批额外候选,避免无单可下。"},
{"config_key": "BETA_FILTER_ENABLED", "config_value": "true", "config_type": "boolean", "category": "strategy",

View File

@ -8,11 +8,12 @@ import './ConfigPanel.css' // 复用 ConfigPanel 的样式
// ConfigPanel ConfigItem
// 使 RSI 010024h 25 25% 01
const NUMBER_AS_IS_KEYS = new Set([
const NUMBER_AS_IS_KEYS = new Set([
'MAX_RSI_FOR_LONG',
'MIN_RSI_FOR_SHORT',
'MAX_CHANGE_PERCENT_FOR_LONG',
'MAX_CHANGE_PERCENT_FOR_SHORT',
'MIN_RR_FOR_TP1',
])
// 便
const KEY_LABELS = {
@ -27,6 +28,8 @@ const KEY_LABELS = {
SYMBOL_LOSS_COOLDOWN_SEC: '冷却时间(秒)',
RSI_EXTREME_REVERSE_ENABLED: 'RSI 极端反向(超买反空/超卖反多)',
RSI_EXTREME_REVERSE_ONLY_NEUTRAL_4H: 'RSI 反向仅允许 4H 中性',
MIN_RR_FOR_TP1: '第一目标最小盈亏比(相对止损)',
AUTO_TRADE_ALLOW_4H_NEUTRAL: '允许 4H 中性时自动交易',
}
const ConfigItem = ({ label, config, onUpdate, disabled }) => {
@ -354,58 +357,61 @@ const GlobalConfig = () => {
}
},
altcoin: {
name: '山寨币狙击(高盈亏比',
desc: '专为山寨币设计宽止损2.0倍ATR+12%固定、合理盈亏比3:1、移动止损保护利润、严格成交量过滤≥3000万美元。2026-01-27优化让收益率真实胜率正常化。期望胜率40%+盈亏比1.5:1+。',
name: '山寨币策略(当前推荐',
desc: '与 2026-02-12 策略一致4H 中性不自动交易、做多 RSI≤65、第一目标止盈 20%、止损 3×ATR、盈亏比 3:1、同品种连亏冷却。',
configs: {
// - 2026-01-27
ATR_STOP_LOSS_MULTIPLIER: 1.5, // ATR1.52026-01-27
STOP_LOSS_PERCENT: 12.0, // 12%
RISK_REWARD_RATIO: 3.0, // 3:1
ATR_TAKE_PROFIT_MULTIPLIER: 2.0, // ATR2.02026-01-27
TAKE_PROFIT_PERCENT: 20.0, // 20%
MIN_HOLD_TIME_SEC: 0, //
USE_FIXED_RISK_SIZING: true, //
FIXED_RISK_PERCENT: 1.0, // 1%
USE_DYNAMIC_ATR_MULTIPLIER: false, // 使ATR
// - 2026-01-27
USE_TRAILING_STOP: true, //
TRAILING_STOP_ACTIVATION: 20.0, // 20%
TRAILING_STOP_PROTECT: 10.0, // 10%
//
MAX_POSITION_PERCENT: 1.5, // 1.5%
MAX_TOTAL_POSITION_PERCENT: 12.0, // 12%
MAX_DAILY_ENTRIES: 8, // 8
MAX_OPEN_POSITIONS: 4, // 4
LEVERAGE: 8, // 8
MAX_LEVERAGE: 12, // 12
USE_DYNAMIC_LEVERAGE: false, // 使
//
MIN_VOLUME_24H: 30000000, // 24H3000
MIN_VOLUME_24H_STRICT: 50000000, // 5000
MIN_VOLATILITY: 3.0, // 3%
TOP_N_SYMBOLS: 8, // 8
MAX_SCAN_SYMBOLS: 250, // 25027.6%46.0%
MIN_SIGNAL_STRENGTH: 5, // 5MACD/
EXCLUDE_MAJOR_COINS: true, // BTCETHBNB
//
SCAN_INTERVAL: 1800, // 30
PRIMARY_INTERVAL: '4h', // 4
ENTRY_INTERVAL: '1h', // 1
CONFIRM_INTERVAL: '1d', // 线
//
SMART_ENTRY_ENABLED: true, //
ENTRY_SYMBOL_COOLDOWN_SEC: 1800, // 30
ENTRY_MAX_DRIFT_PCT_TRENDING: 0.8, // 0.8%
ENTRY_MAX_DRIFT_PCT_RANGING: 0.3, // 0.3%
//
AUTO_TRADE_ONLY_TRENDING: true, //
AUTO_TRADE_ALLOW_4H_NEUTRAL: true, // 4H+
//
ATR_STOP_LOSS_MULTIPLIER: 3.0, // 3×ATR
STOP_LOSS_PERCENT: 0.12,
RISK_REWARD_RATIO: 3.0, // 3:1
TAKE_PROFIT_1_PERCENT: 0.2, // 20%
TAKE_PROFIT_PERCENT: 0.30, // 30%
MIN_RR_FOR_TP1: 1.5, // 1.5
MIN_HOLD_TIME_SEC: 1800,
USE_FIXED_RISK_SIZING: true,
FIXED_RISK_PERCENT: 0.02, // 2%
USE_DYNAMIC_ATR_MULTIPLIER: false,
USE_TRAILING_STOP: true,
TRAILING_STOP_ACTIVATION: 0.20,
TRAILING_STOP_PROTECT: 0.10,
MAX_POSITION_PERCENT: 0.08,
MAX_TOTAL_POSITION_PERCENT: 0.40,
MAX_DAILY_ENTRIES: 8,
MAX_OPEN_POSITIONS: 4,
LEVERAGE: 10,
MAX_LEVERAGE: 15,
USE_DYNAMIC_LEVERAGE: true,
MIN_VOLUME_24H: 10000000,
MIN_VOLATILITY: 0.02,
TOP_N_SYMBOLS: 20,
MAX_SCAN_SYMBOLS: 500,
MIN_SIGNAL_STRENGTH: 8,
EXCLUDE_MAJOR_COINS: true,
SCAN_EXTRA_SYMBOLS_FOR_SUPPLEMENT: 15,
SCAN_INTERVAL: 1800,
PRIMARY_INTERVAL: '1h',
ENTRY_INTERVAL: '15m',
CONFIRM_INTERVAL: '4h',
AUTO_TRADE_ONLY_TRENDING: true,
AUTO_TRADE_ALLOW_4H_NEUTRAL: false, // 4H
MAX_RSI_FOR_LONG: 65, //
MIN_RSI_FOR_SHORT: 30,
MAX_CHANGE_PERCENT_FOR_LONG: 25,
MAX_CHANGE_PERCENT_FOR_SHORT: 10,
SYMBOL_LOSS_COOLDOWN_ENABLED: true,
SYMBOL_MAX_CONSECUTIVE_LOSSES: 2,
SYMBOL_LOSS_COOLDOWN_SEC: 3600,
BETA_FILTER_ENABLED: true,
BETA_FILTER_THRESHOLD: -0.005,
ENTRY_SHORT_TREND_FILTER_ENABLED: true,
MAX_TREND_MOVE_BEFORE_ENTRY: 0.05,
},
},
aggressive: {
@ -452,15 +458,17 @@ const GlobalConfig = () => {
//
const KNOWN_GLOBAL_CONFIG_DEFAULTS = {
MAX_RSI_FOR_LONG: { value: 70, type: 'number', category: 'strategy', description: '做多时 RSI 超过此值则不开多(避免超买区追多。2026-01-31新增。' },
MAX_RSI_FOR_LONG: { value: 65, type: 'number', category: 'strategy', description: '做多时 RSI 超过此值则不开多(2026-02-1265 避免追高)。' },
MAX_CHANGE_PERCENT_FOR_LONG: { value: 25, type: 'number', category: 'strategy', description: '做多时 24h 涨跌幅超过此值则不开多(避免追大涨)。单位:百分比数值,如 25 表示 25%。' },
MIN_RSI_FOR_SHORT: { value: 30, type: 'number', category: 'strategy', description: '做空时 RSI 低于此值则不做空避免深超卖反弹。2026-01-31新增。' },
MAX_CHANGE_PERCENT_FOR_SHORT: { value: 10, type: 'number', category: 'strategy', description: '做空时 24h 涨跌幅超过此值则不做空24h 仍大涨时不做空)。单位:百分比数值。' },
TAKE_PROFIT_1_PERCENT: { value: 0.15, type: 'number', category: 'strategy', description: '分步止盈第一目标(保证金百分比,如 0.15=15%。第一目标触发后了结50%仓位。' },
TAKE_PROFIT_1_PERCENT: { value: 0.2, type: 'number', category: 'strategy', description: '分步止盈第一目标(保证金百分比,如 0.2=20%。2026-02-12 提高以改善盈亏比。' },
SCAN_EXTRA_SYMBOLS_FOR_SUPPLEMENT: { value: 8, type: 'number', category: 'scan', description: '智能补单:多返回的候选数量,冷却时仍可尝试后续交易对。' },
SYMBOL_LOSS_COOLDOWN_ENABLED: { value: true, type: 'boolean', category: 'strategy', description: '是否启用同一交易对连续亏损后的冷却。' },
SYMBOL_MAX_CONSECUTIVE_LOSSES: { value: 2, type: 'number', category: 'strategy', description: '最大允许连续亏损次数(超过则禁止交易该交易对一段时间)。' },
SYMBOL_LOSS_COOLDOWN_SEC: { value: 3600, type: 'number', category: 'strategy', description: '连续亏损后的冷却时间默认1小时。' },
MIN_RR_FOR_TP1: { value: 1.5, type: 'number', category: 'strategy', description: '第一目标止盈相对止损的最小盈亏比(如 1.5 表示 TP1 至少为止损距离的 1.5 倍。2026-02-12 新增。' },
AUTO_TRADE_ALLOW_4H_NEUTRAL: { value: false, type: 'boolean', category: 'strategy', description: '是否允许 4H 趋势为中性时自动交易。关闭可减少震荡扫损、提升质量(建议关闭)。' },
BETA_FILTER_ENABLED: { value: true, type: 'boolean', category: 'strategy', description: '大盘共振过滤BTC/ETH 下跌时屏蔽多单。' },
BETA_FILTER_THRESHOLD: { value: -0.005, type: 'number', category: 'strategy', description: '大盘共振阈值(比例,如 -0.005 表示 -0.5%)。' },
RSI_EXTREME_REVERSE_ENABLED: { value: false, type: 'boolean', category: 'strategy', description: '开启后:原信号做多但 RSI 超买(≥做多上限)时改为做空;原信号做空但 RSI 超卖(≤做空下限)时改为做多。属均值回归思路,可填补超买超卖时不下单的空置;默认关闭。' },
@ -470,9 +478,9 @@ const GlobalConfig = () => {
TRAILING_STOP_ACTIVATION: { value: 0.20, type: 'number', category: 'risk', description: '移动止损激活阈值(盈利达到此比例后激活,如 20.0=20%)。' },
TRAILING_STOP_PROTECT: { value: 0.10, type: 'number', category: 'risk', description: '移动止损保护阈值(回撤至此比例时触发止损,如 10.0=10%)。' },
LEVERAGE: { value: 5, type: 'number', category: 'risk', description: '基础杠杆倍数。' },
RISK_REWARD_RATIO: { value: 1.5, type: 'number', category: 'risk', description: '盈亏比目标(用于计算动态止盈止损)。' },
RISK_REWARD_RATIO: { value: 3, type: 'number', category: 'risk', description: '盈亏比目标(用于计算动态止盈止损,建议 3:1)。' },
ATR_TAKE_PROFIT_MULTIPLIER: { value: 1.5, type: 'number', category: 'risk', description: 'ATR 止盈倍数。' },
ATR_STOP_LOSS_MULTIPLIER: { value: 2.5, type: 'number', category: 'risk', description: 'ATR 止损倍数。' },
ATR_STOP_LOSS_MULTIPLIER: { value: 3, type: 'number', category: 'risk', description: 'ATR 止损倍数2026-02-123 减少噪音止损)。' },
USE_FIXED_RISK_SIZING: { value: false, type: 'boolean', category: 'risk', description: '是否使用固定风险仓位计算(基于止损距离和账户余额)。' },
FIXED_RISK_PERCENT: { value: 0.01, type: 'number', category: 'risk', description: '每笔交易固定风险百分比(如 0.01=1%)。' },
MAX_LEVERAGE_SMALL_CAP: { value: 3, type: 'number', category: 'risk', description: '小市值/山寨币最大允许杠杆。' },
@ -971,41 +979,25 @@ const GlobalConfig = () => {
}
const presetUiMeta = {
altcoin: { group: 'altcoin', tag: '山寨币专用' },
swing: { group: 'limit', tag: '纯限价' },
strict: { group: 'limit', tag: '纯限价' },
fill: { group: 'smart', tag: '智能入场' },
steady: { group: 'smart', tag: '智能入场' },
conservative: { group: 'legacy', tag: '传统' },
balanced: { group: 'legacy', tag: '传统' },
aggressive: { group: 'legacy', tag: '高频实验' },
script_v1: { group: 'legacy', tag: '脚本迁移' },
altcoin: { group: 'altcoin', tag: '当前推荐' },
swing: { group: 'backup', tag: '纯限价' },
strict: { group: 'backup', tag: '精选低频' },
conservative: { group: 'backup', tag: '保守' },
}
// + /
const presetGroups = [
{
key: 'altcoin',
title: '⭐ 山寨币高盈亏比狙击策略',
desc: '专为山寨币设计宽止损2.0×ATR+ 高盈亏比4:1+ 移动止损 + 严格流动性筛选。目标胜率35%,期望值+0.75%/笔。',
title: '当前推荐 · 山寨币策略',
desc: '与当前策略一致4H 中性不自动交易、做多 RSI≤65、第一目标止盈 20%、止损 3×ATR、盈亏比 3:1、同品种连亏冷却。',
presetKeys: ['altcoin'],
},
{
key: 'limit',
title: 'A. 纯限价SMART_ENTRY_ENABLED=false',
desc: '只下 1 次限价单,未在确认时间内成交就撤单跳过。更控频、更接近"波段",但更容易出现 NEW→撤单。',
presetKeys: ['swing', 'strict'],
},
{
key: 'smart',
title: 'B. 智能入场SMART_ENTRY_ENABLED=true',
desc: '限价回调 + 受限追价 +(趋势强时)可控市价兜底。更少漏单,但必须限制追价步数与偏离上限,避免回到高频追价。',
presetKeys: ['fill', 'steady'],
},
{
key: 'legacy',
title: 'C. 传统 / 实验(不建议长期)',
desc: '这组更多用于对比或临时实验(频率更高/更容易过度交易),建议在稳定盈利前谨慎使用。',
presetKeys: ['conservative', 'balanced', 'aggressive', 'script_v1'],
key: 'backup',
title: '备选方案(纯限价 / 保守)',
desc: '需要更少出单或纯限价时可选:波段回归、精选低频、保守传统。',
presetKeys: ['swing', 'strict', 'conservative'],
},
]
@ -1157,16 +1149,16 @@ const GlobalConfig = () => {
</div>
</div>
<div className="preset-guide">
<div className="preset-guide-title">怎么选更不迷糊</div>
<div className="preset-guide-title">使用说明</div>
<ul className="preset-guide-list">
<li>
<strong>先选入场机制</strong>纯限价更控频但可能撤单 vs 智能入场更少漏单但需限制追价
<strong>日常使用</strong>山寨币策略当前推荐即可已与当前策略4H 中性关闭RSI/止盈/止损/盈亏比对齐
</li>
<li>
<strong>再看"会不会下单"</strong>如果你发现几乎不出单优先把 <code>AUTO_TRADE_ONLY_TRENDING</code> 关掉<code>AUTO_TRADE_ALLOW_4H_NEUTRAL</code> 打开
<strong>若几乎不出单</strong>可临时<code>AUTO_TRADE_ALLOW_4H_NEUTRAL</code> 打开会增加 4H 震荡单信号质量下降
</li>
<li>
<strong>最后再微调</strong>想更容易成交 调小 <code>LIMIT_ORDER_OFFSET_PCT</code>调大 <code>ENTRY_CONFIRM_TIMEOUT_SEC</code>
<strong>要更少出单</strong>选备选里的波段回归精选低频
</li>
</ul>
</div>

View File

@ -206,11 +206,11 @@ def _get_trading_config():
'STOP_LOSS_PERCENT': 0.05, # 基础止损5%配合ATR动态止损作为保底
'TAKE_PROFIT_PERCENT': 0.80, # 第二目标止盈80%(追求大趋势收益)
'TAKE_PROFIT_1_PERCENT': 0.30, # 第一目标止盈30%确保3:1盈亏比
'MIN_RR_FOR_TP1': 1.2, # 第一目标止盈的最小盈亏比(相对于止损距离
'MIN_RR_FOR_TP1': 1.5, # 第一目标止盈的最小盈亏比(相对于止损距离2026-02-121.5 改善盈亏比
'MIN_STOP_LOSS_PRICE_PCT': 0.025, # 最小止损价格变动2.5%
'MIN_TAKE_PROFIT_PRICE_PCT': 0.02, # 最小止盈价格变动2%
'USE_ATR_STOP_LOSS': True, # 使用ATR动态止损
'ATR_STOP_LOSS_MULTIPLIER': 2.0, # ATR止损倍数2.0(放宽止损,适应山寨币高波动
'ATR_STOP_LOSS_MULTIPLIER': 3.0, # ATR止损倍数3.02026-02-12减少噪音止损配合止盈拉远
'ATR_TAKE_PROFIT_MULTIPLIER': 6.0, # ATR止盈倍数6.0(追求更高盈亏比)
'RISK_REWARD_RATIO': 3.0, # 盈亏比3:1
'ATR_PERIOD': 14, # ATR计算周期14
@ -239,7 +239,7 @@ def _get_trading_config():
'BETA_FILTER_ENABLED': True, # 大盘共振过滤BTC/ETH下跌时屏蔽多单
'BETA_FILTER_THRESHOLD': -0.005, # -0.5%2026-01-27优化更敏感地过滤大盘风险15分钟内跌幅超过0.5%即屏蔽多单)
# ===== RSI / 24h 涨跌幅过滤(避免追高杀跌)=====
'MAX_RSI_FOR_LONG': 70, # 做多时 RSI 超过此值则不开多(避免超买区追多
'MAX_RSI_FOR_LONG': 65, # 做多时 RSI 超过此值则不开多2026-02-1265 避免追高
'MAX_CHANGE_PERCENT_FOR_LONG': 25, # 做多时 24h 涨跌幅超过此值则不开多(避免追大涨)
'MIN_RSI_FOR_SHORT': 30, # 做空时 RSI 低于此值则不做空(避免深超卖反弹)
'MAX_CHANGE_PERCENT_FOR_SHORT': 10, # 做空时 24h 涨跌幅超过此值则不做空24h 仍大涨时不做空)

View File

@ -614,7 +614,7 @@ class PositionManager:
# 分步止盈(基于"实际成交价 + 已计算的止损/止盈"
# ⚠️ 第一目标使用 TAKE_PROFIT_1_PERCENT默认15%),与第二目标 TAKE_PROFIT_PERCENT 分离,提高整体盈亏比
# 第一目标和触发条件必须一致,都使用 TAKE_PROFIT_1_PERCENT
take_profit_1_pct_margin = config.TRADING_CONFIG.get('TAKE_PROFIT_1_PERCENT', 0.15)
take_profit_1_pct_margin = config.TRADING_CONFIG.get('TAKE_PROFIT_1_PERCENT', 0.20)
# 兼容百分比形式和比例形式
if take_profit_1_pct_margin is not None and take_profit_1_pct_margin > 1:
take_profit_1_pct_margin = take_profit_1_pct_margin / 100.0
@ -628,7 +628,7 @@ class PositionManager:
# ⚠️ 2026-02-10优化确保TP1至少有 1.2倍 的盈亏比 (相对于止损距离)
# 避免在高波动(宽止损)情况下,固定保证金比例止盈导致盈亏比过低
if stop_distance_for_tp is not None and stop_distance_for_tp > 0:
min_rr_for_tp1 = config.TRADING_CONFIG.get('MIN_RR_FOR_TP1', 1.2)
min_rr_for_tp1 = config.TRADING_CONFIG.get('MIN_RR_FOR_TP1', 1.5)
min_tp1_distance = stop_distance_for_tp * min_rr_for_tp1
if min_tp1_distance > tp1_distance:
logger.info(f"{symbol} [优化] TP1距离 ({tp1_distance:.4f}) 小于 {min_rr_for_tp1}倍止损距离 ({min_tp1_distance:.4f}),已自动调整以保证盈亏比")
@ -1815,7 +1815,7 @@ class PositionManager:
# ✅ 已移除时间锁限制,可以立即执行
if not partial_profit_taken and take_profit_1 is not None:
# 直接使用配置的 TAKE_PROFIT_1_PERCENT与开仓时计算的第一目标一致
take_profit_1_pct_margin_config = config.TRADING_CONFIG.get('TAKE_PROFIT_1_PERCENT', 0.15)
take_profit_1_pct_margin_config = config.TRADING_CONFIG.get('TAKE_PROFIT_1_PERCENT', 0.20)
# 兼容百分比形式和比例形式
if take_profit_1_pct_margin_config > 1:
take_profit_1_pct_margin_config = take_profit_1_pct_margin_config / 100.0
@ -3288,7 +3288,7 @@ class PositionManager:
# 第一目标TAKE_PROFIT_1_PERCENT 止盈默认15%保证金了结50%仓位
if not partial_profit_taken and take_profit_1 is not None:
# 直接使用配置的 TAKE_PROFIT_1_PERCENT与开仓时计算的第一目标一致
take_profit_1_pct_margin_config = config.TRADING_CONFIG.get('TAKE_PROFIT_1_PERCENT', 0.15)
take_profit_1_pct_margin_config = config.TRADING_CONFIG.get('TAKE_PROFIT_1_PERCENT', 0.20)
# 兼容百分比形式和比例形式
if take_profit_1_pct_margin_config > 1:
take_profit_1_pct_margin_config = take_profit_1_pct_margin_config / 100.0
@ -3300,7 +3300,7 @@ class PositionManager:
min_profit_margin = 2.0
if pnl_percent_margin >= take_profit_1_pct_margin and pnl_percent_margin > min_profit_margin:
take_profit_pct_config = config.TRADING_CONFIG.get('TAKE_PROFIT_1_PERCENT', 0.15)
take_profit_pct_config = config.TRADING_CONFIG.get('TAKE_PROFIT_1_PERCENT', 0.20)
if take_profit_pct_config > 1:
take_profit_pct_config = take_profit_pct_config / 100.0
take_profit_pct_display = take_profit_pct_config * 100