JKGoldenRock
- 专家
- 版本: 3.0
- 激活: 5
JK-GoldenRock —— EMA 交叉突破自动交易系统(MetaTrader 5)
产品简介
JK-GoldenRock 是一款运行在 MetaTrader 5 平台上的自动交易 EA。它以两条指数移动平均线(EMA)的交叉作为方向判断依据,结合前 N 根已收盘 K 线形成的突破通道,通过突破挂单或市价单完成入场,并提供固定点数止损、ZigZag 斐波那契止损、延迟止损、移动止损、持仓超时平仓和反向信号平仓等一整套持仓管理工具。
EA 在单一品种、单一图表周期上工作,只识别并管理自身 magic number 下的持仓与挂单,不会干扰同一账户中运行的其他 EA 或手动交易。所有信号均基于已收盘 K 线计算,信号在 K 线收盘时确认。
本产品为纯 MQL5 实现,不调用任何外部 DLL,不使用 WebRequest,不请求任何个人信息,不在图表上输出任何广告或第三方链接。
主要功能
信号生成
EA 在当前图表周期上计算快、慢两条 EMA。当快线上穿慢线时产生买入信号,下穿时产生卖出信号。两条 EMA 均只使用已收盘 K 线的收盘价进行递推计算,因此信号一经出现即固定,不会在 K 线未收盘期间来回变化,也不会随行情推进而回溯改写。
两种入场模式
- 突破挂单模式(默认):买入信号出现后,在「前 N 根已收盘 K 线最高价 + 偏移点数」处挂出 Buy Stop;卖出信号则挂出 Sell Stop 于「前 N 根最低价 − 偏移点数」处。若挂单价与当前市价距离过近,EA 会自动将价格推开至经纪商允许的最小止损距离之外。挂单在未被触发前不携带止损止盈,成交后由 EA 立即补设。
- 市价入场模式:信号确认后直接以市价单成交。
两种模式下,EA 都只在没有持仓、没有未成交挂单时才开新仓。
手数管理
正常信号使用基础手数开仓。若上一笔由本 EA 平仓的交易为亏损,下一笔开仓手数为「基础手数 × 亏损手数倍数」(默认 2.0 倍),随后若该笔盈利则恢复到基础手数。手数会按品种的最小手数、最大手数和手数步长自动归一化。
连亏熔断
可设置允许的最大连续亏损次数。达到上限后 EA 暂停开新仓,直至出现一次盈利平仓后计数归零。设为 0 表示不限制。连亏计数在 EA 重启后会从账户历史中自动恢复。
止损方式(三选一或组合)
- 固定点数止损:按设定点数在成交价基础上计算。
- ZigZag 斐波那契止损:调用 MT5 自带的 Examples\ZigzagColor 指标,从入场 K 线向历史方向扫描极值点,跳过最近若干个尚未锁定的极值后,取相邻两个极值构成区间,按设定的斐波那契百分比(默认 −23.6%,即在区间边界外侧 23.6% 处)计算止损价。若该指标句柄创建失败,EA 自动回退为固定点数止损。
- 延迟止损:入场后指定根数 K 线内只设置止盈、不设置止损,等待期结束后再补设止损。用于给行情留出波动空间。
移动止损
当持仓浮盈(以持仓期间出现过的最优价格计算)达到设定的触发点数后,移动止损启动,止损被放置在「峰值价格 − 回撤点数」处,并只向有利方向移动。
平仓条件
- 止盈/止损触发(由经纪商执行);
- 持仓时间达到设定的超时 K 线数后自动市价平仓;
- EMA 趋势方向与持仓方向相反时,在新 K 线出现时平仓(可关闭)。
交易时段过滤
可按服务器时间设定允许开仓的起止时段,只对新开仓生效。非交易时段内 EA 会删除遗留未成交的挂单,避免在不受监控的时间被意外触发;已持仓的处理不受影响。起止时间支持跨零点设置。
图表显示与信息面板
- 在图表上绘制前 N 根 K 线的最高价与最低价水平线(突破通道),并在右上角显示数值;
- 在图表左上角显示信息面板:运行状态、账户余额、净值、浮动盈亏、多空持仓量、杠杆、当前点差、经纪商最小止损距离、当日已实现盈亏、当前连亏次数、最近一次平仓方向与盈亏,以及最近若干个交易日的成交量与盈亏统计。面板每 5 秒刷新一次,可整体关闭。
经纪商约束自适应
初始化时自动读取品种的报价位数、点值、最小止损距离(Stop Level)与冻结距离(Freeze Level),所有止损、止盈与挂单价格都会被自动修正到经纪商可接受的范围之内;开仓前会预检可用保证金,保证金不足时不发单。参数填写不合规时 EA 拒绝加载并在日志中给出明确原因。
输入参数
基本设置(Basic Settings)
参数 | 默认值 | 说明 |
|---|---|---|
InpMagic | 20260814 | 魔术号。用于区分本 EA 的持仓与挂单,同一账户运行多个实例时必须各不相同 |
InpBaseLot | 0.01 | 基础手数,正常信号开仓时使用 |
InpReversalLotMult | 2.0 | 亏损手数倍数。上一笔为亏损时,下一笔手数 = 基础手数 × 该倍数 |
入场模式(Entry Mode)
参数 | 默认值 | 说明 |
|---|---|---|
InpEntryMode | 0 | 入场模式。0 = 突破挂单(Buy Stop / Sell Stop);1 = 市价单 |
风险控制(Risk Control)
参数 | 默认值 | 说明 |
|---|---|---|
InpMaxConsecLoss | 0 | 最大连续亏损次数。达到后暂停开仓,0 = 不限制 |
挂单入场(Pending Order Entry)
参数 | 默认值 | 说明 |
|---|---|---|
InpDonchianBars | 5 | 突破参考 K 线根数 N。买入取前 N 根已收盘 K 线最高价,卖出取最低价 |
InpPendingOffset | 100 | 挂单偏移点数。在突破价基础上再加(买)/ 减(卖)该点数 |
图表显示(Chart Display)
参数 | 默认值 | 说明 |
|---|---|---|
InpShowDonchian | true | 是否在图表上绘制前 N 根 K 线的高低通道线与数值标签 |
信号设置(Signal Settings)
参数 | 默认值 | 说明 |
|---|---|---|
InpFastEMA | 5 | 快线 EMA 周期 |
InpSlowEMA | 10 | 慢线 EMA 周期 |
要求 1 ≤ 快线周期 < 慢线周期,否则 EA 拒绝加载。两条 EMA 均在当前图表周期上计算。
止损与止盈(Stop Loss / Take Profit)
参数 | 默认值 | 说明 |
|---|---|---|
InpSLPoints | 100 | 固定止损距离(点数)。必须大于 0 |
InpTPPoints | 1000 | 止盈距离(点数)。必须大于 0 |
ZigZag 斐波那契止损(ZigZag Fibonacci Stop Loss)
参数 | 默认值 | 说明 |
|---|---|---|
InpUseZigSL | false | 是否启用 ZigZag 斐波那契止损替代固定点数止损 |
InpZigPath | Examples\ZigzagColor | 使用的 ZigZag 指标路径 |
InpZigDepth | 12 | ZigZag 的 Depth 参数 |
InpZigDev | 5 | ZigZag 的 Deviation 参数 |
InpZigBack | 3 | ZigZag 的 Backstep 参数 |
InpFibLockSkip | 1 | 跳过最近 N 个尚未锁定的极值点,锁定段为第 N+1 与 N+2 个极值 |
InpFibSLPercent | −23.6 | 斐波那契止损百分比,可为负值。启用时不能为 0 |
延迟止损(Delayed Stop Loss)
参数 | 默认值 | 说明 |
|---|---|---|
InpDelaySL | false | 是否启用延迟止损 |
InpDelaySLBars | 5 | 延迟根数。入场后该数量的 K 线内不设止损,仅设置止盈 |
移动止损(Trailing Stop)
参数 | 默认值 | 说明 |
|---|---|---|
InpTrailTrigger | 150 | 触发移动止损所需的浮盈点数(按持仓期间峰值价格计算) |
InpTrailGap | 50 | 移动止损与峰值价格之间的距离(点数) |
持仓管理(Position Management)
参数 | 默认值 | 说明 |
|---|---|---|
InpTimeoutBars | 120 | 持仓超时平仓的 K 线根数,自入场 K 线起算 |
InpReverseClose | true | 是否在 EMA 趋势方向与持仓方向相反时平仓 |
交易时段(Trading Session)
参数 | 默认值 | 说明 |
|---|---|---|
InpUseTimeFilter | false | 是否启用交易时段过滤(仅影响新开仓) |
InpTradeStart | 09:30 | 允许开仓的起始时间(HH:MM,服务器时间) |
InpTradeEnd | 23:30 | 允许开仓的结束时间(HH:MM,服务器时间) |
起始与结束时间不能相同。若起始时间大于结束时间,表示时段跨越零点。
信息显示(Info Display)
参数 | 默认值 | 说明 |
|---|---|---|
InpShowComment | true | 是否在图表左上角显示信息面板 |
InpCommentDays | 7 | 信息面板中显示的历史统计天数 |
风险提示
自动交易存在显著风险,并不适合所有交易者。本产品提供的参数配置仅为交易逻辑的实现方式,不构成任何投资建议,也不代表任何形式的收益承诺或保证。任何参数的默认值都只是示例,使用者有责任根据自身的风险承受能力、账户规模与交易品种特性自行完成测试与调整。
在实际使用前,请务必在策略测试器中完成验证,并在模拟账户上运行足够长的时间。使用本产品所产生的交易结果由使用者自行承担。
