- 显示:
- 25
- 等级:
- 已发布:
- 已更新:
-
需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务
我 决定分享 一个 大型 项目中的代码 , ,在 一个 单独的 库中设计 。
从附件链接中下载高级优化报告 保存程序( Advanced Optimization Report Saver.mqh)文件,并将其保存到终端文件夹
添加连接下载文件的代码:(可以添加到您的智能交易系统代码的最后一行下面或其他任何地方
#include <Advanced Optimization Report Saver.mqh>然后,您需要在 Expert Advisor 中的现有函数中添加对导出函数的调用:(如果没有函数,则添加它们)
void OnTick(){ //... 您的代码 //保存余额和净值图表 save_OnTick(TimeCurrent(), AccountInfoDouble(ACCOUNT_BALANCE), AccountInfoDouble(ACCOUNT_EQUITY)); } void OnTesterInit() { //... 您的代码 save_OnTesterInit();//print to chart "Do not close this window until the optimization is complete!" (在优化完成之前不要关闭此窗口!) } void OnTesterDeinit(){ //... 您的代码 save_OnTesterDeinit();// 获取框架 } double OnTester(){ //... 您的代码 //save any custom values: double AvgPips=0; save_Add( AvgPips, 2, "Custom 1", true);//值、位数、名称、排序_最小值_最大值 save_Add( TesterStatistics( STAT_PROFIT ), 2, "Custom 2"); double Custom = 0;//您的定制健身 saveCharts(Custom);//保存最终权益,所有交易... return Custom; }
save_Add 函数允许您在 报告中添加自己想要的标准:
save_Add( AvgPips, 2, "Custom 1", true);//值、位数、名称、排序_最小值_最大值
save_Add( TesterStatistics( STAT_PROFIT ), 2, "Custom 2");
例如,让我们将这段代码添加到Examples 文件夹中的 Moving Average Expert Advisor 中(...\MQL5\Experts\Examples\Moving Average\Moving Average.mq5)。首先,复制原始的智能交易系统,并将其命名为Moving Average Charts.mq5。现在,将上面说明中的代码添加到其中。
更改 只在代码的最后,从CheckForOpen(); 行之后的 OnTick() 函数开始:
void OnTick(void) { //--- if(SelectPosition()) CheckForClose(); else CheckForOpen(); //保存余额和净值图表 save_OnTick (TimeCurrent(), AccountInfoDouble( ACCOUNT_BALANCE), AccountInfoDouble( ACCOUNT_EQUITY)); } void OnTesterInit() { //... 您的代码 save_OnTesterInit();//print to chart "Do not close this window until the optimization is complete!" (在优化完成之前不要关闭此窗口!) } void OnTesterDeinit(){ //... 您的代码 save_OnTesterDeinit();// 获取框架 } double OnTester(){ //... 您的代码 //save any custom values: double AvgPips=0; save_Add( AvgPips, 2, "Custom 1", true);//值、位数、名称、排序_最小值_最大值 save_Add( TesterStatistics( STAT_PROFIT ), 2, "Custom 2"); double Custom = 0;//您的定制健身 saveCharts(Custom);//保存最终权益,所有交易... return Custom; } #include <Advanced Optimization Report Saver.mqh>
如您所见,这非常简单,只需几分钟。
之后,您就可以运行优化:


最后一张截图显示,连接的代码添加了 2 个参数:
- 保存统计数据- 启用或禁用统计数据收集功能
- 平衡图表和权益图表中的像素- 指定迷你图表宽度中的像素数。
优化完成后,您可以创建一份报告(使用解析已保存框架的程序),并看到以下内容:
| 100 行移动周期 | 10 行,使用 MovingShift |
如果超过 20 行,则只显示平均值的 3 条横线:
100 行很难看清,因此需要减少行数。
使用输入变量时,不要使用相同的步长,而是通过枚举器(enum)进行刻度,例如: 1,2,3,5,7,10,15,20,30,50,70,100 - 将只显示 12 行,而不是 100 行。
enum nums1 {__0=0, __1=1, __2=2, __3=3, __5=5, __7=7, __10=10, __15=15, __20=20, __30=30, __50=50, __70=70, __100=100, __150=150, __200=200, __300=300, __500=500}; input nums1 MovingPeriod = 10; // 移动平均周期
您可以从附件中下载枚举版本 的智能交易系统。
计算时间将快约 8 倍,文件大小将小约 8 倍,优化次数将从 1000 次减少到 120 次:

不过,通常情况下,回溯测试的最佳结果并不是正向测试的最佳结果。
您解析已保存框架的程序可以显示这样的图表:

以及类似这样的附加标准:
如果您有其他有趣标准的代码,可以建议将它们添加到库中。
更新:
- 2026-02-02:在自定义标准名称中添加了对 UTF 字符的支持。
由MetaQuotes Ltd译自英文
原代码: https://www.mql5.com/en/code/68706
EA Duplicate Detector
允许 EA 根据条件确定图表上是否有重复的 EA。
Project Template Generator
本脚本是开发人员如何使用 MQL5 以编程方式处理文件的实用示例。其关键目标之一是演示有效的项目文件组织,这对于开发大型系统或旨在创建可移植、独立项目的开发人员来说至关重要。这一概念还可以进一步扩展和完善,以支持更先进的开发工作流程。
Binary tradng based on candle colors
计算蜡烛颜色的简单二元交易策略。
ShowTradeLines Service
这是一种在图表上以趋势线和/或箭头显示现有头寸/交易的进入/退出点的服务。


