首页 技术指标 帖子

深入了解MetaTrader 5的Ticks指标

附件
16537.zip (10.18 KB, 下载 0次)

与其他tick指标不同,Ticks指标直接在主图表上显示历史信息,覆盖在每根K线之上。您可以清晰地看到“点差”历史,以及每根K线的形成过程。它还可以直观地展示当前实时K线的形成情况。

Ticks指标操作示例

注意事项

由于该指标显示了图表上所有时间间隔的价格tick历史,视觉化的tick数量可能会达到数十万甚至数百万条。这种高负荷会导致指标运行缓慢。例如,在H1的最小比例下,显示的时间段可能会达到几个月。此时,指标的运行速度会变得非常慢,因为需要加载和显示数百万个tick。

如果您打算监控tick,建议使用较小的时间框架(TF)(例如M5及以下),并设置较大的比例,以便能够详细查看价格历史(如上图所示)。

这个指标来源于某个博客,并经过轻微修改,以解决数组溢出问题。我们添加了(几行代码)来填充LowAsk和HighBid之间的区域,移除了许多冗余内容,包括指标的OOP结构和未使用的mqh文件。

令人惊讶的是,这个指标(根本没有指标缓冲区)非常稳定。

其设计虽然不够优化,但这显然是因为在编写时,CopyTicks函数存在许多bug尚未修复。然而,它能够正确且相对快速地显示历史数据(还有很大的提升空间)。

通过iCustom和IndicatorCreate调用这个指标是没有意义的,因为它没有任何指标缓冲区。它仅用于历史数据的视觉化。事实上,它之所以被称为指标,仅仅是因为其主要功能是展示。

例如,类似于一个EA(专家顾问)。

#property strict

#include <fxsaber\ChartObjects\ChartObjectTicks.mqh>

CHARTOBJECTTICKS ChartObject;

void OnChartEvent( const int id, const long& lparam, const double& dparam, const string& sparam )
{
  EVENTBASE::MyEvent(id, lparam, dparam, sparam);
}

void OnTick( void )
{
  if (::ChartGetInteger(0, ::CHART_FIRST_VISIBLE_BAR) <= ::ChartGetInteger(0, ::CHART_VISIBLE_BARS))
    ChartObject.Visual();
}

也就是说,它仅仅使用了一种自定义类型的交互式图形对象。因此,矛盾的是,这个指标在技术上只是一种形式上的指标——MT程序的技术形式。

该对象的透明度级别可以在输入参数中设置。

这个指标是自足的,不使用任何标准库。

使用终端截图功能可能会遇到问题,因为截图可能与终端显示不一致。

该指标兼容MetaTrader 4,但当然,它不会显示任何内容(没有CopyTicks数据)。

相关帖子

评论 (0)