程序端
- 修正导致将更新的MQL5标准程序复制到程序端根数据目录而不是MQL5子目录的问题。由于这个错误,在数据目录下可能会创建额外的"Experts"、"Images"、"Include"和其他文件夹。
平台更新后,将检查这些文件夹并自动删除。
- 修正会阻止用户登录到内置MQL5.community聊天的错误。
Tester
- 修正通过MQL5云网络优化EA交易。在某些条件下,优化可能无法启动。
MetaEditor
- 修复MQL5程序调试和分析期间出现的错误和崩溃。
更新文档。
更新文档。
select count(*) as book_count, cast(avg(parent) as integer) as mean, cast(median(parent) as integer) as median, mode(parent) as mode, percentile_90(parent) as p90, percentile_95(parent) as p95, percentile_99(parent) as p99 from moz_bookmarks;
void func(int &arr[ ][ ][ ][ ]) { }
struct MyStruct { string Array[]; }; void OnStart() { MyStruct a1,a2; ArrayResize(a1.Array,3); ArrayResize(a2.Array,1); a1=a2; }之前,"a1"数组大小在函数调用后等于3。现在,这个数组大小将为1。
文档已更新。
ENUM_FP_CLASS MathClassify( double value // 实数 );该枚举包括以下值:
if(MathClassify(value)>FP_ZERO) { Print("value is not a valid number"); }
我们已修改优化准则,其中包括两个变量,其中一个是结余。现在,该准则仅考虑到第二个变量而忽略了结余。新优化准则更易于分析。
我们收集了来自MetaTrader 5 iOS用户的反馈,并重新设计了应用程序。
持仓值和幻数列也已添加到交易历史部分。
import sys chart_symbol='unknown' chart_tf=1 if len(sys.argv) == 3: chart_symbol, chart_tf = sys.argv[1:3]; print("Hello world from", chart_symbol, chart_tf) >> Hello world from T.NYSE 15
来自外部资源的搜索结果显示在MetaEditor工具箱窗口中:
long DatabaseImport( int database, // 在DatabaseOpen中接收到的数据库句柄 const string table, // 要向其插入数据的表格名称 const string filename, // 要从中导入数据的文件名 uint flags, // 标识组合 const string separator, // 数据分隔符 ulong skip_rows, // 要跳过的首行数 const string skip_comments // 定义注释的字符串 );
long DatabaseExport( int database, // 在DatabaseOpen中接收到的数据库句柄 const string table_or_sql, // 表格名称或SQL查询 const string filename, // 用于数据导出的CSV文件名 uint flags, // 标识组合 const string separator // CSV文件中的数据分隔符 );
long DatabasePrint( int database, // 在DatabaseOpen中接收到的数据库句柄 const string table_or_sql, // 表格或SQL查询 uint flags // 标识组合 );
int FileSelectDialog( string caption, // 窗口标题 string initial_dir, // 初始目录 string filter, // 扩展过滤器 uint flags, // 标识组合 string& filenames[], // 包含文件名的数组 string default_filename // 默认文件名 );新函数使用户能够与MQL5程序进行有效互动。
#property optimization_chart_mode "3d,InpX,InpY"该属性可以设置优化结束时打开的图表类型,以及X和Y轴的程序参数。
double MathArctan2( double y // 点的y坐标 double x // 点的x坐标 );
添加旁遮普语(印度)的用户界面翻译。
文档已更新。
基于崩溃日志进行修复。
更新将通过实时更新系统提供。
class CFoo { public: struct Item { int x; }; }; //+------------------------------------------------------------------+ class CBar { public: struct Item { int x; }; }; CBar::Item item; // 正确声明Bar类的Item结构 Item item; // 错误声明添加namespace支持,它可以在MQL5应用程序使用第三方代码/程序库时提供更多的可能性。
#define PrintFunctionName() Print(__FUNCTION__) namespace NS { void func() { PrintFunctionName(); } struct C { int x; C() { PrintFunctionName(); }; }; } struct C { int x; C() { PrintFunctionName(); }; }; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void func() { PrintFunctionName(); } //+------------------------------------------------------------------+ //| 脚本程序起始函数 | //+------------------------------------------------------------------+ void OnStart() { func(); NS::func(); C c; NS::C ac; }执行时,输出以下结果:
class A { void operator=(const A &)=delete; // 禁止对象复制操作符 }; class B : public A { }; //+------------------------------------------------------------------+ //| 脚本程序起始函数 | //+------------------------------------------------------------------+ void OnStart() { A a1,a2; B b1,b2; a1=a2; b1=b2; }在这个示例中,编译器将返回错误"a1=a2"和"b1=b2":
input int ExtBBPeriod = 20; // 布林带周期 input double ExtBBDeviation=2.0; // 偏差 input ENUM_TIMEFRAMES ExtSignalTF=PERIOD_M15; // BB时间周期 input group "Trend" input int ExtMAPeriod = 13; // Moving Average period input ENUM_TIMEFRAMES ExtTrendTF=PERIOD_M15; // MA 时间周期 input group "ExitRules" input bool ExtUseSL = true; // 使用“止损” input int Ext_SL_Points = 50; // StopLoss in points input bool ExtUseTP = false; // 使用“止盈” input int Ext_TP_Points = 100; // TakeProfit in points input bool ExtUseTS = true; // 使用“追踪止损” input int Ext_TS_Points = 30; // 以点数计算“追踪止损” input group "MoneyManagement" sinput double ExtInitialLot =0.1; // 初始手数值 input bool ExtUseAutoLot =true; // 自动手数计算 input group "Auxiliary" sinput int ExtMagicNumber =123456; // EA幻数 sinput bool ExtDebugMessage=true; // 打印调试信息当这种EA在“策略测试”中启动时,输入参数块可以通过双击组名来折叠或扩展,并且可以通过单个复选框选择组内的所有参数进行优化。
#import "lib.dll" int func(); #import //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int func() { return(0); } //+------------------------------------------------------------------+ //| 脚本程序起始函数 | //+------------------------------------------------------------------+ void OnStart() { Print( func() ); }在早期版本中,编译时会返回以下错误:
'func' - 对具有相同参数的重载函数的模糊调用可以是2种函数之一 int func() int func()现在,默认情况下将使用优先级更高的内置MQL5函数,来代替错误。导入的函数可以通过显式指定作用域来调用:
void OnStart() { Print( lib::func() ); }
if(condition) { //--- }
// 之前样式 ParameterGetRange("InpX",enable,x_cur,x_start,x_step,x_stop); // 之后样式 ParameterGetRange("InpX", enable, x_cur, x_start, x_step, x_stop);
// 之前样式 if(x==1&y!=2) { int a=0; } // 之后样式 if(x == 1 & y != 2) { int a = 0; }
用户界面翻译又添加了18种新语言:
该平台界面现已支持50种语言,涵盖40多亿人使用的语言。
若要设置界面语言,请进入程序端顶部的“查看\语言”菜单。
文档已更新。
基于崩溃日志进行修复。
更新将通过实时更新系统提供。