实时的提基 - 页 6

 
Andrey Khatimlianskii:

你的代码中的 OnBookEvent改为OnTick,然后比较结果。

你不能比较结果 :)

你需要同时 运行两个EA来比较结果。

但我已经知道,它将是相同的,但

但如果我运行OnTick(),有时会出现延迟 的结果。

即不是实时的。

 
prostotrader:

你不能比较结果 :)

你必须运行两个EA来比较结果。

但我已经知道,它将是相同的,但

只有当它是OnTick()时,结果才会有延迟

即不是实时的。

不会有延迟。相反,如果你订阅了许多工具来更新堆栈,OnTick可能工作得更快。不要懒得去比较。

 
Andrey Khatimlianskii:

不会有任何延误。相反,如果你订阅了许多工具的股票更新,OnTick可能工作得更快。不要懒得去比较。

而且为什么不订阅所有可能的赌注呢?

你可以想出别的办法。

在一个单一的工具上,有一个单一的tick订阅,OnBookEvent()比OnTick()更经常被触发。

2020.01.23 16:56:53.226	Ticks_test (GOLD-3.20,M1)	OnTick Tick is done!
2020.01.23 16:56:53.226	Ticks_test (GOLD-3.20,M1)	OnBookEvent Tick is done!
2020.01.23 16:56:53.712	Ticks_test (GOLD-3.20,M1)	OnTick Tick is done!
2020.01.23 16:56:53.712	Ticks_test (GOLD-3.20,M1)	OnBookEvent Tick is done!
2020.01.23 16:56:53.930	Ticks_test (GOLD-3.20,M1)	OnBookEvent Tick is done!
2020.01.23 16:56:53.996	Ticks_test (GOLD-3.20,M1)	OnTick Tick is done!
2020.01.23 16:56:53.996	Ticks_test (GOLD-3.20,M1)	OnBookEvent Tick is done!
2020.01.23 16:56:54.016	Ticks_test (GOLD-3.20,M1)	OnBookEvent Tick is done!
2020.01.23 16:56:54.280	Ticks_test (GOLD-3.20,M1)	OnBookEvent Tick is done!
2020.01.23 16:56:54.392	Ticks_test (GOLD-3.20,M1)	OnBookEvent Tick is done!

一包新的蜱虫到达--OnBookEvent()被触发了。

如果你不喜欢我的版本,就写你自己的。

顺便说一下,结果是更高的,有84个滚轮签署了真实的!这是对的。

添加

这里有更多

//+------------------------------------------------------------------+
//|                                                  Test_freeze.mq5 |
//|                                     Copyright 2018, prostotrader |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, prostotrader"
#property link      "https://www.mql5.com"
#property version   "1.00"
bool is_book;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
    //int fr_level = int(SymbolInfoInteger(Symbol(), SYMBOL_TRADE_FREEZE_LEVEL));
   // Print(__FUNCTION__, ": ", Symbol(), " Freeze level is ", fr_level);
   is_book = MarketBookAdd(Symbol());
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
  if(is_book == true) MarketBookRelease(Symbol());
}
//+------------------------------------------------------------------+
//| BookEvent function                                               |
//+------------------------------------------------------------------+
void OnTick()
{
  Print(__FUNCTION__, " Tick is done!");
}
//---
void OnBookEvent(const string &symbol)
{
  if(Symbol() == symbol)
  {
    Print(__FUNCTION__, " Tick is done!");
  }
}


2020.01.30 19:31:11.112 Test_freeze (BR-3.20,M1)        OnTick Tick is done!
2020.01.30 19:31:11.113 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.132 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.192 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.199 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.219 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.249 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.261 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.309 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.323 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.414 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.433 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.539 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.667 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.703 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.789 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.802 Test_freeze (BR-3.20,M1)        OnTick Tick is done!
2020.01.30 19:31:11.809 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.821 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.949 Test_freeze (BR-3.20,M1)        OnTick Tick is done!
2020.01.30 19:31:11.950 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:12.049 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:12.122 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:12.201 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:12.292 Test_freeze (BR-3.20,M1)        OnTick Tick is done!
2020.01.30 19:31:12.293 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:12.314 Test_freeze (BR-3.20,M1)        OnTick Tick is done!
2020.01.30 19:31:12.315 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:12.336 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:12.350 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:12.372 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:12.412 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:12.433 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:12.491 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:12.577 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:12.740 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:12.799 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:12.862 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:12.992 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!

添加

今天就到此为止吧!

你只有幻想和假设,而

我有7年的编写机器人 和在FORTS上成功交易的经验+。

我有一个具体的工作代码。

Как заказать торгового робота на MQL5 и MQL4
Как заказать торгового робота на MQL5 и MQL4
  • www.mql5.com
Главным преимуществом торговых терминалов MetaTrader является возможность создания автоматических торговых систем, способных совершать торговые операции без вмешательства трейдера, что позволяет исключить влияние психологии на результаты торговли. Для этого нужно сформулировать торговую стратегию и реализовать ее в виде программы на языке MQL...
 

代码中出现了一个错误。

在第5页发布了更正内容

https://www.mql5.com/ru/forum/331060/page5#comment_14783678

Тики в реальном времени
Тики в реальном времени
  • 2020.01.30
  • www.mql5.com
Всем доброго времени суток. Появилась необходимость протестировать торговый алгоритм на реальных тиках брокера "Открытие...
 
prostotrader:

为什么不报名参加所有可能的翻牌活动?

你可以想别的办法。

在一个具有单一玻璃订阅的工具上,OnBookEvent()比OnTick()更经常被触发。

有多少OnBookEvent事件进来有什么区别?你说过,当它收到ticks时,会比OnTick早发生。我建议检查这一点,在那里和那里输出接收刻度线的时间(只是不在同一个EA中)。


娼者。

让我们在这里结束吧

你只有幻想和假设,而

而且我有7年的编写机器人 和在FORTS上成功交易的经验+。

我有一个具体的工作代码。

你有一种回荡在你所有信息中的潇洒。为什么你决定FORTS只能从OnBookEvent工作--只有你知道。

但要尊重代码。当我找到时间时,我将张贴我的。这不是一项优先任务。

 
Andrey Khatimlianskii:

有多少OnBookEvent事件到达有什么区别?你说过,当它收到嘀嗒声时,它将比OnTick早发生。 而我建议你检查一下,在那里和那里输出接收勾股的时间(只是不在同一个EA)。


你有一种回荡在每个帖子里的气质。为什么你决定FORTS只能从OnBookEvent工作--只有你知道。

但要尊重代码。当我找到时间时,我将张贴我的。这不是一项优先任务。

你可以通过任何你喜欢的方式来工作!

根据我在FORTS工作的经验,我已经公布了我的解决方案。

如果我说我在行为上、言语上太过自信,我会同意你的说法。

如果我没有经验,会同意你的看法。

2020.01.30 19:31:11.112 Test_freeze (BR-3.20,M1)        OnTick Tick is done!
2020.01.30 19:31:11.113 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.132 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.192 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.199 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.219 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.249 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.261 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.309 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.323 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.414 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.433 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.539 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.667 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.703 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.789 Test_freeze (BR-3.20,M1)        OnBookEvent Tick is done!
2020.01.30 19:31:11.802 Test_freeze (BR-3.20,M1)        OnTick Tick is done!

第一次OnTick()的时间2020.01.30 19:31:11.112

秒的时间 OnTick()2020.01.30 19:31:11.802

也就是说,690毫秒已经过去了,同时,在这690毫秒的OnTick()之间的

OnBookEvent()被触发了15次

你认为这些诱因与蜱虫没有关系 吗?

那么,请阅读OnBookEvent()的帮助。

События BookEvent никогда не пропускаются и всегда ставятся в очередь, даже если в данный момент еще не закончена обработка предыдущего события BookEvent.
При этом необходимо иметь в виду, что события BookEvent доставляются сами по себе и не несут с собой состояния стакана заявок.
Это означает, что вызов MarketBookGet() из обработчика OnBookEvent() позволяет получить текущее актуальное состояние стакана на момент вызова,
а не то состояние стакана, которое вызвало отправку события BookEvent.
Для гарантированного получения всех уникальных состояний стакана функция OnBookEvent() должна быть максимально быстрой. 

新的 tick批次到达--OnBookEvent()被保证触发--这提供了用CopyTicks()实时获取tick 机会。

而使用OnTick(),你只能从历史记录中获得ticks。

全部收到,没有任何遗漏,但不是实时 的。

非常奇怪的是,我必须向有丰富经验 的人如此详细地解释这一切。

再次重申,每个人都可以自由选择他们 喜欢的编程和交易方法

添加

还有一个重要的问题,很多人都忘记了。

这是EA通过分析输入数据做出决定的速度。

使用OnBookEvent()而不是OnTick(),我的EA会 你的

 
prostotrader:

第一次OnTick()的时间2020.01.30 19:31:11.112

秒的时间 OnTick()2020.01.30 19:31:11.802

也就是说,690毫秒已经过去了,同时,在这690毫秒的OnTick()之间的

OnBookEvent()被触发了15次

你认为这些诱因与蜱虫没有关系 吗?

请把刻度线的值也打印出来。从上面的日志中你看不出OnBookEvent已经捕捉到了MqlTick结构 的变化。

在价差之外设置SellLimit将产生一个OnBookEvent事件,但不会产生交易或BestBid/BestAsk/BestVolume的变化。即INFO和LAST tick磁带(CopyTicks历史)将不会被更新。

 
fxsaber:

请把打钩的数值也打印出来。上述日志没有显示OnBookEvent捕捉到MqlTick结构 的变化。

如果SellLimit设置在价差之外,它将创建OnBookEvent事件,但它不会产生交易或BestBid/BestAsk/BestVolume变化。也就是说,INFO和LAST tick磁带(CopyTicks历史)不会被更新。

为什么要把它打印出来?

OnBookEvent()的第一行描述说

Вызывается в индикаторах и экспертах при наступлении события BookEvent.
Функция предназначена для обработки изменений стакана цен (Depth of Market).
 
prostotrader:

为什么要把它打印出来?

OnBookEvent()的第一行描述说

如果你衡量一个小时内发生了多少个BookEvent事件,以及CopyTicks中的多少条记录,你就可以做出结论。

 
fxsaber:

如果你测量每小时发生多少个BookEvent事件,以及CopyTicks中的多少个条目,你可以推断出。

上面有代码,自己看看吧。

有一个有效的代码

我相信它是实时工作的,当然更快

比OnTick()更有意义。

问题是什么?做这个,做那个...

你必须贴出你的工作代码来证明或反驳一些东西!