疯者不惑 发表于 2026-9-13 03:26:32

【SuperTrend超级趋势(反转过滤版) 】超级趋势只是名字。真逻辑是箱体突破 + 多重过滤

这款EA,网上发的已有很多版本,下面再讲下这EA,按模块拆开说:

1. 它真实是什么策略
名字虽然写 超级趋,但其实代码全文没有任何 ATR / SuperTrend 线计算。它是一套箱体(区间)高抛低吸 + 轻微突破偏置的策略:在 N 根 K 线的价格箱体内,贴近下沿(支撑)时买、贴近上沿(阻力)时平;同时用"价格已突破近 66 根 K 线最低点"做一点趋势方向偏置。每个品种/图表同一时刻只持有 1 张同向单。

2. 入场逻辑(函数 pojie_5 = 开多,约第 675–798 行)
逐条条件(开多为例):

交易时段:StartHour:StartMinute ~ StopHour:StopMinute(默认 0:00–24:00,等于不限制);周五另有 FridayProhibitStartHour(默认 24=关闭)。
无同单:遍历 OrdersTotal,存在同 MAGIC=8888888、同品种、同类型(OP_BUY)的挂单就 return,保证单仓。
止损价:取 SLPeriod(66) 内最低价 子_2_do,再夹到区间 ,即 MinSL=25、MaxSL=1500 点之间。
止盈价:子_4_do = 2×子_1_do − 子_2_do(区间最高×2 − 最低),是个偏远的固定 TP。
手数:Lots<=0 用 InitLots=0.01;否则按净值缩放 Lots/BasicEquity(300)×AccountEquity(),再夹在平台 min/max 内。
趋势偏置:Close − 66根最低 > TrendGap(60)×PointX(10)×Point 才给多单放行(价格已偏离近期底部)。
箱体位置过滤(pojie_9(0)):见第 4 节。
其它闸门:Bid < Close + 2×PointX×Point(不追暴涨)、MarketInfo(Symbol,13) 点差 < Spread(3)×PointX(点差校验)。
全部满足才 OrderSend(OP_BUY, ...,SL,TP,...),且 SL/TP 是真实发给券商的。
3. 出场逻辑(pojie_7 = 平多,约第 920–1054 行;pojie_8 = 平空对称)
三种平仓,按顺序:

反转出场(默认关):UseReversalExit 且 IsTrend(1) 且检测到 RSI 顶背离 + 头肩顶形态 + 放量破颈线 → 平多。
箱体平仓水平:当 Close > OSC(9) 上一根最高 且"位置百分比 > −(100−LongCloseLevel=88) = −12"(即价格已到箱体上沿 12% 内)→ 平多。这正对应"到阻力位获利了结"。
盈利平仓:若持仓平均每张利润 > ProfitPoint(20)×10 = 200 点 → 平。
ExitSelect=1(立即出场) 每 tick 检查;=0(下根K线出场) 用 总_3_do!=Bars 门控只在换新 K 线时跑。

4. 核心:"箱体位置百分比"算法(pojie_9,约第 1193–1225 行)
子_3 = 9根最高(当根)   子_4 = 9根最低(当根)
子_7 = (子_3 − Close) × (−100) ÷ (子_3 − 子_4)
含义:现价在箱体顶部→0,在底部→−100。

开多:子_7 < LongEntryLevel(10)−100 = −90 → 现价落在箱体最底下 10%(贴近支撑)才买;且 Close < 子_6(低于上一根最低)。
开空:对称,子_7 > −ShortEntryLevel(−90) → 现价在箱体最顶上 10%(贴近阻力)才空。
配合 OSCGap(12)×PointX×Point 的间距门槛,避免箱体太扁时乱开。
这就是整套策略的"灵魂":箱体底部买、顶部卖。

以下为新增:
5. 反转三重过滤(默认全关,需手动开)
IsTrend(dir):最近 RevTrendBars(8) 根收盘价逐级同向,且 SMA20 斜率同向。
DetectDivergence():RevLookback(50) 内取 RSI(14),找"价格更高/RSI 更低"的两次摆动高=顶背离(返1),或"价格更低/RSI 更高"的两次摆动低=底背离(返−1)。
DetectReversalPattern():识别吞没 / 孕线 / 三 K 线反转,返回颈线价位与多空方向。
CheckBreakAndVolume():现价突破颈线且 Volume > 20根均量 × RevVolumeMult(1.5) 才确认。
开仓时(UseReversalFilter)用于阻止反向反转单;持仓时(UseReversalExit)用于主动离场。
6. 斐波那契过滤(默认关)
CalculateFiboSignal():在 [斐波那契取值K线开始=1, 结束=20] 区间取最高/最低,算 23.6% / 76.4% 两条水平。现价 > 76.4% → 看空(−1),< 23.6% → 看多(+1),中间无信号。若 新闻开单模式=ToAvoidNews,则当根或上一根 K 线振幅 ≥ 单根K线波动点数(500)×Point 时抑制信号(规避数据/新闻波动)。开仓处 if(启用斐波那契信号过滤 && Fibo_Signal != 1) return; 强制方向一致。

7. 多品种自动缩放(默认开)
DetectInstrumentType() 把品种映射到 0–7(XAUUSD/XAGUSD/USDJPY/USOIL/NAS100/GBPJPY/BTCUSD/XNGUSD)。CalcPipMultiplier() / CalcProfitScale() 给出每品种的点值与点距倍数,ApplyInstrumentScaling() 把 TrendGap / OSCGap / MinSL / MaxSL / Spread / ProfitPoint / 利润锁定 / 追踪止损 全部按倍数缩放。所以同一套输入参数挂不同品种会自动适配(XAUUSD 不缩放,其它按属性放大/缩小),OnInit 里打印调试信息。
本EA本人默认参数试跑段时间,准确率时好时差。综合结果还是正向盈利的,有兴趣的,可以下载继续优化调整参数。或许能跑出更好结果!小白请勿下载,不懂修改代码的请勿下!谢谢

kastcn 发表于 2026-9-13 09:49:21

改改就可以收币了[微笑]

ly84520681 发表于 2026-9-13 17:11:03

看起来可以寄哦

Op_Bailey 发表于 5 天前

说明里写默认参数试跑,参数图的 InitLots 是0.01,但7月历史图里可见的单子都是0.50手。想确认这张记录对应当前附件哪个版本、什么手数设置,账户是美元还是美分?方便补一下完整统计起止日期、总交易数和最大净值回撤吗?这样才能把这张盈利记录和附件参数对应起来。

yxwbox 发表于 5 天前

这个版本和原始版本比较,改了什么成为反转过滤了?
页: [1]
查看完整版本: 【SuperTrend超级趋势(反转过滤版) 】超级趋势只是名字。真逻辑是箱体突破 + 多重过滤