在 MT5 中,NewTick 事件 只发生在运行 EA 的符号上。因此,多符号交易需要使用各种技巧。
该库可在 所有指定的交易符号上 创建多符号OnTick。这是对旧实现的 方便封装。
让我们以多符号智能交易系统(Expert Advisor)为例,展示该库的工作情况,该系统会计算每个指定符号的 "跳动点 "数量。
#include <fxsaber\OnTickMulti\OnTickMulti.mqh> // 多符号 OnTick。 int TicksCounter[]; // 每个给定字符的输入刻度计数器。 void OnInit() { // 初始化收到的刻度计数器。 ArrayResize(TicksCounter, ArraySize(OnTickMultiObject.Symbols)); ArrayInitialize(TicksCounter, 0); } double OnTester() { // 打印每个给定字符的到达刻度数。 for (uint i = ArraySize(TicksCounter); (bool)i--;) Print(OnTickMultiObject.Symbols[i] + " - " + (string)TicksCounter[i] + " ticks."); ArrayPrint(OnTickMultiObject.Symbols); // 符号列表 OnTickMulti. return(0); } // 多符号 OnTick。 void OnTickMulti( const string &Symb, const uint &Index ) { TicksCounter[Index]++; // 用给定的符号增加嘀嗒声的计数器。 }
结果。
为了检查智能交易系统的正确性,让我们在 MT5-tester 中运行它。

在输入中的逗号后,我们设置了多符号 OnTick 将作出反应的符号。
测试仪生成了以下结果(见日志)。
2023.01.12 23:59:59 AUDJPY - 1618389 ticks. 2023.01.12 23:59:59 GBPUSD - 1116822 ticks. 2023.01.12 23:59:59 EURUSD - 906489 ticks. 2023.01.12 23:59:59 "EURUSD" "GBPUSD" "AUDJPY" final balance 10000.00 pips OnTester result 0 EURUSD,M1: 906489 ticks, 12897 bars generated. Environment synchronized in 0:00:00.020. Test passed in 0:00:01.723 (including ticks preprocessing 0:00:00.188). EURUSD,M1: total time from login to stop testing 0:00:01.743 (including 0:00:00.248 for history data synchronization) 3641700 total ticks for all symbols AUDJPY: generate 1618389 ticks in 0:00:00.078, passed to tester 1618389 ticks EURUSD: generate 906489 ticks in 0:00:00.047, passed to tester 906489 ticks GBPUSD: generate 1116822 ticks in 0:00:00.063, passed to tester 1116822 ticks
高亮部分显示,多符号 OnTick 绝对处理了测试器为指定符号生成的所有刻度线。
- 有了这个库,Expert Advisor 在测试器中的工作结果可以不受所选基本符号的影响。
- 所需符号上的跳动不会被跳过。
由MetaQuotes Ltd译自俄语
原代码: https://www.mql5.com/ru/code/47647
Price Density - Market Noise Index
精确测量市场噪音的先进工具
Input and output of onnx model
该脚本有助于检查 ONNX 模型的结构,深入了解输入和输出、名称及其属性。它尤其有助于调试和了解机器学习应用中使用的 ONNX 模型的特性。