外汇取款机-EA更偏向保守的趋势跟踪,适合追求稳定、低回撤的交易者。
该EA是一个日内趋势突破策略,基于CCI和动量指标(Momentum)的双重确认,在固定时间窗口(UTC 5:30)入场,并配有完整的移动止损、保本止损、固定止盈/止损等风控模块。以下是对其交易逻辑的详细拆解:1. 核心参数参数名典型值说明
StartHour5交易开始小时(UTC时间)
StartMinute30交易开始分钟
止损40固定止损点数(若启用)
止盈35固定止盈点数(若启用)
开仓价保护20盈利达到该点数后,移动止损至开仓价+偏移
BreakEvenAddPips0保本后的额外偏移点数
TrailingStopPips0移动止损点数(0表示关闭)
资金管理TRUE是否使用基于账户余额的风险计算
风险系数2每笔交易风险占总资金的百分比
有效手数小数点2手数保留小数位数
UseLongCandleFilterTRUE是否启用长K线过滤(避免追高杀低)
Email发送信号TRUE开仓时发送邮件通知
MagicNumber12345EA魔术号
2. 入场条件(信号生成)时间窗口
[*]EA在每个tick执行 start()。
[*]仅当当前时间的小时==StartHour (5) 且 分钟==StartMinute (30) 时,才尝试开仓。
[*]同时通过 g_day_268 确保一天只开一次仓(避免同一根K线重复触发)。
信号产生(getSignal)
[*]调用 checkMomentum()(动量指标,周期60,价格类型PRICE_TYPICAL):
[*]计算 ld_8 = 100 * (Momentum - 100)(实际为百分比变动)。
[*]若 |ld_8| > 80(即动量变化超过80%),则返回0(无信号),认为是异常波动。
[*]否则,ld_8 > 0 返回1(多),ld_8 < 0 返回-1(空)。
[*]调用 checkCCI()(CCI指标,周期60,PRICE_TYPICAL):
[*]若 CCI > 0 返回1(多),CCI < 0 返回-1(空),等于0返回0。
[*]信号有效性:两个指标的方向必须完全相同(均为正或均为负),否则返回0(无信号)。
[*]长K线过滤(UseLongCandleFilter):
[*]若启用,扫描最近 gi_164 = 15 根K线,计算每根K线的实体长度 High-Low。
[*]若存在某根K线的长度 ≥ ATR(20) * gd_172(3.0),即认为是长K线(剧烈波动),此时返回0(不开仓)。
[*]意图:避免在刚刚发生过大幅波动的行情中入场,防止被反转套住。
最终开仓动作
[*]若信号为 +1(多):市价买(Ask),手数由资金管理决定,止损价 = 开仓价 - BrokerStopLossPips(初值55点)* 方向系数,止盈价 = 开仓价 + BrokerProfitTargetPips(初值55点)。
[*]若信号为 -1(空):市价卖(Bid),止损 = 开仓价 + 55点,止盈 = 开仓价 - 55点。
注意:代码中实际使用的是 gd_224 和 gd_232,它们来自 BrokerStopLossPips 和 BrokerProfitTargetPips 经过 gd_200 转换后的点数,默认均为55点。
开仓后立即修改订单,将SL/PT设置为上述值。3. 资金管理
[*]若 资金管理 == TRUE:
[*]计算 风险金额 = 账户余额 * (风险系数 / 100.0)。
[*]若 止损 > 5 则使用参数止损,否则使用默认 BrokerStopLossPips(55点)作为止损点数。
[*]手数 = 风险金额 / (10.0 * 止损点数),并归一化到 有效手数小数点 位。
[*]再与平台最小/最大手数比较,约束在合法范围内。
[*]若 资金管理 == FALSE:直接使用参数 Lots。
例如:余额10000,风险系数210000,风险系数2200 → 手数 = 200/(10*55)=0.3636,取小数点后2位为0.36手。4. 持仓管理(manageTrade)该函数在每次 start() 开头被调用,对当前EA的所有订单实施风控(按顺序执行):移动止损(TrailingStopPips)
[*]若该值 > 0:
[*]买单:当 Bid > 当前止损 + TrailingStopPips 时,将止损上移到 Bid - TrailingStopPips。
[*]卖单:当 Ask < 当前止损 - TrailingStopPips 时,将止损下移到 Ask + TrailingStopPips。
开仓价保护(保本止损)
[*]若 开仓价保护 > 0:
[*]买单:当盈利 ≥ 开仓价保护 点,且当前止损仍低于开仓价时,将止损移到 开仓价 + BreakEvenAddPips。
[*]卖单:当盈利 ≥ 开仓价保护 点,且当前止损仍高于开仓价时,将止损移到 开仓价 - BreakEvenAddPips。
[*]此功能独立于移动止损,可同时使用。
固定止盈
[*]若 止盈 > 0:
[*]买单:当盈利 ≥ 止盈 点 → 立即平仓(市价平多)。
[*]卖单:当盈利 ≥ 止盈 点 → 立即平仓。
固定止损(硬止损)
[*]若 止损 > 0:
[*]买单:当亏损 ≥ 止损 点 → 立即平仓。
[*]卖单:当亏损 ≥ 止损 点 → 立即平仓。
注意:固定止盈/止损的优先级高于移动止损和保本止损(它们直接平仓,而不仅仅是移动止损)。
参数中的 止损 和 止盈 如果未启用(=0),则完全依赖开仓时设置的55点固定SL/PT以及后续的移动管理。5. 其他辅助机制
[*]重试机制:开仓若遇 REQUOTE 或 INVALID_TRADE_VOLUME,会重试最多2次,并动态调整手数。
[*]日志与邮件:开仓成功或每日无信号时,均可发送邮件通知。
[*]防重复开仓:通过全局变量 g_day_268 记录上次开仓的日期,当天不会再次开仓。
6. 策略本质与适用场景
[*]策略类型:固定时间动量+CCI双重确认,类似“开盘突破”但并非开盘,而是选择UTC凌晨5:30(对应亚洲早盘或美洲收盘后的清淡时段)。
[*]核心逻辑:在特定时间,如果短期动量方向与CCI方向一致,且近期没有超大K线干扰,则顺着动能入场,并依靠窄止损(55点)和移动止盈/保本控制风险。
[*]特点:
[*]每天最多一单,交易频率低。
[*]资金管理使每单风险可控(总资金的固定百分比)。
[*]长K线过滤试图规避剧烈波动后的不确定性。
[*]风险点:
[*]固定时间入场可能忽略当时的波动率环境,虽有用ATR过滤历史K线,但非实时过滤。
[*]初始止损为55点,若点差较大或快速行情,易被扫损。
[*]动量指标参数60周期,在5:30时刻使用的是前一周期收盘的数据,有一定滞后性。
[*]适用品种:倾向于波动温和、趋势性较好的货币对(如EURUSD、GBPUSD等),不适合剧烈震荡或高突发性品种。
[*]我用的是exness平台,其他平台没有试过。
[*]策略测试图片
有没有观摩呢?请问! 这个应该不错 有下载的吗? 这个不错
页:
[1]