下载MetaTrader 5

交易者的 LifeHack: 测试中的余额,回撤,负载和订单指标

2 九月 2016, 12:50
Vladimir Karputov
0
1 692

目录

简介

您可以为了不同目的在MetaTrader 5策略测试器中以可视化模式运行,例如,有时您也许想看到在测试期间,交易账户的余额和净值如何改变,有时候,您也许需要在"根据真实订单的每一订单"模式下可视化地监控可能出现的趋势,这意味着独立的 LifeHack 指标在每种情况下都是需要的。我们将在MetaTrader 5策略测试器中运行不同的指标,并把图标模板另存为 tester.tpl (显示测试结果的图表的模板)。

在测试器中使用指标的通用规则:

  1. 在图表上运行一个 LifeHack 指标,
  2. 把模板另存为 tester.tpl,
  3. 开始可视化测试。

还有保存模板的另外一类方法 - 通过运行以下追随的脚本:

//+------------------------------------------------------------------+
//|                                  ChartSaveTemplateTester_tpl.mq5 |
//|                              Copyright © 2016, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2016, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   ResetLastError();
//--- 在模板中保存当前的图表
   if(!ChartSaveTemplate(0,"tester"))
      MessageBox("保存模板出错 #"+IntegerToString(GetLastError()));
   else
      MessageBox("模板 \"tester.tpl\" 被覆盖!");
  }
//+------------------------------------------------------------------+


在这个脚本程序中,写死了模板的名称 "tester",因为这段脚本非常独特,您可以设置脚本的热键:

 

图 1. 赋予一个热键 


LifeHack 订单指标

LifeHack 订单指标显示了最近的300个订单时刻:

//--- 指标缓冲区
double         AskBuffer[];
double         BidBuffer[];
double         AskBufferTemp[];
double         BidBufferTemp[];
//--- 参数
int            InpVisible=300;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()

您可以修改 InpVisible 参数,然而,我不会推荐使用大于1000的数值,因为这会使得终端载入不必要的数据,

另外,本指标也会显示真实与模拟订单时刻的差别:

真实订单时刻

图 2. "基于真实订单时刻的每一订单模式"

所有订单时刻

图 3. "每一订单时刻"

下面的视频演示了两类订单生成时的差别:         

 

另外,LifeHack 订单指标在其子窗口中显示了最新订单的时间。这使得可以在策略测试器中跳到需要的日期并以单步模式查看对应的订单,

例如,您可以在 EURUSD H1图表上查看从 2016.06.03 15:00开始的订单

EURUSDH1

图 4. 从 2016.06.03 15:00 开始分析订单

过程:

1. 运行LifeHack 订单指标并把图表模板另存为tester.tpl. 鼠标右键点击图表并选择"模板 - "保存模板...". 在文件管理器中,选择tester.tpl (如果没有这个模板,您应该输入这个名称)并点击"保存":

图 5. 保存图表模板

2. 在 MetaTrader 5 策略测试器中, 指定包含 2016.06.03 的时间间隔, 选择 EURUSD, 选择测试时间框架为 H1 并设置测试模式为 "基于真实订单的每一订单":

图 6. 测试.

3. 开始可视化测试。

4. 在测试器中,点击"暂停可视化, 空格" (①), 在 "跳到" 栏位指定 2016.06.03 14:59 (②), 然后在单步模式下切换订单 (③):

图 7. 跳到想要的日期

或者以低速开始测试。 


LifeHack 余额净值指标

LifeHack 余额净值指标显示了交易账户的余额和净值是怎样改变的。

LifeHack 余额净值

图 8. LifeHack 余额净值指标


LifeHack 回撤与负载指标

LifeHack 回撤与负载指标使您可以在可视化测试过程中查看回撤和存款负载。回撤(drawdown)是按照以下公式计算的:

drawdown=(balance-equity)/balance*100.0 

在MetaTrader 5策略测试器中同时运行LifeHack 回撤负载和 LifeHack 余额净值指标:

LifeHack 回撤负载

图 9. LifeHack 回撤负载指标

为方便起见,绘图的类型(线形和柱形图)加在指标标签名称中了,另外一个重要事项: "Drawdown (line)" 和 "Load (histogram)" 保存了它们在当前柱的最高值,也就是说,如果当前柱的最大存款负载是80%,然后又下降到10%,"Load (histogram)"标签还是显示着最大值 80%。


结论

我希望这种使用LifeHack系列指标来创建tester.tpl模板的方法能够帮您侦测您所测试的应用程序的优点和弱点。 


本文译自 MetaQuotes Software Corp. 撰写的俄文原文
原文地址: https://www.mql5.com/ru/articles/2501

EA交易的自我优化: 进化与遗传算法 EA交易的自我优化: 进化与遗传算法

本文涵盖的内容是提出了进化算法主要原则,以及它们的特点和多样性。我们将使用一个简单的EA交易作为实例来做实验,来展示如何通过优化使我们的交易系统获益,我们将探讨在软件程序中实现遗传、进化以及其它类型的优化,并且在优化交易系统的预测器集合与参数时提供示例程序。

交易员的正则表达式 交易员的正则表达式

正则表达式 (regular expression) 是通过应用特定的规则来处理文本的一种特殊语言, 也简称为 regex 或 regexp。在本文中, 我们将要展示如何利用 RegularExpressions 库的 MQL5 版本来处理交易报告, 以及使用它处理之后的优化结果。

交易者的 LifeHack: 四次回测比一次好 交易者的 LifeHack: 四次回测比一次好

在第一次测试之前,每个交易者都会面临同样的问题 — "四种模式中使用哪一种呢?" 每种提供的模式都有其优点和特点,所以我们会用简单的方法 - 使用一个按钮一起运行全部四种模式!本文展示了如何使用 Win API 和一点魔术来同时看到全部四个测试图表。

交易机器人在市场发布前必须经过的检验 交易机器人在市场发布前必须经过的检验

任何产品在市场发布之前,它必须通过强制的预先检验,以确保符合统一的质量标准。本文介绍了开发者们在他们的技术指标和交易机器人中最常犯下的错误,并且也展示了在把产品发送到市场之前如何进行自我测试。