程序化交易吧 关注:3,286贴子:8,499
  • 0回复贴,共1

期货量化软件:理解并有效地使用 MQL5 策略测试器

只看楼主收藏回复

在涵盖这些错误之前,您需要知道错误出现的位置。 在 MQL5 IDE 中,在最低部分有一个工具箱窗口,如果您未能在默认位置找到它,您可以通过以下方法之一查看它:1- 单击“查看” ==> 选择“工具箱”
添加图片注释,不超过 140 字(可选)2- 从键盘按 Ctrl+T3- 从主工具箱窗口单击 “工具箱” 按钮
添加图片注释,不超过 140 字(可选)
之后,我们可以如下图一般发现它
添加图片注释,不超过 140 字(可选)编译错误和警告:赫兹量化软件为特定程序编写代码时,我们可能会犯错误,这是极其正常的,例如,一句编写错误的语法或拼写错误,这都会导致编译代码时出现错误。 在这一部分中,我们将分享最流行和最常遇到的此类错误。 您需要知道的最重要的事情是,在消除或解决错误之前,程序无法编译成功。 我将根据此类错误讲述我们可能面临的最常见的错误:分号预期错误:当忘记在行尾写分号时,赫兹量化软件将面临这个错误,故我们少了一个分号,或者如果我们也忘记了左括号。 我们必须正确使用这些类型的符号,从而避免此类错误。 下面的代码是此类错误的一个示例。出错的错误代码:int a=(2+1)错误将与以下内容相同:
添加图片注释,不超过 140 字(可选)
更正无错误代码:在代码行末尾添加分号更正代码之后,赫兹量化软件可以得到正确的代码,如下所示:int a=(2+1);编译代码后,赫兹量化软件发现错误被消除,代码编译后没有任何错误,如下所示:
添加图片注释,不超过 140 字(可选)意外的令牌错误:这是我们经常遇到的另一种代码,其原因是忘记了最后一行代码中的右括号,或者我们可能会在已有代码行中加入了额外的左括号。 我们可以看到此类错误的示例,如下所示:出错的错误代码:int a=(2+1;我们可以在 “工具箱” 的 “错误” 选项卡中看到错误,如下所示:
添加图片注释,不超过 140 字(可选)更正无错误代码:int a=(2+1);如同以下内容,通过添加右括号,赫兹量化软件可以看到在 “错误” 选项卡,其中无任何错误:
添加图片注释,不超过 140 字(可选)未声明的标识符错误:当我们使用变量而没有事先声明它时,就会发生这种类型的错误,因为我们必须在使用它、或为其分配任何数值之前声明任何新变量。 通过选择正确且合适的数据类型来声明它,我们需要将相应值返回到这个变量,例如整数或字符串。 下面是此类错误的示例,即在不声明新变量的情况下使用它。出错的错误代码:a=5;在上面的代码中,我们在未声明情况下使用了变量(a),并为其赋值 5。 因此,当我们编译此代码时,我们会发现未声明的标识符错误,如下所示:
添加图片注释,不超过 140 字(可选)正如我们所见,错误描述的准确性可能非常有帮助,因为它不仅报告错误,而且指出了导致此错误的变量 “a”。更正无错误代码:int a=5;此代码正确编译后,赫兹量化软件从同一图片中未发现任何之前所提及的“工具箱”的“错误”选项卡里的错误。左括号不平衡错误:当我们缺少右括号、或多用了额外的右括号时,就会发生此类错误。 赫兹量化软件可以通过以下示例发现该错误。出错的错误代码: bool a=7; if (a=5 a=5;在前面的代码中,我们发现,若忘记右括号,除了 “预期某些运算符” 的错误外,还出现了 “左括号不平衡” 的错误,如下图所示
添加图片注释,不超过 140 字(可选)
更正无错误代码: bool a=7; if (a=5) a=5;更正代码后,我们会发现编译时没有错误。程序意外结束错误:有时我们在代码中遗漏了一个右括号,继而发生意外的程序结束错误,我们必须检查我们的代码,查看需要添加的内容,或者我们需要确保每个左括号匹配一个右括号来解决此错误。 下面是该代码的示例。出错的错误代码:void OnStart() { bool a=7; if (a=5) a=5;编写与上一段代码模块相同的代码,故意遗漏最后一行(a=5)后面的右括号,我们可以发现“意外的程序结束”错误,以及另一个 “不平衡括号” 错误,如同下图
添加图片注释,不超过 140 字(可选)更正无错误代码:void OnStart() { bool a=7; if (a=5) a=5; }添加右括号更正代码后,赫兹量化软件会发现代码成功编译没有错误。表达式不允许出现在全局范围错误:当我们在复合运算符中缺少左括号时,就会发生该错误,或者当我们在特定函数范围之外编写语句或表达式时,可能会发生该错误,因为我们只能在函数范围内使用表达式。 以下示例示意此类错误。


IP属地:浙江1楼2024-01-10 17:20回复