请观看如何免费下载自动交易

有趣的脚本?
因此发布一个链接 -
让其他人评价

喜欢这个脚本? 在MetaTrader 5客户端尝试它

显示:
288
等级:
投票: 23
已发布:
2018.01.29 09:25
\MQL5\Indicators\fxsaber\
Ping.mq5 (7.45 KB)预览
\MQL5\Include\

交易中的一个重要参数是当前价格的相关性。它取决于很多因素,其中最流行的是终端和交易服务器之间的网络 ping 值。

不过,另一个参数经常被忽略: 所谓的 "内部终端 ping",这是终端(平台)内报价的附加延迟。即使网络 ping 为零,这种滞后也可能很重要。

指标可视化的两种变体

指标显示该参数的变化动态,计算如下:

#include <TypeToBytes.mqh> // https://www.mql5.com/en/code/16280

// 获得新逐笔报价附加内部报价滞后值(以毫秒为单位)
bool SymbolInfoTick( const string &Symb, MqlTick &Tick, double &Ping )
{
  static const bool IsTester = (MQLInfoInteger(MQL_TESTER) || MQLInfoInteger(MQL_OPTIMIZATION));
  
  static MqlTick PrevTick = {0};
  static ulong PrevTime = 0;
  
  const ulong NowTime = IsTester ? 0 : GetMicrosecondCount();
  const bool Res = SymbolInfoTick(Symb, Tick);
  
  if ((!IsTester) && Res)
  {
    if (_R(Tick) != PrevTick)
    {
      Ping = PrevTime ? MathAbs(Tick.time_msc - PrevTick.time_msc - (NowTime - PrevTime) / 1e3) : 0;
      
      PrevTime = NowTime;
      PrevTick = Tick;
    }
    else
      Ping = 0;
  }

  return(Res);
}

上面的屏幕截图显示,计算的值并不小(干净的终端只有一个图表),在 MetaTrader 5 上进行交易以及某些类型的分析中追求零 ping 可能会受到欺骗。


功能

  • 报价的时间差以毫秒计算;
  • 指标消耗的最小终端计算资源;
  • 当指标复位时(在更改时间帧,品种等之后),累积的数据将丢失(没有数据库维护);
  • 删除指标后,其注释留在图表上;
  • 无法为 MetaTrader 4 创建类似的指标,因为无法提供具有毫秒精度的逐笔报价数据;
  • SymbolInfoTick 指标需要一些 "热身" 才能形成首个 计算事件;
  • 指标可以用作任何数值的实时可视化模板,您只需要更换一行即可;
  • 指标计算需要一个函数库,当计算滞后时与MqlTick 结构比较:

    #include <TypeToBytes.mqh> // https://www.mql5.com/en/code/16280
  • 指标有两种显示类型,具体取决于以下行:

    #define HISTOGRAM_VIEW // 注释此行以便将指标视图从直方图更改为蜡烛条

当前指标显示与 Calculate 事件相关的价格滞后(ping )。实际上,有很多因素会对 ping 产生重大影响,因此在交易系统和分析中使用任何指标的适当性似乎都是可疑的。当然, NewTick 事件 对负面影响较不敏感, 但是它的 ping 也是相当可观的(如果在智能交易系统中进行衡量的话),有时可以将某些重要的 平台速度特性 降至最低。

本文译自 MetaQuotes Software Corp. 撰写的俄文原文
官方代码: https://www.mql5.com/ru/code/19422

Candle_row Candle_row

指标在价格走势方向上为蜡烛条设置索引。

RSI 橡皮 RSI 橡皮

基于 iRSI(相对强度指数,RSI)指标信号的智能交易系统。

Exp_Stopreversal_Tm Exp_Stopreversal_Tm

智能交易系统基于 Stopreversal 指标信号, 可以设置严格的交易时间间隔。

Daniella Daniella

使用平均真实范围的信号量指标。