mql5语言的特点、微妙之处以及技巧 - 页 23

 
阿尔乔姆-特里什金
不,你不知道。你只需要知道最后一个头寸是如何关闭的(而且你不需要为此深入到历史中去--这足以过滤 "你的 "交易)--进一步到历史深处的最后一个头寸的知识,更多的是统计而不是操作。
那么,所有这些都是在OnTradeTransaction 中完成的。只有在fxsaber 发布的触发器中:我将 在符号、魔术师和交易的DEAL_ENTRY_OUT上增加一个检查。
Особенности языка mql5, тонкости и приёмы работы
Особенности языка mql5, тонкости и приёмы работы
  • www.mql5.com
В данной теме будут обсуждаться недокументированные приёмы работы с языком mql5, примеры решения тех, или иных задач...
 
阿列克谢-维克多罗夫
那么,所有这些都是在OnTradeTransaction 中完成的。只有在fxsaber 发布的触发器中:我将 在符号、魔术师和交易的DEAL_ENTRY_OUT上增加一个检查。
那么你如何检查测试者呢?
 
阿尔乔姆-特里什金
你将如何检查测试者?
同样的方式。有什么区别?我在测试器和调试器中都试了一下,以了解它的工作原理。
 
阿列克谢-维克多罗夫

没有仔细看这个触发器,但没有看到交易中对DEAL_ENTRY_OUT的任何检查。毕竟,正是这种交易表明了当前账户上的平仓。

检查是不需要的。触发器在测试器中不起作用,因为测试器不产生一些交易事件。
 
fxsaber:
检查是没有必要的。触发器在测试器中不会工作,因为测试器不产生 一些贸易事件。

比如说,从这个名单上的哪些人?

贸易_交易_订单_添加

添加一个新的公开订单。

贸易_交易_订单_更新

修改一个开放的订单。这些变化不仅包括客户终端或交易服务器端的明确变化,还包括下单状态的变化(例如从 ORDER_STATE_STARTED到ORDER_STATE_PLACED或从ORDER_STATE_PLACED到ORDER_STATE_PARTIAL等等)。

贸易_交易_订单_删除

将订单从未结订单列表中删除。一个订单可以因交易请求或因执行(填补)并转入历史而从未结订单列表中删除。

贸易_交易_交易_添加

在历史上增加一笔交易。这是作为订单执行的结果或作为账户平衡操作的结果进行的。

贸易_交易_交易_更新

在历史上改变了一个行业。当以前执行的交易在服务器上被改变时,就可能出现这种情况。例如,该交易在外部交易系统(交易所)中被改变,在那里被经纪人删除。

贸易_交易_交易_删除

从历史中删除该交易。可能会有这样的情况,以前执行的交易在服务器上被删除。例如,该交易在外部交易系统(交易所)中被经纪人删除。

贸易_交易_历史记录_添加

由于执行或取消,将订单添加到历史中。

贸易_交易_历史_更新

修改订单历史中的一个订单。这种类型是为了增加贸易服务器方面的功能。

贸易_交易_历史_删除

从订单历史中删除一个订单。这种类型是为了在贸易服务器方面进行功能扩展。

贸易_交易_位置

改变与交易执行无关的头寸。这种交易类型表明,交易服务器一方的头寸已被改变。仓位的成交量、开盘价、止损和止盈水平可能会被改变。有关变化的信息通过OnTradeTransaction处理程序传递给MqlTradeTransaction结构。因交易而导致的头寸变化(增加、修改或取消)不会导致TRADE_TRANSACTION_POSITION交易的发生。

交易请求

一个通知,表明服务器已经处理了一个交易请求,并且已经收到了其结果。对于这种类型的交易,有必要只分析一个字段--MqlTradeTransaction结构中的type(交易类型)。必须分析OnTradeTransaction函数的 第二和第三个参数(请求和结果)以获得额外的信息。


除非没有产生突出显示的事件。那么,有人需要它吗?

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Основы языка / Функции / Функции обработки событий - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexey Viktorov:

比如说,哪些人在这个名单上?

贸易事件是我的说法。

关于交易、自动交易系统和交易策略测试的论坛

mql5语言的特点、微妙之处以及技巧

fxsaber, 2017.02.28 19:30

可能有一个开放的买入头寸和一个有效的买入订单。上面给出了一个代码例子,但可能对手指更容易。未结头寸的 TP如何触发?

  • 价格达到买入位置的TP。
  • 交易服务器创建一个相应的主动卖出订单。
  • 然后,终端同时有一个买入头寸和一个卖出订单。
  • 卖出指令是通过进入历史并在那里产生交易来执行的。
  • 最初的 "买入 "头寸是基于这个交易而关闭的,这个交易没有被捕捉到--它间接地存在于交易历史中。

所选的贸易事件在测试器中没有发生。
 
fxsaber:

贸易事件是我的说法。

在测试器中没有发生突出显示的贸易事件。

在我看来,这不是一个事件。这是命令执行顺序的微妙之处。为什么我应该抓住卖出平仓 买入头寸 的指令与头寸本身同时出现在终端的时机?

这可能是一种不幸,事件的顺序可能无法被观察到,但......。交易中最主要的是什么? 难道不是跟踪事件的流程和测量速度吗?如果他们明天以要求的价格为我开仓,并在昨天 平仓,但有利润,我也不会反对。

 
Alexey Viktorov:

在我看来,这不是一个事件。这是命令执行顺序的微妙之处。为什么我应该抓住卖出平仓 买入头寸 的指令与头寸本身同时出现在终端的时刻?

阅读本支部的标题。
 
fxsaber:
请阅读该主题的标题。
这有什么区别呢?
 
阿列克谢-维克多罗夫
什么会改变?
没有什么会改变,但细微之处的描述--这是毫无疑问的。
而问题仍然是:这个功能将如何在测试器中抓紧关闭点/站?