2025年8月2日 14:11

This commit is contained in:
2025-08-02 14:11:33 +00:00
parent 60cb8710c7
commit 73c9899309

View File

@@ -26,16 +26,6 @@ xau_dist = input.float(3.5, title='XAUUSD MA200 距离阈值', minval=0.1, step=
eth_dist = input.float(9.0, title='ETHUSD MA200 距离阈值', minval=0.1, step=0.1, group='Distance')
gbp_dist = input.float(0.3, title='GBPJPY MA200 距离阈值', minval=0.1, step=0.1, group='Distance')
// ═════════ Binance加密货币距离阈值 ════════
binance_btc_dist = input.float(500.0, title='Binance BTCUSDT MA200 距离阈值', minval=0.1, step=0.1, group='Distance')
binance_eth_dist = input.float(15.0, title='Binance ETHUSDT MA200 距离阈值', minval=0.1, step=0.1, group='Distance')
binance_bnb_dist = input.float(5.0, title='Binance BNBUSDT MA200 距离阈值', minval=0.1, step=0.1, group='Distance')
binance_ada_dist = input.float(0.02, title='Binance ADAUSDT MA200 距离阈值', minval=0.001, step=0.001, group='Distance')
binance_sol_dist = input.float(3.0, title='Binance SOLUSDT MA200 距离阈值', minval=0.1, step=0.1, group='Distance')
binance_dot_dist = input.float(0.2, title='Binance DOTUSDT MA200 距离阈值', minval=0.01, step=0.01, group='Distance')
binance_avax_dist = input.float(0.8, title='Binance AVAXUSDT MA200 距离阈值', minval=0.01, step=0.01, group='Distance')
binance_matic_dist = input.float(0.03, title='Binance MATICUSDT MA200 距离阈值', minval=0.001, step=0.001, group='Distance')
flatness_period = input.int(20, title='MA200 波动回看周期', minval=1, group='Distance')
flatness_threshold = input.float(0.5, title='MA200 平坦度阈值', minval=0.01, step=0.01, group='Distance')
oscillation_bars = input.int(10, title='价格波动回看周期', minval=1, group='Distance')
@@ -49,16 +39,6 @@ xau_r1s1_dist = input.float(3.5, title='XAUUSD R1/S1 距离阈值', minval=0.1,
eth_r1s1_dist = input.float(9.0, title='ETHUSD R1/S1 距离阈值', minval=0.1, step=0.1, group='R1S1Distance')
gbp_r1s1_dist = input.float(0.3, title='GBPJPY R1/S1 距离阈值', minval=0.1, step=0.1, group='R1S1Distance')
// ═════════ Binance加密货币R1/S1距离阈值 ════════
binance_btc_r1s1_dist = input.float(500.0, title='Binance BTCUSDT R1/S1 距离阈值', minval=0.1, step=0.1, group='R1S1Distance')
binance_eth_r1s1_dist = input.float(15.0, title='Binance ETHUSDT R1/S1 距离阈值', minval=0.1, step=0.1, group='R1S1Distance')
binance_bnb_r1s1_dist = input.float(5.0, title='Binance BNBUSDT R1/S1 距离阈值', minval=0.1, step=0.1, group='R1S1Distance')
binance_ada_r1s1_dist = input.float(0.02, title='Binance ADAUSDT R1/S1 距离阈值', minval=0.001, step=0.001, group='R1S1Distance')
binance_sol_r1s1_dist = input.float(3.0, title='Binance SOLUSDT R1/S1 距离阈值', minval=0.1, step=0.1, group='R1S1Distance')
binance_dot_r1s1_dist = input.float(0.2, title='Binance DOTUSDT R1/S1 距离阈值', minval=0.01, step=0.01, group='R1S1Distance')
binance_avax_r1s1_dist = input.float(0.8, title='Binance AVAXUSDT R1/S1 距离阈值', minval=0.01, step=0.01, group='R1S1Distance')
binance_matic_r1s1_dist = input.float(0.03, title='Binance MATICUSDT R1/S1 距离阈值', minval=0.001, step=0.001, group='R1S1Distance')
// ═════════ K线标记配置 ════════
signalSet = input(false, '═════════ Signal Marks Configuration ════════')
show_long_marks = input.bool(true, title='显示做多标记', group='Signals')
@@ -93,11 +73,6 @@ show_volume_debug = input.bool(true, title='显示成交量调试信息', group=
srbr_vol_divisor = input.float(2.5, title='SRBR成交量除数', minval=1.0, maxval=5.0, step=0.1, tooltip='参考SRBR源代码的Vol/2.5逻辑', group='VolumeFilter')
volume_lookback_period = input.int(25, title='成交量回看周期', minval=5, maxval=50, tooltip='用于计算成交量梯度和阈值', group='VolumeFilter')
// ═════════ 交易对特定成交量参数 ════════
crypto_vol_multiplier = input.float(1.5, title='加密货币成交量倍数', minval=0.5, maxval=3.0, step=0.1, tooltip='加密货币通常需要更高的成交量阈值', group='VolumeFilter')
forex_vol_multiplier = input.float(1.0, title='外汇成交量倍数', minval=0.5, maxval=3.0, step=0.1, tooltip='外汇市场的标准成交量倍数', group='VolumeFilter')
commodity_vol_multiplier = input.float(1.2, title='商品成交量倍数', minval=0.5, maxval=3.0, step=0.1, tooltip='商品市场的成交量倍数', group='VolumeFilter')
// ═════════ 价格标签配置 ════════
labelSet = input(false, '═════════ Price Labels Configuration ════════')
show_mean_label = input.bool(true, title='显示MEAN价格标签', group='Labels')
@@ -155,25 +130,6 @@ table_position = input.string('top_right', title='表格位置', options=['top_l
// 辅助函数定义
//************************************************************************************************************
// ═════════ 交易对特定成交量参数获取函数 ════════
get_volume_multiplier() =>
sym = ticker.standard(syminfo.tickerid)
if str.contains(sym, "BINANCE:")
crypto_vol_multiplier // Binance 加密货币使用加密货币倍数
else if str.contains(sym, "XAUUSD") or str.contains(sym, "XAGUSD")
commodity_vol_multiplier // 贵金属使用商品倍数
else
forex_vol_multiplier // 其他使用外汇倍数
get_min_volume_ratio() =>
sym = ticker.standard(syminfo.tickerid)
if str.contains(sym, "BINANCE:")
0.4 // 加密货币使用较高的最小比率
else if str.contains(sym, "XAUUSD") or str.contains(sym, "XAGUSD")
0.35 // 贵金属使用中等比率
else
0.3 // 外汇使用标准比率
// ═════════ 成交量分析函数(改进版本) ════════
// Delta Volume Function - 区分买卖成交量
upAndDownVolume() =>
@@ -207,18 +163,14 @@ get_volume_filter() =>
vol_range = vol_hi - vol_lo
vol_mid = (vol_hi + vol_lo) / 2
// 获取交易对特定的成交量参数
symbol_vol_multiplier = get_volume_multiplier()
symbol_min_vol_ratio = get_min_volume_ratio()
// 根据1-5级过滤等级调整阈值参考SRBR的分层逻辑
threshold_multiplier = switch volume_filter_level
1 => symbol_vol_multiplier * 0.6 // 1级最温和只过滤极明显的假信号
2 => symbol_vol_multiplier * 0.8 // 2级温和过滤明显假信号
3 => symbol_vol_multiplier * 1.0 // 3级中等标准过滤
4 => symbol_vol_multiplier * 1.3 // 4级严格较强过滤
5 => symbol_vol_multiplier * 1.6 // 5级最严格最强过滤
=> symbol_vol_multiplier
1 => vol_multiplier * 0.6 // 1级最温和只过滤极明显的假信号
2 => vol_multiplier * 0.8 // 2级温和过滤明显假信号
3 => vol_multiplier * 1.0 // 3级中等标准过滤
4 => vol_multiplier * 1.3 // 4级严格较强过滤
5 => vol_multiplier * 1.6 // 5级最严格最强过滤
=> vol_multiplier
vol_threshold = vol_avg * threshold_multiplier
@@ -228,7 +180,7 @@ get_volume_filter() =>
if volume_filter_level == 1
// 1级最温和过滤只要成交量方向正确且不是极低成交量
min_volume_threshold = vol_avg * symbol_min_vol_ratio
min_volume_threshold = vol_avg * min_volume_ratio
long_volume_ok := Vol > 0 and vol_abs > min_volume_threshold
short_volume_ok := Vol < 0 and vol_abs > min_volume_threshold
else if volume_filter_level == 2
@@ -318,48 +270,26 @@ volume_trend_confirmation(signal_type) =>
else
volume_strength and (vol_adjusted > vol_hi * 0.7 or vol_adjusted < vol_lo * 1.3)
// ═════════ 距离阈值切换参考原MA200代码新增Binance支持 ════════
// ═════════ 距离阈值切换参考原MA200代码 ════════
get_distance_threshold() =>
sym = ticker.standard(syminfo.tickerid)
switch sym
// TICKMILL 交易对
'TICKMILL:BTCUSD' => btc_dist
'TICKMILL:XAUUSD' => xau_dist
'TICKMILL:ETHUSD' => eth_dist
'TICKMILL:GBPJPY' => gbp_dist
// Binance 加密货币交易对
'BINANCE:BTCUSDT' => binance_btc_dist
'BINANCE:ETHUSDT' => binance_eth_dist
'BINANCE:BNBUSDT' => binance_bnb_dist
'BINANCE:ADAUSDT' => binance_ada_dist
'BINANCE:SOLUSDT' => binance_sol_dist
'BINANCE:DOTUSDT' => binance_dot_dist
'BINANCE:AVAXUSDT' => binance_avax_dist
'BINANCE:MATICUSDT' => binance_matic_dist
=> default_dist
// ═════════ R1/S1距离阈值切换新增Binance支持 ════════
// ═════════ R1/S1距离阈值切换 ════════
get_r1s1_distance_threshold() =>
sym = ticker.standard(syminfo.tickerid)
switch sym
// TICKMILL 交易对
'TICKMILL:BTCUSD' => btc_r1s1_dist
'TICKMILL:XAUUSD' => xau_r1s1_dist
'TICKMILL:ETHUSD' => eth_r1s1_dist
'TICKMILL:GBPJPY' => gbp_r1s1_dist
// Binance 加密货币交易对
'BINANCE:BTCUSDT' => binance_btc_r1s1_dist
'BINANCE:ETHUSDT' => binance_eth_r1s1_dist
'BINANCE:BNBUSDT' => binance_bnb_r1s1_dist
'BINANCE:ADAUSDT' => binance_ada_r1s1_dist
'BINANCE:SOLUSDT' => binance_sol_r1s1_dist
'BINANCE:DOTUSDT' => binance_dot_r1s1_dist
'BINANCE:AVAXUSDT' => binance_avax_r1s1_dist
'BINANCE:MATICUSDT' => binance_matic_r1s1_dist
=> default_r1s1_dist
// 这些函数已移动到更早的位置
// ═════════ 表格文字大小转换 ════════
get_text_size() =>
switch table_text_size
@@ -2278,8 +2208,4 @@ if barstate.islast
// - 2级温和过滤明显假信号
// - 3级中等标准过滤强度
// - 4级严格较强过滤
// - 5级最严格参考SRBR高低成交量阈值
// ✓ 多交易所支持系统
// - TICKMILL: BTCUSD, XAUUSD, ETHUSD, GBPJPY
// - BINANCE: BTCUSDT, ETHUSDT, BNBUSDT, ADAUSDT, SOLUSDT, DOTUSDT, AVAXUSDT, MATICUSDT
// - 自动识别交易对类型并应用相应的成交量和距离参数
// - 5级最严格参考SRBR高低成交量阈值