MetaTrader 5平台更新版将于2018年10月26日进行发布。该更新将有以下变化:
#import "TestLib.dll" //+------------------------------------------------------------------+ //| 脚本程序起始函数 | //+------------------------------------------------------------------+ void OnStart() { int x=41; TestClass::Inc(x); Print(x); }
public class TestClass { public static void Inc(ref int x) { x++; } }
struct MqlTick { datetime time; // 最后价格更新时间 double bid; // 当前卖价 double ask; // 当前买价 double last; // 最后一笔交易的当前价格 ulong volume; // 当前最后价格的交易量 long time_msc; // 以毫秒计算的最后价格更新时间 uint flags; // 报价标识 double volume_real; // 准确性更高的当前最后价格的交易量 };
struct MqlBookInfo { ENUM_BOOK_TYPE type; //ENUM_BOOK_TYPE枚举的订单类型 double price; // 价格 long volume; // 交易量 double volume_real; //准确度更高的交易量 };
//+------------------------------------------------------------------+ //| 默认包装 | //+------------------------------------------------------------------+ struct A { char a; int b; }; //+------------------------------------------------------------------+ //| 指定包装 | //+------------------------------------------------------------------+ struct B pack(4) { char a; int b; }; //+------------------------------------------------------------------+ //| 脚本程序起始函数 | //+------------------------------------------------------------------+ void OnStart() { Print("sizeof(A)=",sizeof(A)); Print("sizeof(B)=",sizeof(B)); } //+------------------------------------------------------------------+
sizeof(A)=5 sizeof(B)=8
enum Main { PRICE_CLOSE_, PRICE_OPEN_ }; input Main Inp=PRICE_CLOSE; //+------------------------------------------------------------------+ //| 起始函数 | //+------------------------------------------------------------------+ void OnStart() { }
class X { }; void f(int) { } template<typename T> void a(T*) { new T(2); } // 以前,编译器在这里生成错误 template<typename T> void a() { f(0); } void OnInit() { a<X>(); }
更新将通过实时更新系统提供。
论坛
MT5使用
Sergey Golubev, 2018.10.27 15:08
Sergey Golubev, 2018.10.27 14:01
-----------------
您同意网站政策和使用条款
可以使用cookies登录MQL5.com网站。
请在您的浏览器中启用必要的设置,否则您将无法登录。
230758
MetaTrader 5平台更新版将于2018年10月26日进行发布。该更新将有以下变化:
这个功能的便利性在使用多个显示器进行操作时非常明显。因此,您可以在一个显示器上设置平台的主窗口来管理您的账户状态,并将您的图表移动到另一个显示器上以观察市场动向。若要将图表从程序端分离,请在快捷菜单中禁用“固定”选项。然后,将图表移动到所需的显示器。
通过分离图表的独立工具栏可以应用分析对象和指标,而无需在显示器间进行切换。使用工具栏快捷菜单来管理可用命令集或将命令隐藏。
群组聊天和频道交流既可以是公开的,也可以设为私人状态。由创建者来决定是否可以自由加入群聊或是只能通过邀请加入。您还可以为频道和聊天分派版主/群主,为了进一步进行交流管理。
最小交易量及其变动幅度取决于交易商的交易品种设置。
若要使用.NET程序库函数,只需导入DLL本身,而不必定义特定的函数。MetaEditor自动导入所有可以使用的函数:
若要从程序库调用函数,简单导入即可:
TestClass的Inc函数C#代码如下:
作为执行结果,脚本返回值为42。
对.NET程序库的支持工作仍继续。其功能将在未来得到扩展。
WinAPI函数按其用途在单独的文件中分组:
绑定仅适用于64位架构。
在MSDN中了解关于描述符的更多信息。
添加以下属性到ENUM_CHART_PROPERTY_INTEGER枚举:
添加以下函数到ENUM_TERMINAL_INFO_INTEGER枚举:
struct MqlTick
{
datetime time; // 最后价格更新时间
double bid; // 当前卖价
double ask; // 当前买价
double last; // 最后一笔交易的当前价格
ulong volume; // 当前最后价格的交易量
long time_msc; // 以毫秒计算的最后价格更新时间
uint flags; // 报价标识
double volume_real; // 准确性更高的当前最后价格的交易量
};
使用SymbolInfoDouble函数来获得这些属性。
如果属性没有定义,则默认为1字节对齐方式——pack(1).
使用示例:
结论:
在MSDN中了解关于结构中对齐方式的更多信息。
以下代码:
编译器显示警告:
'Main::PRICE_OPEN_'将替换'ENUM_APPLIED_PRICE::PRICE_CLOSE'并被使用
若要在每次报价时启用强制指标计算,请为该程序添加#property tester_everytick_calculate属性。
通过之前版本的编译器编译的指标将按照之前的规则计算 —— 在每次报价时计算。
更新将通过实时更新系统提供。