MetaEditor 拥有一个内置的调试器,允许您单步执行 (各个函数) 以便检验程序。 在代码中放置断点。 这些是应该暂停程序执行的地方。 然后在常规图表或 策略测试器 中启动程序。 一旦程序到达断点,它就会暂停。 这允许您查看计算变量的值,然后继续单步执行程序检查算法。
调试之前,在 MetaEditor 设置 中为常规参数设定。 您可以指定一个品种和图表周期,应用程序会在该图表调试。 每次开始调试时会临时创建这种图表,并在完成后立即将其删除。
位于交易平台的 /profiles/templates 文件夹中的 debug.tpl 模板将被应用于调试图表。 |
断点 是程序执行到达指定字符串时触发的命令。 该命令停止该字符串的执行。 断点允许检查指定代码区域中的程序行为: 查看变量值和函数堆栈。 随后,调试过程可以恢复或终止。</ t1>
在启动调试之前,在程序代码中至少设置一个断点。 为此,请双击代码行左侧的灰色区域。 您也可以将光标放在行上并单击 位于 调试 菜单里的切换断点,或按 F9。 断点也以同样的方式禁用。
如果您需要跳转到程序停止执行的位置,请在调用堆栈查看窗口中双击函数。 还有,使用窗口关联菜单,可以打开当前调试程序中所有断点的列表:
通过双击,您可以跳转到任何断点。
若要运行调试, 请打开 程序主体文件 或一个 项目。 调试可按照两种模式执行:
一旦程序在调试模式下执行到达断点,它就会暂停。 暂停执行的行被标记为 图标。 调试 选卡也出现在工具箱窗口中。 它的左边部分显示函数 调用堆栈。
在调试过程中,可以在当前程序执行步骤中跟踪各种表达式 (变量) 的值。 工具箱窗口的 调试 选卡右侧显示相应的结果。 若要跟踪表达式数值,请将其添加到观察值中:
您还可以在调试器观察列表中启用自动显示局部变量。可以通过快捷菜单的“本地”命令启用此显示。随着调试器操作在代码中进行,当前作用域中的变量会自动显示在列表中。
在表达式观察窗口中,可以执行简单的数学计算 (加、减、乘、除),也可以查看指定数组下标处的值,例如指定A[3][4] 项,其中 A 是一个数组名称,而 3 和 4 是其维度中的位置。 将对象添加到所观察的表达式时,我们可以在末尾指定完全停止,或单击 Ctrl+空格来查看其成员的列表:
要查看任何数组或对象的内容,请在观察窗口双击该数组或对象。
默认情况下,整数以十进制形式显示在观察窗口中。 若要以二进制或十六进制形式显示值,请在表达式字段中相应地指定逗号分隔的 b 或 x 修饰符。
从子程序 (嵌套函数) 向程序 (主事件处理程序 OnInit,OnTick 等) 返回控制的数据要在调用堆栈中指定。 该堆栈允许您跟踪 交易平台中事件发生 的整个顺序,直到调用指定函数。
每个函数都显示以下数据:
调试 菜单或 标准 工具栏命令用于单步调试,并具有查看调用堆栈的能力:
仅当程序在调试模式下暂停后,才能使用单步调试命令:
事件继续发生 在交易平台里 即使程序处于断点。 所有发生的事件都放入一个队列中,在当前事件处理程序退出代码后继续使用智能系统进行处理。 |
一旦执行抵达带有断点的字符串,程序就会在调试过程中自动停止。 调试也可以手动管理:
|
除了实时价格数据外,交易机器人和技术指标的调试也可以依据历史数据进行。 任何程序都可以根据所需的历史数据进行测试,而无需实时等待某些交易事件。
依据历史数据调试在策略测试器中以可视化测试模式运行。 基于测试器中模拟的时间序列,或累积的历史逐笔报价 (从经纪商收到),在图表上执行应用程序。
若要开始依据历史数据调试, 在 MetaEditor 设置 中设置测试参数。
在代码中设置断点,然后使用历史价格开始调试。
这将启动可视化测试和调试过程。