string str;
...
if(str) // 将会导致"不能转换'string'类型到'bool'"编译错误(在之前版本不会出现错误)Print("str is true");
应该使用明确的条件:
string str;
...
//--- 检查字符串是否被初始化if(str!=NULL)
Print("str is true");
or
//--- 检查字符串值是否为"true"if(StringCompare(str,"true",false))
Print("str is true");
or
//--- 检查字符串是否为不等于零的整数if((int)str!=0)
Print("str is true");
MetaTrader 5 平台更新 Build 1375:时间&销售和访问测试期间的报价
MetaTrader 5平台更新将于2016年7月15日,星期五发布。 它将包含如下变化:时间&销售是什么?
时间&销售功能就是提供金融市场上执行的每一笔交易的价格和时间。每笔交易的信息包括交易执行时间,交易方向(买或卖)以及交易价格和交易量。为了方便视觉分析,使用不同的颜色指示不同的交易方向:蓝色用于买入交易,粉色用于卖出交易,绿色表示未定义方向。交易量另外显示在直方图。
时间&销售可以如何帮您了解市场
时间&销售功能提供了更详细的市场分析工具。交易方向表示谁发起的交易:买家还是卖家。交易的成交量允许交易者了解市场参与者的行为:交易是由大型市场玩家还是小型市场玩家来执行以及评估玩家的行为。交易执行速度和各个价位的交易量有助于交易者评估级别的重要性。
如何使用时间&销售数据
除了视觉分析表格,您还可以保存交易详情为CSV文件。另外,它们还可以使用任何其他软件进行分析,例如MS Excel。文件包括逗号分隔数据:
2016.07.06 16:05:04.305,89360,89370,89370,4,Buy
2016.07.06 16:05:04.422,89360,89370,89370,2,Buy
2016.07.06 16:05:04.422,89360,89370,89370,10,Buy
2016.07.06 16:05:04.669,89360,89370,89370,1,Buy
2016.07.06 16:05:05.968,89360,89370,89360,7,Sell
当真实报价用于测试时,从原报价数据就会考虑毫秒。报价生成时,会根据跳动量设置毫秒。例如,如果一秒内对应3个报价,它们的毫秒将等于000,333和666。
前测窗口只在主要周期测试完成后打开。
下图显示了函数之前(红箭头)和当前的行为:
更新内容将通过LiveUpdate系统提供。
新版MetaTrader 5 build 1395:更快的交易操作,视觉测试得到改进
MetaTrader 5 平台更新将于2016年8月19日,星期五,进行发布。新版将有以下功能更改:
建议使用操作符dynamic_cast<class name *>(void * pointer) 来转换。如果无法转换,则结果为NULL。
更新内容将通过LiveUpdate系统提供。
新版MetaTrader 5 Build 1430:更新展示标签
资产部分有助于在交易所交易外汇或期货 显示它们当前的市场状态。相同货币可以在不同的交易品种种类中找到:作为货币组中的一个,作为基础货币,等等。例如,您可以反向持仓 GBPUSD,USDJPY和GBPJY。在这种情况下,了解您有多少货币以及您需要多少货币是非常困难的。持有超过3个持仓会使这个任务进一步复杂化。 如今在此种情况下,账户的所有状态都可以轻松地在资产标签查看。
让我们使用3种相同的持仓举例说明:
以134.027 的价位买入1手 GBPJPY— 收到 100 000 GBP,给出134 027 000 JPY
以102.320 的价位卖出1手 USDJPY— 给出 100 000 USD,收到102 320 000 JPY
以1.30923 的价位卖出1手 GBPUSD— 给出100 000 GBP,收到 103 920 USD
我们同时买入卖出100 000GBP。我们有0GBP,资产标签不会显示这个货币。而USD,我们在一种情况下给出货币而在另一种情况下接收它。由于入金货币也是USD,资产标签会计算最终结果并将其添加到当前结余。参与两个交易的JPY意味着该标签显示其总值。
使用交易所模式的人们 可以使用这个部分了解他们资金的使用情况。与之前模式不同,资金是在交易执行的时候直接出金/加入。例如,如果您买入EURRUB,您马上会收到EUR而 相应的RUB总值会从结余取出。在交易过程中,账户结余甚至可能是负数:当您使用借款时而购买的资产则用作抵押。在这种情况下,资产标签可以使您轻松地了 解交易账户状态。
此外,在这里您还可以看到清算值 — 账户的金额和以市价平掉当前所有持仓的价格(结果)。
类和结构的'final'修饰符
'final'修饰符在声明一个结构或类的时候禁止进一步继承它。 如果在这个类(结构)中无需做出任何进一步变化或这种变化出于安全原因无法接受,则以'final'修饰符声明那个类(结构)。在这种情况下,所有类的类函数也默认为 'final'。
当如上面显示的一样试图以'final'修饰符从一个类继承时,编译器显示一个错误:
参照 'CFoo' 声明
函数的'override'修饰符
'override' 修饰符表示声明的函数应该始终重写父类的类函数。使用修饰符可以使您避免重写时的错误,例如意外修改类函数的签名。例如,接受 'int' 类型变量的 'func' 类函数定义在基本类中:
类函数重写在继承类:
但是自变量类型错误的从'int' 变为'short'。实际上,替代重写的重载类函数在这种情况下执行。根据重载函数定义算法进行操作时,编译器在有些情况下可能会选择基本类中定义的类函数而不是重写的类函数。
为了避免这种错误,'override' 修饰符应该明确添加到重写的类函数。
如果在重写过程中更改了类函数签名,编译器将无法在发布编译错误的父类中找到相同签名的类函数:
函数的'final'修饰符
'final' 修饰符操作是相反的 — 它禁止在衍生类中重写类函数。如果类函数的实现非常充分并得到完全完成,则以 'final' 修饰符声明它以确保其以后不被修改。
当如上面显示的一样试图以'final'修饰符重写一个类函数,编译器显示一个错误:
请见 'CFoo::func' 声明
更新内容将通过LiveUpdate系统提供。
新MetaTrader 5平台Build 1455:MQL5 的数学函数库
MetaTrader 5平台更新将于2016年10月14日,星期五,进行发布。新版将有以下功能更改:
程序端:在交易对话框添加买入,卖出和关闭按键的工具提示。工具提示包括操作期间买入或卖出安全性的信息,以帮助新手了解交易的过程。
MQL5:标准程序库中加入了MQL5版的ALGLIB数值分析库 。
程序库特点
如何使用
ALGLIB 文件位于\MQL5\Include\Math\Alglib。若要使用这些函数,请将主程序文件添加到您的程序:
MQL5:标准程序库包含了数理统计函数。MQL5 现在提供R语言的功能,这是最好的统计数据处理和分析工具之一。
程序库特点
统计程序库包含计算数据统计特征的函数以及统计分布操作的函数:
如何使用
统计程序库文件位于 \MQL5\Include\Math\Stat。若要使用该程序库,请将所需函数的文件添加到您的程序,例如:
程序库函数的详细描述可在文章MQL5统计分布 - 使用最好的R中得到。
MQL5:标准程序库中加入了MQL5版的Fuzzy程序库。Fuzzy程序库实现了Mamdani和Sugeno模糊推理系统。
程序库特点
如何使用
Fuzzy程序库文件位于\MQL5\Include\Math\Fuzzy。若要使用该程序库,请将所需函数的文件添加到您的程序,例如:
程序库的详细描述可在代码库:Fuzzy - 开发模糊模型的程序库中得到
导航栏可以通过按下回车或空格键来打开。它允许您快速转到图表上的指定日期,以及切换到交易品种和时间周期。如果您的MQL5程序会处理按下回车或空格键,请禁用CHART_QUICK_NAVIGATION属性,以避免程序库拦截这些事件。快速导航栏仍然可以通过双击打开。如何将报价写入文件然后阅读的示例:
如果指定一种颜色,图表上的所有蜡烛图都将绘制这种颜色。
如果指定两种颜色,一种颜色用于蜡烛图的边框,另一种用于主体。
如果指定三种颜色,一种颜色用于蜡烛图的边框,其他两种颜色用于牛市蜡烛图和熊市蜡烛图的主体。
DRAW_CANDLES 风格允许设置自定义颜色的蜡烛图。使用PlotIndexSetInteger函数运行指标期间还可以动态更改所有颜色(drawing_index_DRAW_CANDLES, PLOT_LINE_COLOR, modifier_number, color),在这里modifier_number 可能是以下的值:
更新内容将通过LiveUpdate系统提供。
新版MetaTrader 5 Build 1485:附加测试模式和标准程序库的图形
MetaTrader 5平台更新将于2016年11月24日,星期四,进行发布。它包含以下变化:
此外,现在使用日志快捷菜单还可以隐藏'时间'和'源'所在列。
ArrayPrint无法打印全部结构数组字段到日志 – 跳过对象的数组字段和指针字段。如果您想打印全部结构字段,您应该使用所需格式批量打印的定制功能。
基于三个数据系列使用GraphPlot绘制图表:
结果:
基于数据数组使用GraphPlot绘制图表:结果:
在早期版本只提供随机延迟模式。更新内容将通过LiveUpdate系统提供。
新版MetaTrader 5 Build 1490:改进及修正
新版MetaTrader 5平台将于2016年12月2日进行发布。我们已经修正了基于崩溃日志和用户报告的多个漏洞,谨在于为您提供更加便捷的平台。
该更新将通过LiveUpdate系统提供。
新版MetaTrader 5平台Build 1495:改善MQL5处理自定义图形的功能
MetaTrader 5平台更新将于2016年12月9日进行发布。它将包括以下变化:
应该使用明确的条件:
更新内容将通过LiveUpdate系统提供。