MetaTrader 5的MQL5脚本源代码
脚本在MetaTrader 5中执行使用MQL5程序时的一次性操作并在之后从图表直接删除。功能样例包括上传交易历史,生成报告和通过电邮将其发送,从文件下载和处理数据。脚本也可以被用来创建图形界面或快速执行单一类型交易操作,例如,马上全部平仓。
您可以在MetaTrader 5下载和启动提供的脚本。脚本程序库也能够从MetaEditor开发环境直接获得,以便允许您学习MQL5编程。
- 免费交易应用程序
- 8,000+信号可供复制
- 探索金融市场的经济新闻
MarketInfo 是一款适用于 MetaTrader 5 的简易信息脚本。它会收集当前交易品种的关键数据并将其记录到日志中,包括:价格、点差、波动率(ATR)、K线收盘前剩余时间、N根K线的统计数据以及趋势判断。
在每个M1K线段上开立一个虚拟的套期交易,根据实际 tick 历史数据向前推进,并针对一系列止损距离,报告1分钟OHLC建模在多大程度上会导致交易方向判断错误。
针对每笔已平仓交易导出一行CSV数据,其中包含对账单上未显示的数值:该交易曾达到的最高未实现盈利(MFE)、曾承受过的最大未实现亏损(MAE)、实际保留的MFE金额、交易跨过的K线数量以及持仓时长。 该指标的计算方式与“交易波动”指标相同,但将结果写入文件而非绘制在图表上,因为针对这些数据值得探讨的问题,是图表无法解答的:获利率是否取决于入场时间? 我提前平仓的交易是否恰恰是持仓时间最长的?周一的亏损交易达到的MAE是否与周五不同?只要生成CSV文件,这些问题只需通过一个数据透视表即可解答。 输出格式为分号分隔且带标题行,位于 MQL5\Files 目录下;可在任何电子表格软件中打开。测量限制:波动值取自所选时间周期的K线高低点;单根K线内的价格路径无法确定。“K线”列报告了每笔交易的分辨率,汇总统计时将单根K线交易单独计数,而非将其平均计算在内。
通过一个简单的提示文件,您可以自定义 MetaTrader 5 AI 助手,选择其语言、个性、菜单和行为。
用于检测绘图指标是否会重新绘制,而不是断言其不会重新绘制。 不变式:一旦K线收盘并完成处理,其上绘制的任何对象都不得发生任何变化——既不能移动、不能改变颜色、不能更改文本,也不能消失。 该脚本会为自定义符号初始化真实历史数据,通过模板附加您的指标,记录每个对象,追加K线,强制进行全面重新计算,并逐个对象进行比较。 变化和消失情况会分别统计,因为只有发生变化才意味着该断言为假。若比较结果为空,则报告结果为“INCONCLUSIVE”(无法得出结论),绝不会被判定为通过。输出结果为 CSV 文件,您可以将其与数字一起发布。
“神经网络亏损模式审计器”利用已平仓交易历史数据,训练一个完全用原生 MQL5 从零编写的小型前馈神经网络,以测试行为特征和市场背景特征能否预测哪些交易更可能亏损。 该工具报告的准确率优于简单基线模型、概率校准表、特征重要性排列以及可配置的A-F综合评分(附带建议)。 首次运行时,它会使用内置的合成模拟数据,因此无需任何设置即可立即查看输出结果;若将其中一个输入参数设置为 InpUseDemoData=false,则可转而分析真实账户的历史数据。纯 MQL5 实现:不使用任何外部库、Python 语言或任何形式的人工智能服务。
在您花费数周时间围绕该信号构建专家顾问(EA)之前,先评估该入场信号是否确实能跑赢交易成本。该工具会报告扣除成本后的净收益、基于非重叠样本的客观t统计量,并提供随机对照。不会下达任何订单。
显示那些会默默拒绝订单的隐性合约限制:止损价位、冻结价位、最小/步长/最大手数、点值和点差、点差类型、成交模式、掉期费用,以及最小手数所需保证金与您的可用保证金之间的对比。
一个用于运行多个EA(或同时进行手动交易)的账户的只读审计脚本。它按魔术号对已平仓交易记录进行分组,并按每个魔术号输出一行: 已平仓的往返交易、包含交易双方掉期和佣金在内的净盈亏、胜率、盈利因子、平均盈亏、当前持仓和挂单、交易日期及交易代码——按净结果排序,并支持导出为 CSV 文件以便在电子表格中使用。
针对运行多个专家顾问(EA)的账户提供的只读分析功能。该功能按魔术号码对已平仓交易进行分组,并衡量同时运行这些系统能为您实际节省多少:独立运行与组合运行的回撤对比、以热力图形式在图表上绘制的成对相关性矩阵,以及对投资组合各期回报进行的蒙特卡洛重排。
该脚本从M1K线图的spread字段中提取您经纪商的实际点差,并输出中位数、 第90百分位数和第99百分位数,单位包括价格、点数和ATR百分比,并按每小时将平均点差和最大点差导出为CSV文件。 此功能用于根据您账户的实际成本测试交易策略,而非基于凭空想象的“典型”点差。
读取已平仓交易记录(CSV文件,或由配套脚本 RuinExport.mq5 根据当前账户的交易记录自动生成的文件),并报告四项独立的风险特征: 亏损后的交易量激增、导致平均价格恶化的同向头寸重叠、盈亏回报的不对称性,以及基于指定单笔交易风险水平的经典破产风险估算。 这四项评分综合生成一个从 A 到 F 的单一等级,并附有通俗易懂的建议。如果未找到 CSV 文件,脚本会自动生成一份可复现的演示交易记录,因此首次运行时即可查看报告。
一个纯MQL5脚本,用于衡量策略优势对执行成本的鲁棒性。该脚本读取包含已平仓交易日期、盈利和交易量的CSV文件,并将每笔交易的成本建模为固定部分加上按手数计算的部分。 该脚本会输出每笔交易的盈亏平衡成本、缓冲系数(即在假设的实际成本的多少倍时,净利润会降至零)、按假设成本重新定价后的净利润和利润因子、因成本导致盈利交易转为亏损交易的比例,以及包含建议的A+至F等级的综合成本稳健性评分。 若未提供文件,程序将生成可复现的样本并进行分析,因此首次运行即可查看输出结果。无需外部库、无需 Python、无需 AI。
根据您的风险(占净值的百分比或固定金额)和止损距离(点数或价格水平),计算计划交易的正确仓位大小。该工具会遵循该交易品种的合约规格——报价单位及价值、最小/最大/步长——并估算所需保证金。
将您在可配置时间段内已平仓的头寸导出到 CSV 文件中,以便在 Excel 或 Google 表格中进行交易日志分析:建仓和平仓的时间及价格(针对部分成交采用成交量加权法计算)、成交量、点数收益、佣金、掉期费用、净利润和交易时长。
一个原生 MQL5 脚本,用于分析账户回撤的结构,而不仅仅是单一的“最大回撤”数值。它读取日度权益曲线(Date,DailyPnL CSV 格式),重建亏损曲线,并将其拆分为各个回撤阶段,同时记录各阶段的回撤幅度、持续时间和恢复时间。 随后,该脚本会报告“溃疡指数”、“痛苦指数”、“恢复因子”以及处于亏损状态的时间,并将这些指标整合为一个综合韧性评分(A+ 至 F),并附带建议,显示在“专家”选项卡中。无需外部库;若未找到文件,它会自动生成一条示例曲线,因此开箱即用。
一个原生 MQL5 脚本,用于衡量策略盈利的集中程度——即优势是广泛分布,还是仅依赖于少数几笔幸运交易。该脚本读取按单笔交易分列的 CSV 文件(日期、盈利),并报告最大交易占净利润的比例、 获利交易的基尼系数、集中度分布图、一项剔除最佳几笔交易后重新计算净利润和利润因子的生存测试,以及单日最大收益与可配置的一致性阈值的对比,并将这些结果整合为一个集中度与一致性综合评分(A+至F),并附带建议。 若未找到文件,程序将自动生成样本集,因此开箱即用。无需外部库、无需Python、无需AI。辅助程序ExportTrades.mq5会根据您的交易历史生成该文件。
一款开源的MT5脚本,可将XAUUSD/GOLD交易符号的设置、点差、点值、合约规模、成交量步长、止损/冻结水平、隔夜利息以及账户上下文信息记录到日志中,并可选地导出为CSV文件。
一个诊断脚本,用于比较“市场观察”中每个交易代码的 SYMBOL_TRADE_TICK_VALUE、SYMBOL_TRADE_TICK_VALUE_LOSS 和 SYMBOL_TRADE_TICK_VALUE_PROFIT 值。 将每个符号归类为以下四类之一(ALL_EQUAL、TV_MATCHES_PROFIT、TV_MATCHES_LOSS、ALL_DIFFER),并提供汇总报告及解读提示。 该功能有助于在EA中实现基于风险的仓位大小调整时,验证应采用哪种点值属性。可将每个交易符号的完整报告导出为CSV文件,并保存在MQL5/Files目录下。
该脚本可根据账户货币计价的止损目标(例如每笔头寸50美元)为每笔已开仓头寸设置止损。适用于任何入金货币和任何外汇交易品种。会验证经纪商的止损/冻结水平。货币转换由系统自动处理。
三重屏障标注管道通常使用一个任意常数(0.5–1.0%)或传统的点差假设作为 min_ret 阈值。如果将阈值设定在实际往返交易成本之下,会导致该管道将成本驱动的噪声误判为可交易信号。 由此标注的数据集会系统性地高估边际效应,而基于这些标签训练的任何模型都会过度拟合于标注方案产生的伪影,而非真实的市场结构。 TransactionCostCollector.mq5 是一个独立脚本,可解决该问题中的数据采集环节。
本脚本是开发人员如何使用 MQL5 以编程方式处理文件的实用示例。其关键目标之一是演示有效的项目文件组织,这对于开发大型系统或旨在创建可移植、独立项目的开发人员来说至关重要。这一概念还可以进一步扩展和完善,以支持更先进的开发工作流程。
这是一个简单的程序,用于比较异步和同步全部关闭的情况。 这是一个示例程序,因此可以根据自己的测试目的进行修改,例如添加条件。
该脚本有助于检查 ONNX 模型的结构,深入了解输入和输出、名称及其属性。它尤其有助于调试和了解机器学习应用中使用的 ONNX 模型的特性。
该函数执行开仓交易的主要逻辑。 根据符号信息和用户提供的参数计算开仓价、获利水平和止损。 准备一个包含必要信息的交易请求(MqlTradeRequest),如符号、交易量、订单类型、偏差、注释、神奇数字等。调用 OrderSend 函数发送操作请求并获取结果。 SetTypeFillingBySymbol 函数:根据符号的填充策略确定订单填充类型(填充或杀死、立即或取消或返回)。 GetMinTradeLevel 函数:根据冻结水平和符号停止水平计算最低操作水平。 调整最低水平以确保其在一定范围内,并返回结果。
手动调整单笔交易的止损以匹配其开盘价是一项相对简单的任务,但单独管理众多头寸则会非常繁琐且耗时。适用于 MT4/MT5 的 Titik Impas 盈亏平衡脚本简化了这一过程,为交易者处理多个仓位提供了效率和便利。
将全面的交易统计数据导出到 CSV 文件。
该功能执行开仓交易的主要逻辑。它根据用户提供的符号信息和参数计算开仓价、止盈水平和止损。准备一个交易请求(MqlTradeRequest),其中包含必要的信息,如符号、交易量、订单类型、滑点、评论、神奇数字等。调用 OrderSend 函数发送交易请求并获取结果。SetTypeFillingBySymbol 函数:根据符号的执行策略确定订单执行类型(成交或取消、立即或取消或返回)。GetMinTradeLevel 函数:根据符号的冻结水平和停止水平计算最低交易水平。调整最低水平以确保其在一定范围内,并返回结果。