MT4编程

SymbolsLib脚本

2017/12/12 14:31:00 来源:互联网 浏览:585

  SymbolsLib脚本作者:Ilnur Iksanov

  SymbolsLib脚本使用说明:

  注意:非官方的解决方案,可能无法在其他版本的MetaTrader中使用

  在标准MQL4函数中有一个非常有用的函数MarketInfo() ,它返回“Market Watch”窗口中列出的金融标的的各种信息。然而在某些情况下,需要标的的一些附加信息。例如,“Market Watch”窗口列出的货币对在列表中的顺序,其完整的描述,或者经纪商能提供的完整金融交易标的列表。

  我们知道,对于“Market Watch”窗口的任何改变,终端都会打开并修改历史文件夹中的二进制文件symbols.sel。分析此文件的结构显示,对每一个“Market Watch”窗口中的交易标的,终端都有一个128字节的结构体用于记录它。最先的12个字节是标的名称,剩余字节被其他信息所填充:Bid, Ask, High, Low, 等。交易标的的顺序同 "Market Watch" 窗口中的顺序。如果用户改变其顺序,那么会立刻反映在文件中。

  注意:最开始的4个字节是为MQL版本保留的,它们是常量

  然而,文件symbol.sel中的信息可能并不完整。尤其是当 "Market Watch" 没有完整列出金融交易标的时。因此,如果你需要一个完整的由经纪商提供的可交易标的列表,那么这个方法就会起作用了。基于分析文件symbols.raw的方法是由kaisa提出的。然而,使用API函数来实现并不是最佳方案。

  这个问题可以通过“纯粹”的MQL语言来解决。分析这个文件的结构显示,每一个标的都被记录在一个大小为1936字节的二进制结构体中。最初的12字节用于标的的简称,接着的64个字节包含交易标的的扩展描述。

  在此分析的基础上开发了一个库,其中包含若干用于获取终端上加载的金融交易标的更多信息的函数。

  这里是函数列表:

  SymbolsList

  - 返回交易标的列表(在 "Market Watch"中列出的或者所有标的)。

  SymbolDescription

  - 返回指定标的的详细名称描述。

  SymbolType - 返回金融交易标的的类型。

  使用此库的样例在SymbolsSample.mq4脚本中呈现。

  SymbolsLib脚本作者、使用说明信息为小编网络搜集不确保完全准确,望知。

相关阅读

回到顶部
在线客服系统