FoxterAI
- 专家
- Serhii Shal
- 版本: 2.0
- 激活: 5
FoxterAI — 基于ATR自适应步长的网格交易EA,内置实时控制面板
FoxterAI 是一款用于 MetaTrader 4 的自动网格交易机器人,基于均值回归网格策略构建。网格步长通过 ATR 指标计算,而非固定点数:波动率高时订单间距变宽,波动率低时间距变窄,实现自动适应市场节奏。EA 同时管理两个独立序列——BUY 和 SELL。
核心功能:控制面板在策略测试器中完全可用
内置交互式控制面板在策略测试器可视化模式下完全正常运行。回测过程中无需停止测试即可修改关键参数:启用/禁用交易、切换方向、更改入场模式、激活 Basket Mode、调整盈利目标、启用关卡系统、修改网格限制——并立即看到对结果的影响。这极大地加快了参数优化速度。
运行架构
每个 Tick EA 依次执行:序列更新、DetectTrend()(趋势检测)、CheckNewSeriesEntry()(入场条件检查)、ManagePositions()(保本、追踪止损、网格均值、止盈管理)、面板更新。
趋势检测
自定义 ATR 算法——计算所选时间框架上 N 根已完成 K 线的 High-Low 均值。ATR 缓存处理,仅在新 K 线生成时重新计算。
- TrendTimeframe — 趋势检测时间框架(H1)
- TrendATR_Period — ATR 周期,单位:K 线数(14)
SuperTrend
无需外部指标的内置计算。基准线 = (High+Low)/2,上轨 = 基准线 + 倍数 × ATR,下轨 = 基准线 - 倍数 × ATR。用作入场过滤器、均值过滤器和价格关卡来源。SuperTrend 线直接绘制在图表上。
- SuperTrendTF — SuperTrend 时间框架(H1)
- SuperTrendATRPeriod — ATR 周期(10)
- SuperTrendMultiplier — ATR 倍数(3.0)
- DrawSuperTrend — 在图表上绘制线条(true)
- SuperTrendBarsToDraw — 绘制 K 线数(300)
入场模式
通过面板上的 Entry Mode 按钮循环切换,共四种模式:
- Trend only — 顺趋势方向入场
- Trend + Impulse(默认)— 额外要求 M15 上出现冲量 K 线,其波动范围超过 ATR 的指定百分比
- Trend + Impulse + SuperTrend — 最大过滤:趋势、冲量和 SuperTrend 同时满足
- Trend + SuperTrend — SuperTrend 确认趋势,无冲量要求
- EntryMode — 入场模式(Trend + Impulse)
- ImpulseTimeframe — 冲量检测时间框架(M15)
- ImpulseATR_Period — 冲量 ATR 周期(14)
- ImpulseMinPercent — 最小冲量大小,占 ATR 的百分比(150)
- MinBarsBetweenSeries — 平仓与新入场之间的 K 线数(1)
均值网格
步长 = ATR(Grid_Timeframe, Grid_ATR_Period) × Grid_StepPercent / 100。均值触发条件:价格从最后一单移动一个步长、趋势与序列方向一致、已过最小时间间隔、订单数量和总手数在限制范围内。
- Grid_Timeframe — 步长计算时间框架(M15)
- Grid_ATR_Period — 步长 ATR 周期(14)
- Grid_StepPercent — 网格步长,占 ATR 的百分比(50)
- MartinCoeff — 马丁格尔倍数(1.5)
- FirstLotMultiplier — 第一单手数倍数(1.0)
- MaxOrdersBuy / MaxOrdersSell — 每个序列最大订单数(10)
- MaxTotalLot — 每个序列最大总手数(2.0)
- GridIntervalMinutes — 均值订单最小时间间隔,单位:分钟(30)
- UseSTForAveraging — 均值过滤使用 SuperTrend(false)
高级网格与马丁格尔模式
扩展网格(UseExpandingGrid):每个网格步长乘以 GridStepMultiplier,减少深度逆势时的均值频率。
分段马丁格尔(UseSteppedMartin):将网格分为三个区域,各有不同倍数。示例:前 3 单为 1.0,后 3 单为 1.3,之后为 1.6。仅在网格深处激活马丁格尔。
ATR 自适应马丁格尔(UseATRAdaptiveMartin):根据当前波动率动态调整倍数。高波动时使用最小系数,低波动时使用最大系数。三种模式可组合使用。
- UseExpandingGrid — 扩展网格(false),GridStepMultiplier — 步长倍数(1.3)
- UseSteppedMartin — 分段马丁格尔(false)
- StepZone1Count / Coeff — 区域1:订单数和倍数(3 / 1.0)
- StepZone2Count / Coeff — 区域2(3 / 1.3),StepZone3Coeff — 区域3(1.6)
- UseATRAdaptiveMartin — ATR 自适应马丁格尔(false)
- ATRAdaptive_MinCoeff — 高波动时最小系数(1.0)
- ATRAdaptive_MaxCoeff — 低波动时最大系数(2.0)
止盈模式
ATR 止盈:距离 = ATR(TP_Timeframe, TP_ATR_Period) × TP_Percent / 100。
账户百分比止盈:目标 = 余额 × FirstTPDepositPercent / 100。
单独止盈:每单固定点数止盈(仅限 Basket Mode,0 = 禁用)。
序列综合止盈:存在 2 单以上时,止盈从加权平均开仓价重新计算。启用 IncludeCommissionSwap 时,从盈利中扣除累计手续费和隔夜利息。
- TP_Timeframe — ATR 止盈时间框架(M15),TP_ATR_Period — 周期(14)
- TP_Percent — 止盈大小,占 ATR 百分比(100)
- UseDepositPercentTP — 账户百分比止盈(false)
- FirstTPDepositPercent — 第一单止盈,占余额百分比(0.5)
- IndividualTP_Points — 单独止盈点数(100,0=禁用)
- IncludeCommissionSwap — 计入手续费和隔夜利息(true)
- SlippagePercent — 滑点补偿,占盈利百分比(0.1)
篮子(Basket)
将 BUY 和 SELL 序列合并,在共同盈利目标达成时一起平仓。三种类型:
- OFF — 序列独立管理
- Immediate — 从第一单起合并
- After N — N 次均值后合并
Basket Mode(熔炉):扩展盈利管理——不仅计入当前未平仓订单,还包括本次网格已平仓订单,允许从部分平仓中积累利润。
- BasketType — 类型:OFF / Immediate / After N(OFF)
- BasketProfitPercent — 目标盈利,占余额百分比(0.1)
- BasketAfterNOrders — N 次均值后合并(5)
- UseBasketMode — Basket Mode 熔炉(false)
保本与追踪止损
保本(Breakeven)在序列有 2 单以上时激活。价格达到指定距离后,止损移至开仓价(或带偏移量)。
- UseBreakeven — 启用保本(false)
- BreakevenActivatePoints — 激活所需点数(100)
- BreakevenSL_Points — 止损距开仓价偏移(0 = 开仓价处)
追踪止损(Trailing)仅作用于序列第一单(无均值订单时)。第二单出现时自动禁用。距离以 ATR 百分比设置。
- UseFirstOrderTrailing — 启用追踪止损(false)
- TrailActivatePercent — 激活阈值,占 ATR 百分比(70)
- TrailDistancePercent — 追踪距离,占 ATR 百分比(50)
关卡系统(Level System)
可选模块,将网格逻辑锚定到重要价格关卡。通过面板上的 Levels 按钮启用。
三种关卡来源(Source 按钮):
- Round levels — 以固定点数步长设置关卡(如每 50 点)。当前价格附近生成 21 个关卡
- Daily High/Low — 基于两个时间框架上 N 根 K 线的最高/最低价关卡。默认:D1×1 + W1×1 = 4 个关卡
- SuperTrend TF — LevelTF 时间框架上的 SuperTrend 边界
四种工作模式(Mode 按钮):
- Filter — 显示关卡,不影响交易
- TP at levels — 止盈设置在交易方向上最近的关卡
- Entry only — 第一单仅在关卡附近开仓(LevelEntryZone × ATR 范围内)
- Full — 关卡止盈 + 关卡附近入场 + 网格步长自适应至下一关卡
- UseLevelAveraging — 启用系统(false),LevelSource — Round/D-HL/ST-TF
- RoundLevelStep — 圆形关卡步长点数(50),LevelTF — 时间框架(H4)
- LevelHL_TF1/Count1 — D-HL 对1(D1/1),LevelHL_TF2/Count2 — 对2(W1/1)
- UseLevelTP — 关卡止盈(false),LevelTP_OffsetPips — 止盈偏移点数(5)
- UseLevelEntry — 仅关卡附近入场(false),LevelEntryZone — 区域 ATR 比例(0.15)
- UseLevelGrid — 自适应网格步长(false),UseLevelAutoLot — 自动手数(false)
亏损单剔除(Trim)
当剩余订单仍可达到盈利目标时,强制平掉序列中亏损最大的一单。面板上的 Trim 按钮控制。
- OFF — 禁用
- Own — 同方向剩余订单达到目标盈利时平掉亏损单
- Joint — 所有 BUY 和 SELL 剩余订单合计达到目标盈利时平掉亏损单
过滤器与保护
- 点差过滤器:当前点差不得超过 MaxSpread 点(30)
- 保证金过滤器:可用保证金水平不低于 MinFreeMarginLevel %(200)
- 交易时间窗口:最多三个独立时间段"09:00-17:00",支持跨午夜设置。若全部为空——24 小时交易
- ATR 保护:ATR = 0(历史数据未加载)时——阻止所有交易
- 品种名称标准化(UseNormalizeSymbol):移除经纪商后缀(EURUSDm → EURUSD)
交互式控制面板
三个选项卡。白色输入框接受键盘输入——点击字段,输入数字,按 Enter 应用,按 Escape 取消。
Trading 选项卡:START/STOP、方向 BUY/SELL/BOTH、Entry Mode、Dry Run(不开新序列,现有仓位正常平仓)、Max BUY/SELL、Max Lot、Profit %、BASKET ON/OFF、Individual TP、BASKET 类型、TRIM、ST 均值过滤器、BREAKEVEN、TRAILING、Lot Mult。
Grid 选项卡:Expanding Grid、Step Mult、带区域的 Stepped Martin、带 Min/Max 的 ATR Martin、Levels ON/OFF、Source(Round/D-HL/ST-TF)、圆形关卡步长、Mode(Filter/TP/Entry/Full)。
Info 选项卡:趋势和 SuperTrend 方向、Bid/Ask/点差、BUY/SELL 序列状态(订单数、总手数、浮动盈亏、止盈)、余额和净值、回撤、日/周/月统计数据。
系统按钮(所有选项卡):Emergency Close——立即平所有仓位、Remove Robot、Close BUY / Close SELL、面板缩放(70-200%)。
系统要求
- MetaTrader 4,任意品种和时间框架
- 无需外部 DLL——完全兼容 MQL Market
- 支持分账户(UseCentAccount、CentMultiplier、CentBalanceBase)
风险提示
网格交易涉及同时持有多个未平仓头寸。在强方向性行情中,回撤可能较大。在实盘账户使用前,请在策略测试器中充分测试所有设置,并根据账户规模合理配置风险管理参数(初始手数、最大订单数、最大总手数)。
联系我们
我们随时欢迎交流!如果您有关于设置的问题、改进建议,或者希望根据您自己的交易策略开发定制机器人——请随时发送私信给我们。我们将讨论您的需求,提出解决方案,并将您的想法变为可运行的智能交易系统。
