LiuGuanYi
- 专家
-
Bo Wen Che
我是一名专注于程序化交易与交易系统研究的个人交易者,主要关注黄金、比特币、美国期货以及外汇市场。
我进入交易市场,不是因为相信这里存在一套永远不会亏损的“圣杯策略”,而是因为我喜欢研究价格、概率、风险和人性之间的关系。相比预测下一根K线,我更在意一套系统在不同年份、不同波动环境和连续亏损期间,是否还能按照原本的逻辑稳定运行。
我花了大量时间进行策略开发、历史回测、参数验证和实盘观察。很多策略看起来漂亮,但一旦加入点差、滑点、手续费、交易商规则和真实成交环境,结果就会完全不同。因此,我更愿意正视回撤和失败,而不是只展示最好看的收益曲线。 - 版本: 35.2
- 激活: 5
这不是一套需要复杂调参的EA。核心参数已经经过大量测试并固定在程序内部,我不希望用户通过随意修改底层参数,最终得到一个与原始系统完全不同的结果。
真正使用时,你只需要理解账户类型、资金档位和交易方向,其余核心逻辑均由系统内部自动完成。
1|真实账户可公开观摩
交易商:EC Markets
服务器:ECMarkets-MT5-Live01
账户:81206286
观摩密码:Liuguanyi123@ 请填写MT5只读观摩密码 https://www.mql5.com/zh/signals/2386318?source=Site+Signals+My
这是实际运行账户,可用于观察EA在真实市场中的订单行为。
2|请使用低点差ECN账户
这一点非常重要。
我的主要回测和运行环境采用低点差ECN账户,测试点差约为5—8点,手续费参数为3。
系统并不是在零点差、零手续费的理想环境中制作的,点差和手续费本身已经属于策略真实交易成本的一部分。
但是,如果你使用明显高于测试环境的点差账户、异常滑点账户,或者交易条件与标准ECN环境差距过大的交易商,最终收益和回撤都会发生变化。
交易成本越高,净收益越低,资金使用效率越差,回撤表现也会受到影响。
所以,如果你使用的是高点差账户,请不要期待得到与我的测试完全一致的结果。
3|本策略不依赖低延迟
本策略不是延迟套利,不依赖报价延迟,也不需要通过极低网络延迟获得优势。
在不同延迟环境测试中,从接近1毫秒到约500毫秒,最终整体结果没有出现决定性的结构变化。
因此,没有必要为了运行这套系统专门购买价格昂贵的超低延迟服务器。普通稳定VPS或者本地电脑都可以运行。
对于这套策略来说:
稳定连接的重要性远高于追求1毫秒级延迟。
4|核心参数已经隐藏
真正决定系统行为的内部参数已经全部预设,我没有把大量研究参数开放给用户。
原因很简单:一个已经经过测试的模型,如果允许所有人随意修改内部阈值,最终运行出来的已经不是同一个策略。
用户真正需要选择的只有:
账户类型、资金档位、交易方向。
其他核心参数全部由系统内部控制。
你需要选择的是风险等级,而不是重新设计策略。
5|资金档位决定风险强度
如果账户资金为2500美元,标准配置就是选择2500美元资金档位;5000美元账户选择5000美元档位;10000美元账户选择10000美元档位。可以选择美分账户最低25美元即可启动
这是最正常、最合理的使用方法。
最早开发这套系统的时候,我曾经让EA完全根据账户总资金自动决定风险。但在大量测试后我发现,这样虽然可以把回撤压得非常低,却也造成大量资金长期处于闲置状态,资本利用率并不理想。
所以最终我决定:
把风险选择权交给用户。
资金档位并不只是一个账户余额标签,它本质上决定的是系统采用什么风险强度运行。
如果实际资金等于所选资金档位,就是标准风险;如果实际资金高于所选资金档位,相对风险会下降;如果实际资金低于所选资金档位,相对风险就会提高。
6|如果愿意承担更大风险,可以提高资金档位
例如,账户实际资金只有2500美元,也可以选择5000美元资金档位运行。
这意味着系统会按照5000美元级别的风险结构执行。
这样做的结果非常明确:
潜在收益提高,同时潜在回撤也提高。
这不是漏洞,也不是异常,而是用户主动提高风险等级。
如果你无法承受较大的资金波动,就不要使用低本金运行高资金档位。
高收益永远不是免费的。
回测说明公开回测区间为:
2024年3月1日至2026年8月5日
之所以从2024年开始,是因为我当前使用的EC Markets历史测试环境能够稳定获取的真实逐笔报价数据从该阶段开始。
我不会为了让测试时间看起来更长,刻意混入不同来源或者质量无法确认的历史数据。
能够验证多少,就展示多少。
2500美元账户|2500美元档位
初始资金:2500美元
最终净利润:6603美元
净收益约:264%
最终账户资金约为初始资金的3.64倍
最大权益峰值回撤约:16%
测试中的最大回撤金额约:1120美元
如果单纯以初始2500美元本金作为参照,1120美元相当于初始资金的44.8%左右。
这里必须注意:
最大权益峰值回撤和最大亏损金额占初始本金比例不是同一个统计概念。
策略本身会根据所选资金档位动态计算实际交易手数,因此如果采用更高实际本金运行相同档位,在收益结构接近的情况下,相对回撤比例通常会进一步下降。
10000美元账户|10000美元档位
初始资金:10000美元
最终净利润:26395美元
净收益约:263.95%
最大权益峰值回撤约:16%
测试中的最大回撤金额约:4000美元
这一组结果说明,在资金档位同比扩大后,系统整体风险收益结构仍然能够保持相对一致。
2500美元账户|运行5000美元档位
这是我认为最值得理解的一组测试。
实际初始资金只有:
2500美元
但系统使用:
5000美元资金档位
最终净利润:
13201美元
相对于最初2500美元本金:
净收益约528%
最大权益峰值回撤约:
18%
测试中的最大回撤金额约:
2240美元
这说明,如果用户愿意主动承担更高风险,可以通过提高资金档位改变整个账户的风险收益结构。
但必须再次强调:
收益提高的同时,本金承受的绝对风险也会明显增加。
如果你不能接受这种波动,就不要这样使用。
回测必须使用真实逐笔报价数据这是购买以后最容易被忽视,同时也是非常重要的一点。
不要认为只要在MT5里面点击策略测试,就一定使用了交易商提供的真实逐笔报价。
MT5可以根据历史K线自动生成模拟报价,对于很多普通低频策略来说,这种差异可能并不明显。
但本策略内部存在路径依赖、事件状态和执行顺序判断。即使最终K线形态完全相同,只要中间价格经过的顺序不同,就可能触发不同的内部状态。
所以进行正式回测时:
请务必选择“基于真实报价的每个报价”模式,并使用交易商提供的真实逐笔报价历史。
如果使用模拟报价:
最终测试收益可能出现明显失真。绝大多数交易商没有那么长的数据,比如我这个EC交易商只有24年开始数据,EX交易商有2017年数据,但是以前数据完全是模拟出来的K线,无法获得真实收益,这一点必须说明!
为什么我最终决定自己开发这套EA我从事交易已经六年了。
这六年里面,我遇到最大的敌人其实一直都不是市场。
而是我自己。
当我状态好的时候,我可以非常认真地执行交易。一天可能赚200美元,也可能赚1000美元。
真正的问题不是我不知道怎么交易,而是:
赚钱以后,人的状态会发生变化。
比如这个月我认真交易赚了5000美元,下个月很容易因为上个月赚钱而开始自信、放松,甚至产生傲慢情绪。
然后交易质量下降,出现亏损。
亏损以后,我又会重新认真起来。认真以后又开始赚钱,赚钱以后又逐渐放松。
几年下来,我发现自己不断重复同一个循环:
认真 → 盈利 → 自信 → 松懈 → 亏损 → 重新认真
最让我苦恼的是,我非常清楚:
只要自己严格执行,交易表现就会明显改善。
但我无法保证自己的情绪、纪律和精神状态365天都保持完全一致。
人很难做到这一点。
所以我开始思考:
如果交易逻辑本身是可以执行的,为什么不能让一个没有情绪的程序去完成?
程序不会因为昨天赚钱而兴奋,不会因为连续盈利以后觉得自己无所不能,不会因为今天心情不好而少看几个条件,也不会因为亏损以后突然想把钱马上赚回来。
它只按照规则执行。
后来我开始购买别人出售的EA和交易策略,希望能够找到一个真正可靠的自动交易系统。
前前后后,我大约花了:
3000美元
但在不断购买、测试和研究这些策略以后,我发现这个市场里面存在太多问题:
未来函数、重绘、历史数据替换、忽略手续费、忽略点差、忽略滑点、隐藏长期浮亏、回测与实盘采用不同条件、不断根据过去行情重新调整参数、选择最好看的时间区间,以及各种看起来异常完美的资金曲线。
我最后得到一个结论:
如果继续寻找所谓的神奇EA,我可能永远也找不到真正想要的东西。
所以我不再买了。
我决定自己开发。
这就是这套EA最初形成的原因。
它最初的目标并不是制造一条最好看的回测曲线,而是:
把一个交易者原本依赖纪律和情绪才能完成的事情,转换成一个能够按照规则持续执行的自动化系统。
量化架构说明从工程结构来看,这套系统并不是传统的:
指标产生信号 → 直接下单
真正的决策流程更加接近:
市场状态识别 → 结构判断 → 事件确认 → 风险评估 → 执行验证
最终出现在MT5图表上的订单,只是整个内部状态系统经过多层约束之后产生的最终结果。
一、多时间尺度状态空间分解
系统采用多时间尺度状态解析结构,不同时间周期承担不同的信息职责。
方向结构、局部波动、市场事件、持仓状态和执行环境并不是简单叠加,而是分别映射到不同层级,然后通过内部状态关系共同决定最终是否允许执行交易。
因此,系统产生的并不是一个简单的买入或者卖出信号,而是:
一个经过多层状态确认以后才获得执行权限的交易状态。
二、滞回式市场状态路由
市场状态并不是通过一个固定阈值瞬间从一种状态切换到另一种状态。
系统内部存在状态持续、确认、非对称切换以及状态记忆机制,主要目的是降低市场处于临界区域时频繁在不同状态之间反复切换的问题。
新的交易周期一旦建立,其中一部分关键变量会被固定下来。
市场可以继续变化,但系统不会因为几个短周期波动,就不断重新解释已经建立的风险结构。
三、波动率归一化价格结构
系统内部并不会直接把绝对价格距离当成统一标准。
同样10美元的价格移动,在低波动市场和高波动市场中的意义完全不同。
因此,系统会把价格位移、结构距离、局部扩张和风险边界转换到经过波动率归一化的空间中进行判断。
换句话说:
系统关注的不是价格单纯移动了多少,而是这段移动相对于当前市场波动结构到底有多大。
四、路径依赖状态演化
当前价格并不是决定系统行为的唯一变量。
系统还会考虑此前市场是通过什么路径到达当前价格,以及当前已经形成了什么交易状态、风险状态和持仓结构。
所以:
即使价格重新回到完全相同的位置,系统也不一定做出完全相同的决定。
原因很简单:
市场走到这个价格的路径可能完全不同。
这也是为什么本策略对真实逐笔报价数据非常敏感。
五、分层风险预算
系统并不是产生一个信号以后直接决定开多少手。
每一个新的交易周期首先建立独立风险预算,然后内部风险规划模块再根据可使用风险空间计算实际仓位结构。
完整权限顺序可以理解为:
账户风险控制 > 交易周期风险 > 仓位规划 > 入场条件 > 单纯交易信号
所以:
交易手数不是系统首先决定的东西,而是整个风险模型计算完成以后的结果。
即使交易条件成立,如果上层风险空间不足,系统依然可以拒绝执行。
六、非线性仓位风险结构
当多个持仓同时存在时,整体风险并不能简单理解为每一张订单风险直接相加。
每一次新的仓位变化,都会改变整个交易周期后续能够承担的风险空间。
过去已经使用掉的风险预算,会直接影响未来还能不能继续增加新的风险暴露。
因此,系统管理的不是单独订单,而是:
整个交易周期不断变化的整体风险结构。
七、多空方向独立状态管理
多头和空头并不是简单使用同一套程序把方向反过来运行。
两个方向拥有相互独立的:
交易状态、风险状态、执行记忆和周期结构。
同时共享账户级资本风险控制。
从架构上来说,更接近于:
两套独立状态引擎,共同使用同一个账户资本控制层。
八、闭环执行验证
普通EA很多时候在订单发送成功以后,核心流程基本就结束了。
本系统并不是这样。
交易指令发送出去以后,系统还会继续检查:
计划状态 → 实际成交状态 → 最终确认状态
只有实际执行结果与内部风险状态保持一致时,订单生命周期才被认为有效。
因此,系统管理的不只是:
有没有成功发送订单
还包括:
实际执行结果是否仍然符合内部风险模型。
九、交易环境完整性检查
真实市场不是回测环境。
最小交易手数、手数步进、单点价值、合约大小、止损限制、冻结限制、保证金要求、点差、滑点以及订单失败,都可能影响最终交易结果。
这些东西虽然不是策略本身的方向判断逻辑,但它们直接决定策略能不能按照原始设计在真实市场中执行。
因此:
交易执行环境本身也属于整个风险系统的一部分。
十、合约状态变化识别
系统不会默认同一个交易品种永远拥有完全相同的交易条件。
如果交易商修改最小交易量、交易步进、单点价值、合约大小或者交易限制,原有风险计算基础就可能发生改变。
因此,系统会记录当前交易品种的重要执行属性,并检测关键交易条件是否发生变化。
对于自动化风险系统来说:
同一个品种名称,并不意味着它在任何时候都拥有完全相同的经济属性。
十一、故障闭合式风险控制
系统对于未知状态采用非常保守的原则。
无法确认安全,不等于安全。
如果关键保护状态无法确认、执行结果无法验证、交易环境发生异常或者风险条件已经偏离预期,系统优先限制新的仓位,而不是继续增加未知风险。
这是整个系统非常重要的一条原则。
十二、持久化状态重建
VPS会重启,MT5会更新,网络可能会中断,程序也可能被重新加载。
所以这套系统从一开始就没有假设程序永远不会中断。
交易周期和程序生命周期不是同一个概念。
系统会尽可能保存和重建已有交易状态,使程序重新启动以后能够理解当前账户已经处于什么阶段,而不是简单把所有已有仓位当成一个全新的开始。
十三、账户资本风险拥有最高权限
整个系统内部存在明确的风险权限等级:
账户资本保护 > 交易周期风险 > 仓位规划 > 入场授权 > 交易信号
这意味着,一个完全有效的交易机会,也有可能因为账户风险条件不允许而被系统拒绝。
因为在这套系统中:
出现信号,并不等于必须交易。
交易机会负责发现可能性。
资本风险系统负责决定有没有资格承担这次风险。
系统最终定义如果一定要用工程结构描述这套系统,它可以被理解为:
多时间尺度状态分解、滞回式市场状态识别、波动率归一化价格结构、路径依赖状态演化、分层风险预算、非线性仓位分配、多空独立状态管理、闭环执行验证、交易环境变化识别、持久化状态恢复以及故障闭合式资本保护。
最终你在MT5图表上看到的只是订单。
真正决定这张订单为什么能够出现的,是背后一整套不可见的状态判断和风险约束。
你可以看到系统在哪里交易。
但你看不到是什么状态允许了这笔交易。
风险说明任何EA、自动交易程序或者量化系统都不存在永久有效或者保证盈利。
历史回测不能保证未来收益,真实账户历史表现同样不能保证未来表现。
最终结果会受到点差、手续费、滑点、交易商执行质量、市场环境以及用户自行选择的资金档位影响。
我公开历史测试数据,是为了让用户能够自己验证策略,而不是告诉任何人未来一定会重复过去。
请根据自己能够真实承受的亏损选择资金档位。
如果某一个回撤金额已经会影响你的正常生活,那么这个风险档位就不适合你。
