Николай Флёров
Николай Флёров личный блог
11 декабря 2025, 17:32

Тиковые данные в WealthLab со скоростью света! Только тут

Тиковые данные в WealthLab со скоростью света! Только тут Тиковые данные в WealthLab со скоростью света! Только тут

Я работал во множестве терминалах, но моя «любовь на всегда» — это Wealth-Lab!

И  я знаю — многие любят «велс» также сильно, как и я, однако у него была одна сложно-решаемая проблема — это данные российского рынка! Постоянно приходилось загружать их можно сказать вручную — а о том, чтобы работать с ним как с Xtick(терминал технического анализа) не было и речи, хотя WealthLab настолько гибкий, что можно было бы сделать просмотровый терминал покруче Xtick и многих других.

Например — вы хотели бы получать сигналы в телеграм или просто скальпировать, глядя на кастомные/уникальные индикаторы — это можно сделать в WealthLab и я говорю не о последней версии веса, а о старой доброй версии 6.9 — которая распространена «по интернетам»!

Есть несколько быстрых(для подключения) и удобных поставщиков тиковых данных — но самым удобным и простым для доступа оказался фид из терминала MetaTrader 5 (в моем случае от Финама). Он подключается за 1 минуту и сразу готов к работе!

Если мы хотим, чтобы тики поступали к нам в терминал реально быстро — можно воспользоваться таким вариантом, как ZeroMQ. Это технология сокетов, которая работает быстрее, чем вы успеваете моргнуть. Если простым языком — то как только приходит тик в Metatrader — ZeroMQ моментально отправит эти данные на «клиент- подписчик», который мы развернем прямо внутри стратегии WealthLab на этом же компьютере ( чтобы показать, что сервер можно создать практически где угодно, лишь бы был доступ к C# – в боевом режиме, конечно лучше streamingDataProvider).

А теперь начинается мастер-класс для тех, кто хочет избежать «шишек» при получении тиковых данных в C# (и кое что интересное в конце).

Тиковые данные в WealthLab со скоростью света! Только тут

1. Если у вас нет Metatrader 5 заходим в личный кабинет Финама «заказываем» новый терминал — вот как это быстро сделать.            

2. Естественно Metatrader 5 «из коробки» не умеет работать с ZeroMQ, но на гитхабе есть товарищи, которые «подружили» эти два превосходных инструмента, теперь осталось разобраться с версиями. Поэтому мы:            

            * Заходим на страницу издателя на github

             * Качаем архив libzmq 4.3.4

             * Открываем архив и видим, что там 100500 файлов, но не пугаемся

             * Копируем 2 файла

                     * libzmq-v140-mt-4_3_4.dll (Сама библиотека) и

                     * libsodium.dll (Библиотека шифрования, без неё первая не запустится) — эти файлы точно нам подойдут. Я рекомендую обе dll разблокировать сразу, чтобы не сталкиваться с ошибками лишний раз.

Тиковые данные в WealthLab со скоростью света! Только тут

             * Кидаем оба файла в папку "MQL5\Libraries". Чтобы открыть папку «MQL5» можно просто в меню metatrader5 нажать на кнопку «Файл»=>"Открыть каталог данных"

Тиковые данные в WealthLab со скоростью света! Только тут

              1. Теперь, когда у нас есть сам инструмент — начнем с ним работать. Чтобы MQL-код мог общаться с DLL, нужен файл-обертка с расширением mqh, а также советник который мы кинем на любой график и тики автоматически полетят и мы сможем их поймать с помощью клиента-подписчика на C#. Файлы должны лежать в разных папках — так, что есть нюансы — показываю как и что делать:

Вот файл с расширением mqh:

Тиковые данные в WealthLab со скоростью света! Только тут

Для этого файла создаем отдельную папку «zmq» — - должно получиться так: «C:\Program Files\FINAM MetaTrader5\MQL5\Include\Zmq\Zmq.mqh»

Файл советника- берем вот тут

Положить его нужно в папку: «C:\Program Files\FINAM MetaTrader5\MQL5\Experts\ZmqSender.mq5»

Далее заходим в эту папку двойным щелчком — открываем этот файл в редакторе и нажимаем F7 — чтобы скомпилировать этот советник, чтобы его стало видно в папке Metatrader 5.

Тиковые данные в WealthLab со скоростью света! Только тут

              * Галочка "Разрешить импорт DLL": Без неё MT5 даже не чихнет в сторону ZeroMQ. Она должна стоять и в настройках советника, и в Сервис -> Настройки -> Советники.

Тиковые данные в WealthLab со скоростью света! Только тут

             * Окно Брандмауэра Windows. Как только код дойдет до команды socket.Bind, Windows испугается: «Какая-то программа открывает порт 5556!».

Тиковые данные в WealthLab со скоростью света! Только тут

          * Действие: Поставьте галочки и для «Частных», и для «Общественных» сетей. Нажмите «Разрешить».

         * Если окна не было: Значит, DLL даже не загрузилась (см. Шаг 1).

         * Если в журнале MT5 появилось >>> HFT DEBUGGER STARTED — поздравляю, половина пути пройдена. Ваш MT5 теперь вещает как радиостанция.

Тиковые данные в WealthLab со скоростью света! Только тут

Wealth-Lab 6 — это надежная но старая программа, она не понимает современные библиотеки .NET Core — поэтому нужно внимательно подходить к выбору версии ZeroMQ для работы с .Net.

Если вы пойдете на страницу NuGet и качаете самую свежую версию NetMQ (например, 4.0.2.2), пытаетесь добавить её в WL6 и получаете:

ERROR: Не удалось загрузить файл или сборку System.Memory...

Суть проблемы:

Новые версии NetMQ оптимизированы для современных процессоров и требуют библиотеки System.Memory, System.Buffers и т.д. В старом .NET Framework 4.5, на котором работает WL6, их нет.

Самое лучшее решение — это скачать старую версию NetMQ 4.0.0.1 — она идеальна для Wealth-Lab 6.9.

Она уже достаточно современная, чтобы работать быстро, но еще не требует кучи зависимостей.

Вам нужны два файла с NuGet (распаковываем как ZIP):

                1. NetMQ.dll (версия 4.0.0.1)

                2. AsyncIO.dll (версия 0.1.26.0) — Обязательно! NetMQ без неё не живет.

Вы скачали правильные DLL, положили их в папку Wealth-Lab(обычно «C:\Program Files\MS123\Wealth-Lab Developer 6»), пытаетесь добавить Reference… и видите ошибку: «Could not add this Reference… ». Windows ставит на скачанные из интернета DLL «Черную метку» (Zone Identifier). Wealth-Lab видит эту метку и отказывается трогать файл палкой. Как и с прошлыми Dll нужно просто их разблокировать!

Ритуал очищения :

               1. Идем в папку с файлами.

               2. Правой кнопкой на NetMQ.dll -> Свойства.

               3. Внизу ставим галочку «Разблокировать» (Unblock) -> ОК.

               4. Повторяем то же самое для AsyncIO.dll.

               5. И снова добавляем Reference в WL6 — теперь работает!

Тиковые данные в WealthLab со скоростью света! Только тут

Мы начинаем писать саму стратегию в Wealth-Lab, в которой и будет находится наш сервер-слушатель. Но нужно знать нюансы, чтобы не повесить «велс» на вечность.

Каждый раз, когда стратегия пересчитывается, она запускается заново. Если не сделать защиту, вы запустите 10, 20, 100 потоков, которые будут драться за один порт.

Мы используем static переменные. Они живут в памяти, даже когда стратегия перезапускается.

Вот тут код Стратегии, который нужно запустить в WealthLab.

Скопируйте это в редактор стратегий. Не забудьте добавить Reference на NetMQ.dll!

Тиковые данные в WealthLab со скоростью света! Только тут

Мы собрали все компоненты. Пора нажать красную кнопку.

Шаг 1. Запуск Сервера (MT5)

               1. Открываем график (например, RIZ5, M1).

               2. Кидаем на него советника ZmqSender.

               3. Смотрим:

  • В углу графика надпись: ZMQ Streamer Active.
  • Внизу во вкладке «Эксперты»: Sent tick #1, Sent tick #10…
  • Если сообщений нет: Рынок закрыт? (Выходные). Или вы забыли нажать «Разрешить импорт DLL».

Шаг 2. Запуск Клиента (WL6)

             1. Открываем стратегию.

Тиковые данные в WealthLab со скоростью света! Только тут

             2. Вставляем код и файла стратегии.            

             3. Добавляем референсы

Тиковые данные в WealthLab со скоростью света! Только тутТиковые данные в WealthLab со скоростью света! Только тут

              3. Нажимаем F5 (Run Strategy).            

              4. Смотрим:

  • Окно Debug: Initializing ZeroMQ Listener... -> Background task is active.
  • На графике: Зеленая надпись ZMQ STATUS: LISTENING (OK)

Шаг 3. Финал

Сворачиваем все окна. Смотрим на Рабочий Стол.

Там должен появиться файл MT5_WLD_DEBUG.csv.

Откройте его (желательно через Notepad++, чтобы видеть обновления в реальном времени).

Вы должны увидеть вот это:

Тиковые данные в WealthLab со скоростью света! Только тут

Если цифры обновляются — поздравляю!

Вы только что создали очень быстрый-мост между двумя несовместимыми платформами. Вы обошли систему безопасности Windows, победили ад DLL-зависимостей и заставили .NET 4.5 общаться с нативным C++ через ZeroMQ.

Теперь задержка передачи данных составляет всег несколько миллисекунд- это было интересное приключение, но что дальше? 🚀

Если вы приложите достаточно настойчивости можете дойти и до Streaming провайдера и например торговать полу-автоматически совершенно бесплатно!

Либо использовать WealthLab, как продвинутый Xtick в котором за минуту можно «накидать» собственный индекс из акций Сбербанка, Газпрома и Лукойла и смотреть на него как на «поводырь», а также моментально протестировать любую свою идею и на нейронных сетях, тоже!

Вот такую красоту можно получить (если сделать свой провайдер)- тики приходят очень быстро:

Тиковые данные в WealthLab со скоростью света! Только тут

В TsLab фид стоит 60000 руб. в год — но не всем нужно именно алгоритмически торговать свои идеи, поэтому забирайте для полуавтоматической торговли и тестов!

Друзья, ставьте как можно больше плюсиков и добавляйтесь в группу в vk:  vk.com/trading5! Пишите мне в телеграм: @NikolayFly!

Чем больше плюсов — тем чаще я буду писать!

Спасибо за внимание + картинка для правильного вайба!

Тиковые данные в WealthLab со скоростью света! Только тут
22 Комментария
  • Байкал
    11 декабря 2025, 17:39
    Хорошо, это все прекрасно)))

    Практическое использование всего этого как???
    Когда комисс биржи стал конский.
    Выигрываю миллисекунды.
    Ну ладно зачем?
      • Байкал
        11 декабря 2025, 18:12
        Николай Флёров, понял)
  • Blade
    11 декабря 2025, 17:52
    Полезнейшая статья! Удивительно как много ты раздаёшь всем ценной информации! Большинство людей этого не заслуживают.
  • IgorMushtriev
    11 декабря 2025, 19:01

    Отличная статья!

    Да, WelathLab 6.9 была простой и удивительно хорошей программой. Знаю, что многие до сих пор ею пользуются.

    Спасибо, Николай!

  • Kuzma Shevelev
    11 декабря 2025, 18:42

    а с другой стороны, можно просто все накодить через MQL5 и не париться

    • Дмитрий Овчинников
      11 декабря 2025, 19:54
      Николай Флёров, 
      Или визуализаторы, чтобы посмотреть удобно эквити с просадкой
      для этого есть эксель ;)
        • Дмитрий Овчинников
          11 декабря 2025, 20:45
          Николай Флёров, 
          мой эксель красивее :)

          screenshot
            • Дмитрий Овчинников
              11 декабря 2025, 21:20
              Николай Флёров, 
              жаль увеличить нельзя)

              правая кнопка мыши- открыть в новой вкладке. Кхе-мофей он такой :)
  • Михаил Шардин
    12 декабря 2025, 03:45
    Очень круто и полезно!
    Но в чем преимущество именно этой связки?
  • Михаил Шардин
    12 декабря 2025, 03:56
    И чем отличается от scalp например?
    Там тоже такую идею можно сделать
  • Schwonder
    12 декабря 2025, 07:11
    Денeг не дам.
  • Shmelik
    12 декабря 2025, 11:38
    Николай, огромное Вам спасибо! Это-же надо наковырять такую связку. Может быть, сразу мимоходом спрошу, у вас или у кого-то из коллег  есть способ похожего экспорта из метатрейдера в амиброкер? Предупреждая вопрос людей — зачем, если в квике есть штатный экспорт — для экспорта американских и международных акций.

    К стыду своему должен признать, что я давно ковыряюсь пытаясь выстроить какую-то рабочую связку, и пока как-то посматриваю на все варианты, т.е. амиброкер, сам метатредер, осэнжин и велс. Амиброкер подкупает своей огромной скоростью для работы на больших списках акций. У метатрейдера хороша встройка в инфраструктуру брокеров и уже есть встроеный язык, т.е. как-бы завершенная концепция, но есть какие-то трудноформулируемые моменты, почему он не очень нравится, т.е. пока больше его рассматриваю как источник данных. Осэнжин очень большой. Не могли-бы вы рассказать о вашем опыте автоматических связок, если он есть, и опыт других тоже интересует, друзья, поделитесь опытом, какие связки используете?.. Связки, для полного автомата.

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн