新版MetaTrader 5 build 1525:以持仓形式展示交易历史并改进测试器 新评论 MetaQuotes 2017.01.27 19:00 新版MetaTrader 5 build 1525:以持仓形式展示交易历史并改进测试器 MetaTrader 5平台更新将于2017年1月27日,星期五,进行发布。新版将有以下功能更改: 程序端:现在可以按照持仓的形式展示交易历史。程序端收集持仓相关交易的数据(开仓,额外交易量,部分和全部平仓),然后将数据组合为一个包含以下细节的记录: 分别由第一笔和最后一笔交易决定的开仓和平仓的时间 持仓交易量。如果部分平仓,该记录会包含平仓交易量和源交易量 加权平均持仓价及其平仓价 持仓相关交易的总财务结果 有关锁仓账户,其新的历史记录显示形式类似于MetaTrader 4中使用的账户历史形式。 程序端:添加允许在交易品种图表显示交易的新命令。 如果您需要显示选定持仓/交易品种的交易,请点击"添加 [交易品种名称] 交易"。相应的交易将会显示在选定交易品种当前全部打开的图表上。如果该交易品种没有打开的图表,那么将会打开一个新图表。 点击"添加全部交易",显示来自账户历史的全部交易品种的交易。相关交易品种的交易将被添加到全部打开的图表。 程序端:添加在合约规范中交易品种的国际名称显示,以及在交易品种管理对话框搜索国际名称。 程序端:添加设置程序端窗口分辨率的命令。该功能非常有助于制作视频。菜单提供了不同视频服务所使用的最流行的分辨率选项,例如YouTube。 程序端:图表模板和概况已从[Terminal Data Folder\Profiles]迁移到[Terminal Data Folder\MQL5\Profiles]。现在您可以轻松添加模板到MQL5 存储并通过任何一台PC机进行访问。 MQL5:添加支持资源变量。使用这种变量可以显著推进一些程序的开发。例如,您可以在独立的CL文件中编写一个OpenCL程序的代码,然后将其作为字符串加入到您的MQL5程序资源。更新之前,这种代码需要描述为一个大型字符串变量。资源变量声明 #resource path_to_resource_file as type_of_resource_variable name_of_resource_variable 特性 基于BOM(标题)自动确定字符串文件的编码。如果BOM不存在,那么编码将由文件内容定义。支持ANSI,UTF-8 和 UTF-16。全部字符串都转换为Unicode。 这种资源的数据只能通过变量来处理。不可使用"::<resource name>"自动解决。 特殊的位图资源变量类型表明资源为图像的编译器。在这种情况下,资源变量为单位类型。 当使用24位图像时,阿尔法通道组件对全部图像像素设置为255。 当使用没有阿尔法通道的32位图像时,阿尔法通道组件对全部图像像素也设置为255。 当加载包含阿尔法通道的32位图像时,不以任何方式处理像素。 位图类型数组资源变量可能有两种维度。在这种情况下,数组大小定义为[image_height ][ image_width ]。 如果指定了一维数组,元素数量等同于image_height*image_width。 如果资源文件大小不是数组元素大小的乘积,将会剪切剩余数据。例如,如果文件大小为14个字节,对于整型数组,元素数量将等于3而其他两个字节(14 - sizeof(int)*3)将会舍弃。 使用示例#resource "data.bin" as int ExtData[] // 声明包含data.bin文件数据的数值数组#resource "data.bin" as MqlRates ExtData[] // 声明包括data.bin文件数据的简单结构数组#resource "data.txt" as string ExtCode // 声明包含data.txt文件数据的字符串#resource "data.txt" as string ExtCode[] // 声明包含data.txt文件数据的字符串#resource "image.bmp" as bitmap ExtBitmap[] // 声明包含BMP文件位图文件的一维数组,数组大小 = width * height#resource "image.bmp" as bitmap ExtBitmap2[][] // 声明包含BMP文件位图文件的二维数组,数组大小[height][width] MQL5:新属性CHART_SHOW可以禁用图表显示。函数ChartGetInteger 和ChartSetInteger 用于获得和设置属性。false的情况下,禁止绘制任何价格图表属性,消除图表边界全部缩进,包括时间价格比,快速导航条,日历活动标签,交易标签,指标和工具提示条,指标子窗口,交易量直方图等。禁止使用图形资源为创建自定义程序界面绘制完美解决方案。无论CHART_SHOW属性值是多少都可随时绘制图形对象。 MQL5:新CHART_KEYBOARD_CONTROL属性可以通过键盘("Home","End","PageUp","+","-","Up arrow"等)启用/禁用图表控制。设置CHART_KEYBOARD_CONTROL为false在保留接收OnChartEvent()事件按键的完整能力时禁止图表滚动和缩放。函数ChartGetInteger和ChartSetInteger允许获得和设置属性。 MQL5:添加使用OpenCL的新函数。处理内存的新属性通过CLGetInfoIntegrer可以获得4个新属性: CL_DEVICE_MAX_WORK_GROUP_SIZE — 可用于OpenCL设备的本地工作组总数。 CL_KERNEL_WORK_GROUP_SIZE — 可用于OpenCL程序的本地工作组总数。 CL_KERNEL_LOCAL_MEM_SIZE — OpenCL程序使用的,用于解决一组中全部平行任务的本地内存字节大小。使用CL_DEVICE_LOCAL_MEM_SIZE 接收可用最大值。 CL_KERNEL_PRIVATE_MEM_SIZE — OpenCL程序内核中,每个任务可用的最低私有内存大小(以字节为单位)。 bool CLExecutionStatus(int kernel)返回OpenCL程序执行状态。OpenCL程序内核处理作为参数传递。bool CLSetKernelArgMemLocal(int kernel_handle,int arg_index,ulong local_mem_size)设置本地缓冲作为内核函数参数。OpenCL程序内核处理,OpenCL函数参数数量和缓冲大小都作为参数传递。 添加TranslateKey函数,通过考虑当前输入语言和控制键状态的虚拟键代码返回Unicode字符。 该函数使用 ToUnicodeEx,将用户按键转换为Unicode字符。void OnChartEvent(const int id,const long& lparam,const double& dparam,const string& sparam) { if(id==CHARTEVENT_KEYDOWN) { short sym=TranslateKey((int)lparam); //--- 如果输入字符成功转换为Unicode if(sym>0) Print(sym,"'",ShortToString(sym),"'"); else Print("Error in TranslateKey for key=",lparam); } }MQL5:添加TRADE_RETCODE_LIMIT_POSITIONS新资源代码。同时显示在账户上的持仓数可以通过服务器设置进行限制。到达限制后,若再尝试下单,服务器会返回TRADE_RETCODE_LIMIT_POSITIONS错误。限制的操作根据持仓账户类型而有所不同: 单边账户类型 — 考虑持仓数量。到达限制后,平台会禁止生成可能增加持仓数量的新订单。实际上,平台仅允许为已有持仓的交易品种下单。不会考虑当前挂单,因为挂单的执行可能会改变当前持仓但不会增加持仓数量。 锁仓账户类型 — 会同时考虑挂单和持仓,因为激活挂单也会导致生成新的持仓。到达限制时,平台禁止生成持仓的新市价单和挂单。 MQL5:修正可能偶尔引起报价历史跳价的错误。 MQL5:修正间接的模板打字错误。 MQL5:更新数学统计函数的程序库。 市场:修正下载模拟版时打开产品页面。 Tester:完成优化后,结果会按照"结果"列自动排序。 Tester:优化结果标签的快捷菜单中的新命令"切换到优化结果"可以在优化完成时自动打开结果。 Tester:开始单次测试后,策略测试现在仍停留在优化模式。在早期版本中,如果从优化结果标签启动一次测试,策略测试会切换到单次测试模式。优化模式需要在设置中启用以便执行进一步优化。 Tester:除了traditional .set文件以外,现在输入参数的设置可以保存为本地策略测试设置,以便于从快捷菜单访问。 Tester:添加蒙古语,匈牙利语,罗马尼亚语和乌尔都语的UI翻译。 MetaEditor:添加在调试窗口更改已读表达式顺序的功能。可以使用鼠标拖拽表达式到所需位置。 MetaEditor:修正确定源文件编码。 MetaEditor:修正在UTF-8编码中搜索文件。 MetaEditor:修正如果文本包含标签,通过鼠标选择文本。 MetaEditor:添加匈牙利语和罗马尼亚语的UI翻译。 更新文档。 更新内容将通过LiveUpdate系统提供。 如何开始学习MQL5 New MetaTrader 5 build 1525: Representing trading history as positions and tester improvements List of changes in MetaTrader 5 Client Terminal builds 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
新版MetaTrader 5 build 1525:以持仓形式展示交易历史并改进测试器
MetaTrader 5平台更新将于2017年1月27日,星期五,进行发布。新版将有以下功能更改:
有关锁仓账户,其新的历史记录显示形式类似于MetaTrader 4中使用的账户历史形式。
资源变量声明
特性
使用示例
#resource "data.bin" as MqlRates ExtData[] // 声明包括data.bin文件数据的简单结构数组
#resource "data.txt" as string ExtCode // 声明包含data.txt文件数据的字符串
#resource "data.txt" as string ExtCode[] // 声明包含data.txt文件数据的字符串
#resource "image.bmp" as bitmap ExtBitmap[] // 声明包含BMP文件位图文件的一维数组,数组大小 = width * height
#resource "image.bmp" as bitmap ExtBitmap2[][] // 声明包含BMP文件位图文件的二维数组,数组大小[height][width]
false的情况下,禁止绘制任何价格图表属性,消除图表边界全部缩进,包括时间价格比,快速导航条,日历活动标签,交易标签,指标和工具提示条,指标子窗口,交易量直方图等。
禁止使用图形资源为创建自定义程序界面绘制完美解决方案。
无论CHART_SHOW属性值是多少都可随时绘制图形对象。
函数ChartGetInteger和ChartSetInteger允许获得和设置属性。
处理内存的新属性
通过CLGetInfoIntegrer可以获得4个新属性:
bool CLExecutionStatus(int kernel)
返回OpenCL程序执行状态。OpenCL程序内核处理作为参数传递。
bool CLSetKernelArgMemLocal(int kernel_handle,int arg_index,ulong local_mem_size)
设置本地缓冲作为内核函数参数。OpenCL程序内核处理,OpenCL函数参数数量和缓冲大小都作为参数传递。
{
if(id==CHARTEVENT_KEYDOWN)
{
short sym=TranslateKey((int)lparam);
//--- 如果输入字符成功转换为Unicode
if(sym>0)
Print(sym,"'",ShortToString(sym),"'");
else
Print("Error in TranslateKey for key=",lparam);
}
}
更新内容将通过LiveUpdate系统提供。