自定义交易品种
MetaTrader 5 的一个有趣的技术特性是支持自定义金融工具。这些交易品种不是由经纪商在服务器端定义的,而是由交易者直接在终端中定义的。
自定义交易品种可以添加到Market Watch列表中,与标准交易品种并排显示。带有这些交易品种的图表可以按常规方式使用。
创建自定义交易品种最简单的方法是在相应的特性中指定其计算公式。为此,从终端界面中,在Market Watch窗口中调用上下文菜单,执行Symbols命令,转到交易品种层级结构及其Custom分支,然后按Create symbol按钮。结果,将打开一个用于设置新交易品种特性的对话框。在同一位置,你可以从文件将外部分时报价历史(Ticks选项卡)或行情(Bars选项卡)导入到类似的工具中。这在 MetaTrader 5 文档中有详细讨论。
然而,MQL5 API 提供了对自定义交易品种最完整的控制。
对于自定义交易品种,API 提供了一组处理 金融工具和市场观察的函数。特别是,可以使用标准函数(例如 SymbolsTotal、SymbolName 和 SymbolInfo)从程序中列出此类交易品种。我们已经在 自定义交易品种特性一节中简要地提到了这种可能性并提供了一个示例。自定义交易品种的一个显著特征是启用了 SYMBOL_CUSTOM 标志(特性)。
使用内置函数,你可以拼接期货,生成具有指定特征的随机时间序列,模拟砖形图、等距柱线、等量图以及其他非标准类型的图表(例如,秒级时间范围)。此外,与导入静态文件不同,软件控制的自定义交易品种可以基于来自加密货币交易所等 Web 服务的数据实时生成。关于将 MQL 程序与 Web 集成的讨论尚未展开,但这种可能性不容忽视。
自定义交易品种可以轻松地用于在测试程序中测试策略或作为技术分析的附加方法。然而,这项技术有其局限性。
由于自定义交易品种是在终端中定义的,而不是在服务器上定义的,因此无法在线交易。特别是,如果你创建了一个砖形图,则基于它的交易策略需要以某种方式进行调整,以便交易信号和交易实际上由不同的交易品种分隔:人工用户交易品种和真实经纪商交易品种。我们将研究几个 解决该问题的方法。。
此外,由于平台中一个时间范围的所有柱线的持续时间都相同,因此任何具有不同周期的柱线(砖形图、等量图等)的模拟通常都基于可用的 M1 时间范围中较小的一个,并且不提供与现实的完全时间同步。换句话说,必须强制属于此类柱线的分时报价具有 60 秒内的人工时间,即使砖形图“砖块”或给定交易量的柱线实际上需要更多时间来形成。否则,如果我们将分时报价置于实时状态,它们将形成下一个 M1 柱线,从而违反砖形图或等量图的规则。此外,在某些情况下,砖形图“砖块”或其他人工柱线应以小于前一个柱线 1 分钟的时间间隔创建(例如,当波动性快速增加时)。在这种情况下,将有必要更改自定义金融工具行情中历史柱线的时间(“追溯性地”将它们向左移动)或在新柱线上设置未来的时间(这是非常不可取的)。在用户定义交易品种技术的框架内,无法以通用方式解决此问题。