金融科技【免费下载链接】metatrader5Implementation of Trading Strategies for Backtesting in MetaTrader 5 (MT5) Using MQL5 Programming Language – Free Open-Source Trading Bots (Expert Advisors) for MT5项目地址https://gitcode.com/gh_mirrors/me/metatrader5点击查看免费下载metatrader5 是一个基于MQL5语言的开源量化交易项目为 MetaTrader 5MT5提供了多个可免费使用的交易机器人Expert Advisors简称 EA。项目的核心是位于 EAUtils.mqh 中的GerEA 类——这个仅用约 2000 行代码构建的交易引擎封装了开仓、平仓、仓位计算、移动止损、网格加仓、净值熔断等全部交易逻辑让每一个 EA 策略只需专注何时买卖的决策部分。 本文带你从零读懂这套核心框架。一、metatrader5 项目结构与 EAUtils 的位置先鸟瞰一下仓库的组织方式理解各目录职责后再读源码会轻松很多目录作用Experts/各个交易策略 EA 的源码.mq5如 CEZLSMA.mq5、BBRSI.mq5Include/公共模块头文件EAUtils.mqh 就在其中Indicators/自定义指标ChandelierExit、ZLSMA、UTBot 等Build/各 EA 的预编译版本.ex5Test/每个 EA 的回测报告图表、参数设置、报告文件EAUtils.mqh 全文件 2082 行结构非常清晰EAUtils.mqh ├── 4 个枚举类型新闻重要性 / 订单填充 / 止损类型 / 风险模式 ├── GerEA 类第 46-199 行交易引擎对外 API └── 40 个独立函数下单、平仓、仓位统计、风控、新闻过滤… 这种类 自由函数的设计很典型自由函数是底层工具GerEA 类把它们打包成一组语义化的方法策略代码只需要调用类方法即可。二、GerEA 类剖析一个封装完整的交易引擎GerEA 类的定义见 EAUtils.mqh#L46-L199。它本质上是一个状态容器 方法门面包含两部分① 公开成员变量策略参数构造函数中给出合理默认值成员默认值含义risk0.01每笔交易风险比例1%slippage30最大滑点点nRetry/mRetry5 / 2000下单失败重试次数 / 重试间隔毫秒trailingStopLevel0.5移动止损触发比例grid/gridMaxLvlfalse / 20网格开关 / 最大加仓层级equityDrawdownLimit0净值回撤熔断阈值0 为禁用news/newsMinsBeforefalse / 60新闻过滤开关 / 新闻前观望分钟数filling/riskMode默认订单填充方式 / 仓位风险模式② 公开方法策略只需面对这十几个入口开仓BuyOpen()/SellOpen()—— 两个重载分别用于市价单和挂单带进场价平仓BuyClose()/SellClose()/PosClose()按票号查询PosTotal()持仓数、OrdTotal()挂单数、OPTotal()总订单数、GetMagic()风控三剑客CheckForTrail()移动止损、CheckForGrid()网格加仓、CheckForEquity()净值熔断一个细节值得注意Init()方法里调用了calcMagic()它用品种名 周期 种子拼接生成唯一的 magic number订单标记号天然避免多个 EA 实例互相认错订单。而auth()函数则通过账户登录号白名单判断是否授权属于作者自己的发布保护机制。三、核心下单流程order() 函数做了哪些事order()EAUtils.mqh#L400是整套引擎的心脏BuyOpen/SellOpen最终都汇入它。一次市价开仓要经过 6 道工序价格校验买单确认止损价低于现价、止盈价高于现价方向不合法直接放弃新闻过滤若开启news先查经济日历hasSymbolNews高影响新闻前后 N 分钟内禁止开仓——这是很多散户 EA 缺失的风控细节自动注释首笔订单会在 comment 里写入止损距离后续移动止损/网格逻辑全靠这个暗号识别仓位层级自动仓位vol 0时调用calcVolume()按风险比例计算手数填充方式自适应通过IsFillingTypeAllowed()探测交易品种支持 FOK / IOC / RETURN 哪种成交方式OrderCheck预检失败还会自动切换填充模式重试智能重试遇到报价变动REQUOTE、超时、连接断开等可恢复错误时等待mRetry毫秒后用最新 Bid/Ask 价重发最多nRetry次而资金不足、市场关闭等不可恢复错误则立即终止并打印日志。这种预检 可恢复错误重试的写法是实盘 EA 稳定运行的关键也解释了为什么EATemplate里Slippage、Filling都开放为输入参数。四、按风险自动算手数calcVolume() 的三种模式calcVolume()EAUtils.mqh#L311实现了固定百分比风险的仓位管理核心公式手数 账户资金 × 风险比例 ÷ |进场价 − 止损价| × 最小报价单位 ÷ 每跳价值并支持 4 种ENUM_RISK模式RISK_DEFAULT按余额与可用保证金的较小值的百分比冒险最常用RISK_FIXED_VOL直接使用固定手数RISK_MIN_AMOUNT、RISK_EQUITY/RISK_BALANCE等按权益、余额、可用保证金等不同基准计算。此外还有两个贴心处理结果按SYMBOL_VOLUME_STEP规范化并强制夹在volMin ~ volMax之间开启马丁格尔martingale时上一单亏损会按 2 倍加仓但上限被martingaleRisk封顶——杠杆放大收益的同时用风控参数压住了尾巴。五、风控三剑客Trail、Grid、Equity这三个函数都由定时器周期性调用是引擎最有策略价值的部分1️⃣ 移动止损 —— checkForTrail()EAUtils.mqh#L1106 的核心思路是保本 追踪单笔仓位当浮盈超过阈值时把止损推进到max(开仓价, 保本价) ± 当前浮盈 − 追踪距离且每次推进方向有利才更新网格仓位先按整个持仓组计算加权保本价浮盈达到目标比例后用OrderSendAsync异步批量更新所有层级的止损妙处在于兜底如果新止损离市价太近被拒INVALID_STOPS且此时已有浮盈引擎会直接平仓落袋而不是让利润回吐。2️⃣ 网格加仓 —— checkForGrid()EAUtils.mqh#L1288 实现了自动马丁式网格当价格按止损距离即 comment 中的暗号向下/向上每推进一层就按gridVolMult倍数加仓并把整组仓位的止盈统一上移到覆盖成本 目标利润的位置层数达到gridMaxLvl即停止。⚠️ 项目 README 中明确提示网格能暴力提升回测收益但同样放大了风险实盘前务必充分回测。3️⃣ 净值熔断 —— checkForEquity()EAUtils.mqh#L1396 逻辑最简单但最救命当账户权益相对余额的回撤超过limit时优先平掉亏损最大的那个品种的全部仓位把止损行为从逐单上升到账户级。六、配套工具函数止损计算与多品种BuySL()/SellSL()EAUtils.mqh#L1921内置 4 种止损策略——SL_SWING最近 N 根 K 线的摆动高低点、SL_ARN 根 K 线平均波幅、SL_MRN 根 K 线最大波幅、SL_FIXED_POINT固定点数一个函数覆盖了主流止损流派fillSymbols()根据币种对字符串如 EUR, USD, JPY…自动组合出所有可交易交叉货币对并保留品种后缀如_o方便一个 EA 管理多品种新闻日历fetchCalendar()会按年份从 MT5 经济日历拉取数据存入本地数据库EAUtils.mqh#L1517保证回测时同样能过滤新闻时段这是回测真实性的加分项。七、GerEA 实战EATemplate 如何三步接入打开官方模板 EATemplate.mq5可以看到标准用法就三步GerEA ea; // 1. 声明引擎 void OnInit() { ea.Init(); // 2. 初始化生成 magic、校验授权 ea.risk Risk * 0.01; // 绑定输入参数…… ea.grid Grid; EventSetTimer(TimerInterval); } void OnTimer() { // 3. 定时器驱动风控 if (Trail) ea.CheckForTrail(); if (Grid) ea.CheckForGrid(); }策略作者只需实现BuySignal()/SellSignal()两个信号函数调用ea.BuyOpen(in, sl, tp)即可仓位、重试、风控全部隐形。仓库中 CEZLSMA、3MACD、BBRSI 等 15 个 EA 全部基于这一套引擎这正是引擎与策略分离架构的红利改一处风控所有 EA 同时受益。八、跑一次回测验证引擎效果每个 EA 都在 Test/ 下留有完整回测档案以 CEZLSMAAUDUSD M152019.01–2023.08为例在 MT5 策略测试器中加载 EA、选择品种周期参数见 settings.png运行后得到净值曲线见上文 graph 图与指标报告回测报告显示该策略 1010 笔交易中盈利交易占比约 84%但作者也在 Test/CEZLSMA/README.md 中诚实地注明纯策略实现长期并不盈利当前版本是叠加了网格技术才实现盈利——读源码时结合这类说明比盲目信任回测曲线重要得多。九、总结GerEA 类给 EA 开发者的 3 点启示启示对应实现引擎与策略解耦GerEA 只暴露 BuyOpen/SellOpen/风控三个入口策略代码极简防御式下单价格校验 → 预检 → 填充模式自适应 → 可恢复错误重试层层兜底风控内置而非外挂固定风险仓位、新闻过滤、移动止损、网格上限、账户级熔断全部封装在引擎内如果你想基于 metatrader5 开发自己的 MT5 EA建议路线先通读 EATemplate.mq5 了解接入方式 → 再精读 EAUtils.mqh 中order()与checkForTrail()两个函数 → 最后参考 Indicators/ 里的指标实现补充信号逻辑。这套 2000 行框架麻雀虽小五脏俱全是学习 MQL5 实盘工程化写法的绝佳样本。赞分享金融科技【免费下载链接】metatrader5Implementation of Trading Strategies for Backtesting in MetaTrader 5 (MT5) Using MQL5 Programming Language – Free Open-Source Trading Bots (Expert Advisors) for MT5项目地址https://gitcode.com/gh_mirrors/me/metatrader5点击查看免费下载相关推荐快速掌握ctpbee微核心交易框架的完整指南快速掌握ctpbee微核心交易框架的完整指南 ctpbee是一个专为交易开发者设计的微核心框架基于vnpy交易接口重新封装上层API简化安装流程让开发者VeighNa量化交易框架实战从入门到精通的核心指南你是否曾经在量化交易的道路上感到迷茫面对复杂的交易策略和庞大的数据流是否渴望一个强大而灵活的工具来支撑你的交易系统VeighNavnpy作为国内领先的金融科技后端机器学习vn.py量化交易框架从零到精通的完整实践指南与6大核心模块解析vn.py量化交易框架从零到精通的完整实践指南与6大核心模块解析 vn.py作为基于Python的开源量化交易平台开发框架为金融从业者和编程爱好者提供了构建金融科技后端机器学习上一篇Ask Dr. Andrew Huberman 系统提示词深度解析TheBigPromptLibrary 中神经科学人物模拟 GPT 的指令设计下一篇如何系统学AI系统免费AI Infra开源课程完整实战AI硬件、推理引擎与大模型优化创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
3 种方式批量下载小红书图文与视频:XHS-Downloader 实操笔记 3 种方式批量下载小红书图文与视频:XHS-Downloader 实操笔记 【免费下载链接】XHS-Downloader 小红书(XiaoHongShu、RedNote)链接提取/作品采集工具 项目地址: https://gitcode.com/gh_mirrors/xh/XHS-Downloader
看到喜欢的图文笔记和… · 2026/11/4 2:13:04
【前端】JavaScript 需要放在script标签里面 引入方式 外部模式的话用script src相对路径绝对路径网络路径都是可以放的
在开发中一般css放在js上边,因为加载出来页面了,用户才交互
变量
js是动态弱类型语言,声明变量的时候不区分类型 变量命名规则
数据类型… · 2026/11/4 2:12:04
DYYY设置详解:如何玩转100+个开关,避开新手必踩的5大坑 【免费下载链接】DYYY 用于调整抖音的UI的Tweak 项目地址: https://gitcode.com/gh_mirrors/dy/DYYY 点击查看 免费下载 DYYY 是一款用于调整抖音 UI 的 Theos/Logos Tweak(iOS 14.0,在抖音 36.5.0 上测试)。它的设置面板提供 8 … · 2026/11/4 2:12:04
AI技术博文写作规范与内容真实性准则 我无法基于“2026年3月全球人工智能技术动态”这一标题生成符合要求的博文。原因如下:该标题指向一个尚未发生的时间点(2026年3月),属于未来事件;提供的输入中无任何实质性内容支撑:项目正文为空、关键词未… · 2026/11/4 23:57:30
Maven依赖下载慢?阿里云与华为云镜像配置实战指南 1. 依赖下载慢这件事,到底卡在哪做 Java 项目的人大概都经历过这种场景:新建一个工程,pom.xml刚写完,点一下刷新,进度条在Downloading from central那里一动不动,泡杯咖啡回来还在转,最后干脆给… · 2026/11/4 23:57:30
机器学习驱动的新型光催化材料设计及其在PM2.5治理中的应用 1. 项目背景与核心价值雾霾治理一直是环境工程领域的重大挑战,特别是PM2.5这类细颗粒物的去除尤为困难。传统空气净化技术主要依赖物理过滤(HEPA滤网)或被动吸附(活性炭),存在滤材更换频繁、二次污染等问题… · 2026/11/4 23:57:30
零成本创作工具链:开源软件打造个人内容生产工作流 做个人内容这几年,我电脑里装过的软件没有一百也有八十,但真正长期留在任务栏里的,翻来覆去就那么几个。早些年我也走过弯路,觉得专业的事就得用专业的工具,于是咬着牙订阅了一堆创作软件,每个月账单出来的… · 2026/11/4 23:57:30
智算集群性能诊断实战:Benchmark、监控与故障排查体系 1. 从一次训练任务卡死说起:智算集群为什么需要"听诊器"凌晨两点,训练任务突然卡在某个 step 不动了。日志没有报错,GPU 利用率从 95% 掉到 3%,nvidia-smi 显示显存还占着,但计算单元几乎空转。这种场景做 A… · 2026/11/4 23:56:28
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38
AI辅助技术栈评估:提升研发决策效率60% 1. 项目背景与核心价值技术决策一直是研发团队面临的重大挑战。随着技术生态的快速演进,技术栈的选择、维护和迭代变得愈发复杂。我们团队在过去两年里,先后经历了三次重大技术栈迁移,每次都需要投入大量人力进行技术评估和风险分析。直到去年… · 2026/11/4 0:00:17
从生成Token到直接决策:Jev如何重塑AI Agent工程实践 1. 从"生成文字"到"拍板决策":Jev 到底在解决什么问题大多数人第一次接触大模型,脑子里建立的模型是"输入问题、输出文字"。你问它今天天气怎么样,它给你一段描述;你让它写个周报,它给你… · 2026/11/4 0:00:17
32G统一内存跑大模型:内存账、TPS实测与端云分流 想在一台 32G 统一内存的小主机上把大模型跑成"日常可用",这件事我前后折腾了小半年。标题里说的这台 Mac mini M6,是我们这次讨论的目标平台,具体到手规格以实物为准;但下面这套推算方法和实测思路,对任何统… · 2026/11/4 0:00:17
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38