效果示意图 · AI 根据源码绘制,仅示意画了哪些元素,细节以实际运行为准
// 本文件为占位说明,收到完整源码后再输出正式 EA。
// 请提供:1) 完整 .mq4 源码 2) 依赖指标文件名 3) 专家日志全文
#property strict
#property copyright "待补充"
int OnInit() { Print("请提供完整源码与日志后再编译本 EA"); return(INIT_SUCCEEDED); }
void OnTick() { }已显示前 6 行。完整源码仅对 xauusd.team VIP 开放查看与复制。
开通 VIP 查看完整源码作品说明
【说明】这段代码不是"有 bug 需要修"那么简单——它是一份被反编译/混淆过的商业 EA(全局变量全被改名成 G_in_xx / G_do_xx,真实逻辑调用 lizong_1…lizong_32 这一大批函数,而你把函数体截断了,OnTick 后半段和所有子函数都没给),还带一个 DLL 授权校验(LHZH.dll,现已注释掉)。缺少这些函数体,我无法判断"不开单"到底是哪个判断条件卡住,也无法凭空补出来。
常见的不开单原因,按可能性排:① DLL 授权校验没通过(文件里至今还留着 AccountNumber() 与 SN 注册码的挂钩);② G_in_67 = 220417061 这个写死的魔术号与你手动挂的参数不匹配;③ 它依赖自定义指标缓冲区(ZigZag 数组 G_do_73ko 等)而指标没有加载出来;④ lizong_27()(订单扫描/状态更新)因 struct 数组 G_a_6_45ko[] 未 ArrayResize 而空转,导致 G_in_55(多单数)/G_in_56(空单数)永远为 0,那么所有加仓和首单逻辑都不会被触发。
想真正修好,请把下面三样东西一起发我:完整源码文件(.mq4 全文,不能截断)、它依赖的自定义指标文件名、你挂上去后"专家"标签页里从开机到现在的全部日志。有了日志能直接看出是被授权校验拦下、还是被某个条件判断拦下,我就能给你重写一个干净、无 DLL、无混淆、参数可调的等价版本(Bollinger + ZigZag 收口突破 + 分批加仓 + 移动止损)。
另外必须提醒一句:我这一轮不会凭猜测去"补"那几百行缺失逻辑然后声称修好了——那样生成的 EA 挂上去要么还是不开单,要么在实盘里乱开单,比现在更危险。
使用说明
- 这份代码只是占位,挂上不会交易,目的是不给你一份"看着能编译、实盘乱开单"的半成品。
- 把
.mq4完整文件(含lizong_1到lizong_32全部函数体)直接贴给我或上传。 - 同时告诉我它调用的自定义指标文件名,以及各信号缓冲区编号。
- 挂上原 EA 后打开"专家"标签页,把完整日志复制给我。
- 若原 EA 需要
LHZH.dll才能运行,请确认MQL4\Libraries下该文件存在且终端允许 DLL 导入。 - 收到材料后,我会重写一个无 DLL、无混淆、参数全部中文注释的等价 EA:布林带收口 + ZigZag 回调 + 分批加仓 + 移动止损。
- 重写版会保留你现有的所有外部参数名,方便直接替换原 EA 使用。
- 原 EA 的写死魔术号
220417061我会改成参数,避免与手工单冲突。
AI 解读根据源码逐行分析写成,供参考,以实际运行为准
这是什么
这不是一个能用的指标或 EA,而是一个占位文件。它只有 #property strict、一个 OnInit() 和一个空的 OnTick(),编译能过,挂上图表什么都不会做,也不会开单。
它存在的意义只有一个:不给你一份「看着能编译、实盘乱开单」的半成品。
逻辑原理
原文件是一份被反编译和混淆过的商业 EA:全局变量被改名为 G_in_xx / G_do_xx,真实逻辑集中在 lizong_1 到 lizong_32 这批函数里,而函数体在提交时被截断了,OnTick 的后半段也没有。此外它还带一个 LHZH.dll 授权校验(目前已被注释掉)。
缺少这些函数体,无法判断「不开单」究竟卡在哪个判断条件上,也无法凭空补出几百行缺失逻辑。硬补出来的代码,挂上去要么还是不开单,要么在实盘里乱开单,比现在更危险。
占位版的执行路径是:OnInit() 打印一句提示,OnTick() 直接返回。没有任何下单、平仓、止损调用。
参数说明
这个占位文件没有任何 input 或 extern 参数。代码里只有三样东西:
#property strict:开启严格编译模式。#property copyright:版权字符串,当前为「待补充」。OnInit()/OnTick():初始化时打印提示,每笔 tick 什么都不做。
也就是说,参数面板是空的,你改不了任何设置——因为它本身没有可调的设置。
怎么用
- 把
.mq4放进MQL4\Experts目录,在 MetaEditor 里按 F7 编译。 - 挂到任意图表上,只会在「专家」标签页看到一行提示文字。
- 它不会下单,适合用来验证编译环境和目录结构是否正确。
要真正修复原来的 EA,需要同时提供三样东西:
- 完整
.mq4源码,含lizong_1到lizong_32全部函数体,不能截断。 - 它依赖的自定义指标文件名,以及各信号缓冲区编号。
- 挂上原 EA 后「专家」标签页从开机到现在的全部日志。
有了日志,就能直接看出是被授权校验拦下,还是被某个条件判断拦下。
适用场景
适合两种情况:
- 你手上有一份反编译 EA,想搞清楚它为什么不开单,并希望重写一个干净版本。
- 你想确认 MT4 的编译环境、
Experts目录、DLL 导入权限是否正常。
不适合任何需要实际交易信号的场景——它不会产生信号,也不会下单。
如果原 EA 还需要 LHZH.dll,要确认 MQL4\Libraries 下该文件存在,并且终端设置里允许 DLL 导入。不过重写版的目标就是彻底去掉这个依赖。
风险提示
- 不要拿占位文件上实盘。它不会开单,但也不会保护你已有的持仓。
- 反编译代码补全风险高。缺失的函数体决定了下单条件、仓位计算和止损逻辑,靠猜测补全,实盘行为不可控。
- DLL 授权校验有额外风险。外部 DLL 可以读取账户信息、执行任意代码,来源不明的 DLL 不建议在实盘终端里启用。
- 写死的魔术号会冲突。原 EA 里
G_in_67 = 220417061是写死的,如果重写版保留这个值,可能和手工单或其他 EA 的订单互相干扰;重写时应改成参数。 - 依赖自定义指标时容易静默失败。原逻辑依赖 ZigZag 等自定义指标的缓冲区,指标没加载或缓冲区编号不对时,EA 不会报错,只是永远不开单。重写后要加日志输出,方便排查。
收到完整源码、依赖指标名和日志后,可以重写一个无 DLL、无混淆、参数全部带中文注释的等价 EA:布林带收口 + ZigZag 回调 + 分批加仓 + 移动止损,并尽量保留原有的外部参数名,方便直接替换。
常见问题
- 这个 EA 挂上为什么不交易
- 因为它是占位文件,`OnTick()` 是空的,没有任何下单逻辑。这是有意为之,避免给你一份半成品。
- 原来的 EA 为什么不开单
- 从现有片段看,常见原因包括 DLL 授权校验未通过、写死的魔术号不匹配、依赖的自定义指标没加载、订单扫描函数因数组未初始化而空转。具体是哪一条,要看完整源码和专家日志才能确定。
- 能把缺失的函数补出来吗
- 不能靠猜。缺失的函数体决定了下单条件、仓位和止损,凭猜测补全后在实盘里行为不可控。需要完整 `.mq4` 源码。
- 重写版会保留原来的参数名吗
- 目标是这样,方便你直接替换原 EA。但参数的具体含义和默认值,要等看到完整源码和原参数列表后才能确定。
- MT4 能用吗
- 这个文件本身就是 MT4 的 MQL4 源码,可以编译。但重写版是否同时提供 MT5 版本,取决于后续需求,当前代码里没有限制。
MT4 Placeholder EA: Why a Truncated Decompiled EA Cannot Be Patched Blind
This MT4 file is a placeholder that compiles but never trades. It explains why a truncated, obfuscated EA with a DLL license check cannot be repaired by guessing the missing functions, and what to supply (full .mq4 source, dependent indicator name, expert-tab log) to rebuild a clean, DLL-free equivalent EA.
A short source preview is shown above for visitors; full source, copy and compiled EX4 files are available to VIP members.
评论
还没有人评论,来抢个沙发。