测试 "CopyTicks"。 - 页 20

 

当非零时,CopyTicks内部正在寻找(可能是二进制搜索)开始的地方--内部基地的索引。

请增加一个函数,按时间返回数据库中的索引。那么这个任务将有可能得到最佳解决

fxsaber:
获得从_时间到_时间的刻度的最佳(最快)算法是什么?
 

出于充分的理由,"什么是蜱虫?"这一主题已被删除。我将从幸存的历史 中给出我的一些答案

В парадигме MT тик - это то, что пришло от биржи. Единица стрима(-ов). Поэтому два подряд идущих тика могут полностью совпадать (MqlTick), но при этом не обозначать одно и то же событие. Помимо MqlTick-данных есть еще номер тика, который не показывается в MT. И есть MT-нюанс с тиками, когда сама история тиков переписывается задним числом из-за нескольких источников получения тиков.

连续的两个ticks(引起一个Tick/Calculate事件)在结构上可能是相同的MqlTick(所有价格和数量以及时间和标志都是相等的),但实际上是不同的。Bid/Ask总是TickSize的倍数。 Last(不在交易所)可能不是TickSize的倍数。 TickSize可以比Point大很多倍(例如,看RTS)。因此,在这种情况下谈论点是不太正确的。

这可能是有用的。SymbolInfoTick是一个非同步化的函数。这意味着它可能在OnTick的不同地方返回不同的ticks。此外,即使你在OnTick的开头调用SymbolInfoTick,产生的tick也不会是OnTick触发的Tick事件的发起者。其MqlTick结构的字段不会等于来自交易所的tick,因为这些字段是由终端自己合成的,等于Marketwatch的值。

 
为什么外汇测试器中的INFO-类型与ALL-类型不一样?
 
在策略测试器中运行专家顾问
void OnTick()
{
  static bool FirstRun = true;
  
  if (FirstRun)
  {
    MqlTick Ticks[1];
    
    if (SymbolInfoTick(_Symbol, Ticks[0]))  
      Print(CopyTicks(_Symbol, Ticks, COPY_TICKS_ALL, Ticks[0].time_msc + 1)); // Сколько тиков со временем больше последнего
    FirstRun = false;
  }
}

结果

2016.10.15 13:23:57.689 2016.10.12 00:00:16   1

应该返回0,但却返回1。Ticks[] 不变。虫子!

 
fxsaber:
在策略测试器中启动一个专家顾问
void OnTick()
{
  static bool FirstRun = true;
  
  if (FirstRun)
  {
    MqlTick Ticks[1];
    
    if (SymbolInfoTick(_Symbol, Ticks[0]))  
      Print(CopyTicks(_Symbol, Ticks, COPY_TICKS_ALL, Ticks[0].time_msc + 1)); // Сколько тиков со временем больше последнего
    FirstRun = false;
  }
}

结果

2016.10.15 13:23:57.689 2016.10.12 00:00:16   1

它应该返回0,但却返回1。在这种情况下,Ticks[]并没有改变。虫子!

会不会是周末呢?

来自帮助。CopyTicks 该函数获取终端在当前工作时段 积累的ticks_array。

 
Alexey Volchanskiy:

会不会是周末呢?

来自帮助文件。CopyTicks 该函数将终端在当前工作时段 积累的刻度线放入ticks_array数组。

测试器里有一个错误。
 

CopyTicks的性能问题。

ロボル

Network 'xxx': authorized on RoboForexEU-MetaTrader 5 through Europe #1 (ping: 56.66 ms)

BCS

Network 'xxx': authorized on BCS-MetaTrader5 through Access Server #2 (ping: 45.53 ms)



这是打勾指标 数据。在这两种情况下,都有2-3千只蜱虫上传。但在机器人中,它的速度超过一个数量级。

白天在外汇市场看到了同样的速度--那时市场更加灵活。Copitix似乎正在放慢活跃市场观察的速度。

在这两种情况下,唯一的图表和唯一的指标。而kopitix肯定已经在数据库/缓存中上传了报价。

 

1) 两者都有堆积物吗?

2)交易/信息标签是否在其原始 线程中分开?复杂的线程需要重新计算,简单的发放

3)实际的要求是什么?

4)通过多少次查询来验证结果?遵循的测试规则是什么,具体是怎样的:考虑冷启动、抛弃异常值、每个系列结果的可重复性、复制的代码。

一般来说,数字结果前面应该有一个准确的代码,以便任何人都可以重复它们。否则,讨论它就没有意义了。

 
Renat Fatkhullin:

1) 两者都有堆积物吗?

2)交易/信息标签是否在其原始 线程中分开?复杂的线程需要重新计算,简单的发放

3)实际的要求是什么?

4)通过多少次查询来验证结果?遵循并准确地遵循了测试规则:核算冷启动、丢弃异常值、每个系列结果的可重复性、复制的代码。

一般来说,数字结果前面应该有一个准确的代码,以便任何人都可以重复它们。否则就没有讨论的必要了。

我给了你一个确切代码的链接。

  1. 没有翻斗车。
  2. 只有INFO-类型。
  3. COPY_TICKS_INFO与从>0。
  4. 请看操作中的链接的指标。可重复性是完整的。不包括冷启动。排放量相似。
 

我们会去看看的。

但对其中一个服务器中缺少一个翻斗车,有很大的疑问。滚揉机没有渲染,这并不重要。如果一个符号有,它的数据总是存在的,并且在要求ticks时,一个更复杂的发行算法会发挥作用。