English Русский Español Deutsch 日本語 Português
测试可视化: 人工交易

测试可视化: 人工交易

MetaTrader 4测试者 | 26 一月 2016, 09:06
3 570 0
Andrey Khatimlianskii
Andrey Khatimlianskii


简介

现在的MetaTrader 4 客户终端出现了测试可视化功能. 此功能允许操控EA交易的测试. 但是, 并非每个策略都是可编程的, 也不是每个交易者都能编写出一个好的EA交易.

本文讲述了如何使用可视化功能来测试无法以EA交易方式编程的人工交易策略. 使用人工策略测试器只需要终端的基本知识, 并不需要懂得编程, 所以每个交易者都可以使用它.

有篇文章谈到在可视化测试期间使用程序实现'交易'和'账户历史'页面. 这些程序的用法在名为测试可视化:功能增强测试可视化:交易历史的文章中有更详细的介绍.

如果您没有使用过测试可视器, 您必须读一篇名为 在MetaTrader 4客户终端中测试EA交易: 简单一瞥的文章.


使用准备


这样您就可以使用测试可视化并且立即开始您的测试了. 那么我们还需要什么呢?

首先, 需要从代码库把所需文件下载到电脑上:

  • 把EA交易vHandsTrade.mq4放置于\MetaTrader 4 Work\experts\目录;
  • VisualTestingTools.mq4复制到\MetaTrader 4 Work\experts\include\目录; 并把
  • 两个指标 - vTerminal.mq4vHistory.mq4 - 复制到 \MetaTrader 4 Work\experts\indicators\目录.

请注意, 在前面文章中提到的VisualTestingTools.mq4文件已经做了修改, 所以您应该下载以上来源(代码库)中的文件.

之后, 在MetaTrader 4中打开EA交易vHandsTrade.mq4 并编译 (使用 F5). "工具"中显示的消息会确认EA交易已经成功编译:




现在, 程序已经完备, 我们可以开始准备图表模板了. 为此, 您需要打开一个图表, 根据您的喜好进行设置, 然后附加上vTerminal.mq4vHistory.mq4指标, 再把它另存为 vHandsTrade.tpl模板:






请记住, 在图表的右侧必须有足够大的空间以使用人工策略测试器(Tester of Manual Strategies) - 那里会安排控件. 所以在创建模板时必须允许"图表平移"选项:



现在我们可以进行到EA设置了.

EA交易的设置


每个交易者都有他或她自己的交易习惯. 为了以最舒适的方式使用人工策略测试器, 请花五分钟来根据您的喜好调整EA交易.

在您的交易中, 您将建立和关闭仓位, 设置挂单, 移动止损和获利的水平. 您将能够选择将要建立仓位的手数, 挂单的过期日期和时间等等. 每个可以调节的特征都对应控制面板上的一行:


以及EAj交易的两行代码:



它们的功能很明了:
- RISK (Risk) -
用于建立仓位使用的资金百分比;
- LOT (Lot) -
如果 RISK = 0 则使用此手数来建立仓位;
- STOPLOSS (SL) -
如果在建立仓位时不移动止损线, 将要建立仓位的止损值;
- TAKEPROFIT (TP) -
如果在建立仓位时不移动获利线, 将要建立仓位的获利值;
- TRAILINGSTOP (TS) -
所有仓位的跟踪止损大小;
- EXPIRATION (Exp) -
挂单过期的小时数.

在代码中您可以直接修改预先定义的参数值. 例如, 如果您经常以1.0, 2.0, 5.0, 10.0 或 50.0 手为交易量, 就把交易手数的那一行替换为:

     double LOT[] = { 1.0, 2.0, 5.0, 10.0, 50.0 };

在您编译并重新启动EA交易后, 您将可以看到如下的内容:


如果您希望启动时默认使用5.0手, 就把 "int SELECTED_LOT = 1;" 替换为:

int SELECTED_LOT = 3;

现在, 默认选择了第三行:


任何其他参数值都可以用同样方式修改. 规则都是同样的, 在括号内, 有使用逗号分隔的5个数字, SELECTED_***变量值必须在1到5之间.

外部变量和启动


现在我们可以启动人工策略测试器了. 让我们打开测试窗口, 在EA交易列表中选择 vHandsTrade, 选择一个货币对和一个时间框架, 并且允许使用"每个订单时刻"使得测试尽可能真实:


在按下"启动"按钮之前, 让我们看一下EA交易的属性窗口. 在这里, 我们将结束调整使用外部变量的EA交易:


实际上, EA交易本身只有四个外部变量, 其他的是从包含的VisualTestingTools.mq4中继承下来的. 所有参数应该设置为使用方便而且可以正常工作:
- CommentsCount -
EA 交易显示的最大信息数量;
- SelectedColor -
风险, 手数, 止损, 获利等元素被选择时候的颜色;
- ModifyColor -
人工修改订单时修改订单图标的颜色;
- TrailingColor -
修改追踪止损时修改订单的颜色;
- TerminalRows -
"终端"页面显示的最大行数. 如果您设置了 TerminalRows = 0, 终端就不会更新;
- HistoryRows -
'账户历史'页面显示的最大行数. 如果您设置了 HistoryRows = 0, 账户历史就不会更新;
- BigText -
如果您想要放大的字体, 就把它设为true;
- SignalPoints -
距离点数, 当止损, 获利, 或者挂单价格与当前价格小于此点数时对应栏位会高亮显示. 例如, 对于 SignalPoints = 10, 当前价格与仓位的止损价格相差距离小于10个点时, 止损栏位的颜色将会改变;
- ShowCancelled -
如果您想要在交易历史中看到取消的订单, 就把它设为true;
- ShowExpired -
如果您想要在交易历史中看到过期的订单, 就把它设为true;
- MainColor -
主色, 即"终端"和"账户历史"抬头部分, 以及终端账户信息行(余额, 净值...)的颜色.
- BuyColor -
买入仓位信息的颜色;
- BuyOPColor -
终端页面中, 建仓价格栏位的颜色; 当前价格接近限价买入或者止损买入的建仓价格水平时, 会用此颜色替换主色;
- BuySLColor -
在终端页面中: 当价格接近买入仓位的止损水平时会用此颜色替换主色; 在"账户历史"页面中: 当买入仓位因为止损而关闭, 会用此颜色替换买入仓位颜色;
- BuyTPColor -
与 BuySLColor 一样, 只是用于获利的仓位;
- SellOPColor, SellSLColor и SellTPColor -
类似的对应卖出仓位的颜色.

请注意, EA交易是使用背景为黑色的图表上的, 这就是默认颜色都比较浅的原因. 如果您使用的是白色背景, 就请设置深一些的颜色. 这就是我为在这篇文章中测试EA交易所做的工作.

启动


好的, 终于我们可以按下启动按钮. 我们在图表上看到的第一个内容就是之前工具箱中提到的:



它协助建仓, 设置挂单, 以及选择功能中预先定义的数值. 我们将在每个部分之前学习列出的这些操作. 现在, 我只想强调, 使用工具箱做操作比在暂停模式下的操作更加安全. EA交易将分析每一个操作并把它转换成命令, 不能被取消. 因为本EA交易只是用于测试的, 失误不会造成您实际的损失, 但是它可能会破坏您长期而精心的测试结果.

"终端" 和 "账户历史" 窗口位于图表下方. 直到开始交易之前它们都是空的:


我们可以使用"终端"窗口关闭和修改仓位, 而"账户历史"窗口将为我们提供信息.

仓位的建立

让我们尝试一下建仓. 首先, 我们需要定义手数以及止损和获利的距离, 因为我们以后不想浪费时间来修改它们.

就像我们曾经说过的, 使用工具箱来设置这些数值: 我们必须选择含有所需数值的对象并把它移动到屏幕上的任意某点. 我们可以同时移动任意数量的对象, 例如, 如果我们想选择手数为1而获利为100, 我们需要把对应的数值拖到一个随机的地方:


现在按下F12 - 下一个订单时刻到来, 而EA交易会检查选择的数值:


当建立一个仓位时, EA交易会使用属性中选择的数值:
- 手数是根据以下公式计算而得: 可用保证金 (Free Margin)* 风险(Risk) * 0.01 * 杠杆(Leverage) / 协议大小(Contract Size). 如果 Risk=0, 就是用选择的手数 交易;
-
止损的距离由对应的线来定义(下文介绍). 如果止损线没有移动过, 会使用选定的SL 数值;
- 获利距离的定义由对应的线来定义. 如果获利线没有移动过, 会使用选定的TP 数值;
- 过期时间 (只用于挂单) - 会使用选定的 Exp 数值.

仓位的建立非常简单 - 只需要把对应的线形拖到图表上就可以了. 每个订单类型有3种线:
- 建仓价格线
(买入和卖出是实线, 挂单是虚线) 在中间, 在止损线和获利线之间;
- 止损线
(点划线) 买入仓位在建仓价格线下方, 卖出仓位在建仓价格线上方;
- 获利线
(虚线) - 买入仓位之上, 卖出仓位之下.

挂单在当前价格上方 (止损买入和限价卖出) 列在上面的一行. 挂单在价格下方 (限价买入和止损卖出) - 列在下面一行.

如果您想要使用选定的止损和获利值(目前分别为50和100)建立一个买入仓位, 只要把买入建仓线拖到图表上:


然后按下F12, 查看结果


因为买入和卖出都是基于当前价格的, 没有必要把线正好拖到此价格上: EA交易会自己把数值替换好. 但是对于挂单设定正确的价格很重要, 否则可能无法设置订单.

现在让我们设置止损卖出订单:
- 手数 - 存款的 10% ;
- 建仓价格和止损将人工设置;
- 禁用获利;
- 过期时间为30分钟 (0.5 小时).

让我们找到所需的对象并把它们拖到图表上:


按下 F12 并查看:


一切正常.

关闭仓位


仓位的关闭和挂单的删除都是很简单的任务. 我们所要做的就是选择将要关闭订单的订单号并拖动它:


结果不会让我们等待的: EA交易已经在下一个订单时间关闭了仓位:


删除挂单也是采取同一方式.

修改仓位


订单修改的操作包含了关闭仓位和建立仓位的元素: 选择某个需要改变的属性(建仓价格, 止损或者获利), 然后把它移动到对应的区域.

在下一个订单时刻到来时, EA交易将会创建修改线, 以协助修改对应的属性:


在我们把线移动到新的位置之后, 我们按下F12并查看结果:


如果您只是想绝对删除止损或者获利, 只要删除对应的栏位:




删除了建仓价格栏位后, 就可以关闭仓位(删除订单) - 有些交易者可能认为这个方法更为方便.

同时修改的参数数量是没有限制的 - 您甚至可以在同一订单时刻内修改所有的已建仓位.

结论

在读完这篇文章后, 您将会看到, 在历史数据上测试您的策略并不一定要是个程序员. 使用人工测试模式, 您可以在历史数据上人工交易.

本文提供的EA交易, 函数库和指标允许模拟真实的交易终端.

在我文章的最后, 我想提醒您 此EA交易不是用于真实交易的. 不要把您的资金用于测试程序.

为了在实时模式下控制订单, 我们创建了在线的AutoGraf复合程序. 正是这个复合程序催生了这篇文章中的一些想法和代码(承蒙软件的作者). 为此非常感谢作者!

本文由MetaQuotes Ltd译自俄文
原文地址: https://www.mql5.com/ru/articles/1425

附加的文件 |
vHandsTrade.mq4 (51.49 KB)
vHistory.mq4 (0.56 KB)
vTerminal.mq4 (0.56 KB)
MQL5中的错误处理和日志记录 MQL5中的错误处理和日志记录
本文着力介绍和软件错误处理相关的常见问题。另外,介绍了日志项及用MQL5工具包实现日志记录。
分形线的构造 分形线的构造
本文讲述了使用趋势线和分形来构造各种类型的分形线.
使用HTML和CSS替换的记录(Log)文件 使用HTML和CSS替换的记录(Log)文件
本文中我们将讲述编写一个简单而功能强大的制作html文件的实例, 在过程中我们会学习调整它们的显示, 以及如何在您的EA交易和脚本程序中轻松实现和使用它们.
外汇交易的战术 外汇交易的战术
本文将有助于交易初学者建立其外汇交易中的战术.