指标: Ping - 页 3

 

您的指标存在逻辑问题。

Ping = PrevTime ? MathAbs(Tick.time_msc - PrevTick.time_msc - (NowTime - PrevTime) / 1 e3) : 0;

你不能只取绝对值,然后把它算作延迟。-250 毫秒 "提前 "将被计算为 250 延迟,这并不好。

MT5 通常会通过数据包接收点数,这就是出现负值的原因。

我认为不可能计算出精确的数值。我删除了 MathAbs(),允许出现负值,这样正负值之间就平衡了。


 

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

指标: Ping

Alain Verleyen, 2023.03.09 20:58.

您的指标存在逻辑问题。

Ping = PrevTime ? MathAbs (Tick.time_msc - PrevTick.time_msc - (NowTime - PrevTime) / 1 e3) : 0 ;

您不能只取一个绝对值,然后将其视为延迟。提前"-250 毫秒将被视为延迟 250 毫秒,这并不好。

点数通常是以数据包的形式进入 MT5 的,因此会出现负值。

我认为无法对此进行精确计算。我删除了 MathAbs(),并允许使用负值,这样正负值之间就很平衡了。



 
Alain Verleyen #:

你的指标存在逻辑问题。

任何偏离零的情况都不理想。
 
Alain Verleyen #:

引导性问题:终端是否以 ticks 为单位设置时间?在我看来,tick 历史记录是由服务器生成的。那我们说的是什么终端 ping?

 
Stanislav Korotky # :

引导性问题:终端是否以 ticks 为单位设置时间?在我看来,tick 历史记录是由服务器生成的。那我们说的是什么终端 ping?

当然,我同意这不是来自终端。

我们不可能确切知道网络中的真实延迟。

 
Stanislav Korotky #:

引导性问题:终端是否以 ticks 为单位设置时间?在我看来,tick 历史记录是由服务器生成的。那我们说的是什么终端 ping?

交易、自动交易系统和交易策略测试论坛。

新版 MetaTrader 5 build 3620:网络终端改进、ONNX 支持和 MQL5 中的加速矩阵乘法。

fxsaber, 2023.03.09 07:31 pm

刻度线延迟到达的情况时有发生。以两个相邻的 ticks 为例,情况是这样的。

Tick.time_msc = 08:00:00.000, время прихода 08:00:00.000.

Tick.time_msc = 08:00:00.200, время прихода 08:00:00.490.

刻度线比它应该出现的时间晚了 290 毫秒。


我在一台几乎没有 ping 的专用服务器上也观察到了类似的情况。网络应用中只有终端。

平均延迟时间为 200 微秒,即远小于一毫秒。

您能建议如何消除延迟吗?


我用这个指标 来显示延迟。


比较了两个不同点:在服务器上生成刻度的时间与刻度到达终端的时间。

 
它支持 MT4 吗?
 
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])

将代码更改为与 mt4 版本兼容的函数