该专家顾问是一个多策略系统,分为四个独立的交易子系统(周期1至周期4)。每个周期均采用各自的魔术号、指标、入场触发条件以及独特的资金管理参数。
1. 周期1逻辑:多指标汇聚
周期1依赖于一个复合过滤器,该过滤器结合了最多三条移动平均线(MA)、相对强弱指数(RSI)以及威廉姆斯百分比范围(WPR)。
入场触发条件
核心变量 c1_signal 作为二进制寄存器,确保指标之间不会发生冲突。如果指标 A 发出买入信号,c1_signal 将变为 1;如果随后指标 B 发出卖出信号,c1_signal 将重置为 0 以取消该交易。
-
移动平均线 1、2 和 3:
-
买入条件: 前一根K线收盘价高于移动平均线,且当前K线开盘价高于移动平均线($Close[1] > MA$ 且$Open[0] > MA$)。
-
卖出条件: 前一根K线收盘价低于移动平均线,且当前K线开盘价低于移动平均线($Close[1] < MA$ 且$Open[0] < MA$)。
-
-
RSI 过滤器:
-
买入条件: RSI 跌破超卖阈值(RSI_Buy_Level,例如 30)。
-
卖出条件: RSI 升至超买阈值(RSI_Sell_Level,例如 70)之上。
-
-
WPR 过滤器:
-
买入条件: WPR跌破 WPR_Buy_Level(例如 -80)。
-
卖出条件: WPR 升至 WPR_Sell_Level 以上(例如 -20)。
-
信号处理
-
反向信号规则: 若 Reverse_Signals = true,则最终的买入信号(1)将转换为卖出信号(2),反之亦然。
-
每根K线仅执行一次交易限制: EA会检查当前开盘价是否与 c1_open_price 匹配。若匹配,则表示该K线已处理过仓位,后续执行将被阻止,直至新K线开启。
2. 循环 2 逻辑:包络线趋势跟踪
周期 2 采用经典的双带包络线指标来描绘市场的结构性突破。
-
买入触发条件: 前一根K线收盘价位于上包络带上方,且当前K线开盘价也位于其上方($Close[1] > UpperBand$ 且$Open[0] > UpperBand$)。这表明存在强劲的看涨动能突破。
-
卖出触发条件: 前一根K线收盘价位于下包络线下方,且当前K线开盘价位于该线下方($Close[1] < LowerBand$ 且$Open[0] < LowerBand$),表明出现看跌破位。
-
信号反转: 若 Reverse_Signals2 = true,则将突破信号反转为假突破陷阱(对跌破/突破信号进行反向操作)。
3. 周期 3 逻辑:包络线均值回归
周期 3 采用与周期 2 相同的参数,但反转了默认的基准执行逻辑,以捕捉均值回归(逆势交易极端行情)。
-
买入触发条件: 前一根K线收盘价位于上包络带上方,且当前K线开盘价位于该带上方。逻辑: 代码在此处生成卖出 信号,因为其假设资产价格已过度延伸,并将回调至包络带内。
-
卖出触发条件: 前一根K线收盘价位于下轨下方,且当前K线开盘价位于下轨下方。逻辑: 代码在此处发出买入 信号,押注资产将从超卖区域立即反弹。
4. 周期 4 逻辑:包络线点距突破
第4周期为包络线指标引入了严格的波动率/点差距离限制,作为一种激进的突破交易系统。
-
买入触发条件: 下轨与前一收盘价之间的距离大于“Distance”点数,且 下轨与当前买入价之间的距离也大于“Distance”($LowerBand - Close[1] > Distance$ 且$LowerBand - Bid > Distance$)。
-
卖出触发条件: 前一收盘价与上轨之间的距离,以及当前买入价与上轨之间的距离,均超过“Distance”值($Close[1] - UpperBand > Distance$ 且$Bid - UpperBand > Distance$)。
5. 平仓、投资组合平仓与风险逻辑
该平仓管理架构不采用标准的按仓位设置止损(SL)或止盈(TP)订单,而是依赖于按周期映射的“全球账户权益篮子追踪系统”。
里程碑捕捉
当一个周期的持仓数量从 0 变为 1 时(通过 c1_Buycount == 0 或 c1_Sellcount == 0 进行追踪),EA 会将该时刻交易账户的精确基准权益作为基准:
基于该基准,它为该特定交易方向映射静态全局目标:
-
止盈目标: 若指定了 target_amount,则将其设为$\text{Baseline} + \text{target\_amount}$。 否则,使用百分比公式:
$$\text{目标价格} = \text{基准} + \left(\frac{\text{基准} \times \text{目标百分比}}{100}\right)$$ -
止损目标: 使用相对于已捕获快照权益的百分比回撤限制:
$$\text{风险价格} = \text{基准} - \left(\frac{\text{基准} \times \text{账户风险百分比}}{100}\right)$$
动态投资组合验证
在每个价格跳动点,EA 会计算所有符合该特定周期魔术号码和交易类型(MyAccountProfit_Buy 或 MyAccountProfit_Sell)的活跃头寸的实时浮动盈亏、掉期和佣金的累计总额。
平仓执行
如果$\text{当前投资组合价值} \ge \text{目标价格}$(达到盈利目标)或 $\text{当前投资组合价值} \le \text{风险价格}$(突破最大风险上限):
-
EA 将调用 ClosePositions() 函数。
-
它将按Magic Number 和仓位类型 进行筛选,并反向遍历所有市场持仓。
-
每一笔相关交易都将通过市价单立即平仓。
-
趋势方向的周期追踪器将重置为 0,使 EA 能够在收到下一个结构性指标信号时建立一个全新的基准快照。
6. 仓位控制逻辑(资金管理)
交易量计算由 getLots(int cycle) 例程动态执行:
-
固定手数: 若 AutoLots 为 false,则返回基线硬编码的手数设置(例如,LotSize = 0.01)。
-
动态风险调整: 若 AutoLots = true,系统将根据可用保证金自动调整交易量:
-
它通过 OrderCalcMargin 查询当前资产进行标准 1.0 手交易所需的精确保证金。
-
它使用以下公式推算可承受的投资能力:
$$\text{预计交易量} = \frac{\text{账户可用保证金} \times \left(\frac{\text{风险手数}}{100}\right)}{\text{每 1.0 手保证金}}$$ -
最终结果将通过 MathMin 和 MathMax 与经纪商设定的限制进行比对,以确保其精确落在 SYMBOL_VOLUME_MIN 和 SYMBOL_VOLUME_MAX 之间的有效范围内,并精确四舍五入至最接近的交易所资产步长( SYMBOL_VOLUME_STEP )。
-
由MetaQuotes Ltd译自英文
原代码: https://www.mql5.com/en/code/74818
KCI Volatility Distance
KCI波动距离是一种经过精心设计的先进自适应算法,旨在以极高的精度描绘市场动能和趋势方向。 该工具采用专有的矩阵计算方法,能够动态过滤市场噪音,并从严格的定量角度分析趋势强度。其核心基于高度优化的面向对象编程(OOP)架构,既能提供清晰的交易可视化效果,又能无缝集成到专家顾问(EA)或机器学习模块中,确保在多种资产上实现超轻量级的CPU性能。
Double Enevlopes (Historical Gauged)
一款保姆服务管理工具和系统 :D简体中文(大陆)
MA + Envelope Breakouts
基于包络通道或包络带的突破策略,将多种EA逻辑整合于一个EA之中
CKS Position Risk Dashboard
一个只读的MT5仪表盘,用于基于风险的手数设定、账户健康状况、经纪商交易量限制以及当前交易品种的风险敞口。

