Смотри, как бесплатно скачать роботов
Ищи нас в Twitter!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Библиотеки

OnTickMulti - библиотека для MetaTrader 5

Просмотров:
845
Рейтинг:
(5)
Опубликован:
2023.12.13 11:54
Обновлен:
2024.03.24 06:37
\MQL5\Indicators\fxsaber\ \MQL5\Experts\ \MQL5\Include\fxsaber\OnTickMulti\
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

В MT5 NewTick-событие происходит только на символе, на котором запущен советник. Поэтому для мультисимвольной торговли используют различные ухищрения.

Данная библиотека создает мультисимвольный OnTick по всем заданным торговым символам. Удобная обертка старой реализации.


Пример.

Покажем работу библиотеки на примере мультисимвольного советника, который подсчитывает количество пришедших тиков по каждому заданному символу.

#include <fxsaber\OnTickMulti\OnTickMulti.mqh> // Мультисимвольный OnTick.

int TicksCounter[]; // Счетчик пришедших тиков каждого заданного символа.

void OnInit()
{
  // Инициализируем счетчик пришедших тиков.
  ArrayResize(TicksCounter, ArraySize(OnTickMulti.Symbols));
  ArrayInitialize(TicksCounter, 0);
}

double OnTester()
{
  // Распечатываем количество пришедших тиков на каждый заданный символ.
  for (uint i = ArraySize(TicksCounter); (bool)i--;)
    Print(OnTickMulti.Symbols[i] + " - " + (string)TicksCounter[i] + " ticks.");

  ArrayPrint(OnTickMulti.Symbols); // Список символов OnTickMulti.

  return(0);
}

// Мультисимвольный OnTick.
void OnTickMulti( const string &Symb, const int &Index )
{
  TicksCounter[Index]++; // Увеличили счетчик пришедших тиков по заданному символу.
}


Результат.

Для проверки корректности работы советника запустим его в MT5-тестере.

Через запятую во входных задаются символы, на которые будет реагировать мультисимвольный 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.


Для чего?

  • С данной библиотекой результат работы советника в Тестере может не зависеть от выбранного основного символа.
  • Не пропускаются тики по нужным символам.

BinanceQuotesDownloader BinanceQuotesDownloader

Отображение котировок Binance в режиме реального времени

Калькулятор риска для MT 5 Калькулятор риска для MT 5

Индикатор считает ваш риск в процентах, и выдает размер предельного лота, который допустим для вашего риска. Нужно лишь указать риск в процентах, и размер стопа в пипсах.

Программирование на MQL5 для трейдеров — исходные коды из книги. Часть 1 Программирование на MQL5 для трейдеров — исходные коды из книги. Часть 1

Первая глава книги знакомит с языком и средой разработки MQL5. Одно из главных изменений в языке MQL5 по сравнению с MQL4 (язык MetaTrader 4) — поддержка объектно-ориентированного программирования (ООП), что делает его схожим с C++.

Программирование на MQL5 для трейдеров — исходные коды из книги. Часть 2 Программирование на MQL5 для трейдеров — исходные коды из книги. Часть 2

Часть 2 "Основы программирования на MQL5" является введением в ключевые концепции этого языка программирования. В этой части книги читатели ознакомятся с типами данных, идентификаторами, переменными, выражениями и операторами, а также узнают, как объединять различные инструкции для формирования логики работы программы.