Торговые инструменты для трейдеров

Как подключить QUIK к MetaTrader 5 для торговли на Мосбирже

,

На чтение потребуется

6 минут
Обложка статьи: Связка QUIK и MT5 для роботов

QUIK — стандартный терминал российских брокеров для доступа к Московской бирже, но его встроенные средства автоматизации ограничены. MetaTrader 5, напротив, даёт широкие возможности для написания советников на MQL5, однако не имеет прямого шлюза на MOEX. В результате трейдеры, желающие запустить робота на российском рынке, оказываются перед выбором: ручная торговля в QUIK или мощный советник без доступа к нужным инструментам.

Связка двух терминалов решает эту дилемму. Разберём пошагово, как подключить QUIK к MetaTrader 5 и настроить обмен данными для автоматической торговли на Московской бирже.

Зачем связывать QUIK и MetaTrader 5

QUIK — стандартный терминал российских брокеров для доступа к Московской бирже (MOEX). Программа позволяет просматривать котировки, строить графики, выставлять заявки и получать данные торгового счёта. Однако встроенные средства автоматизации QUIK ограничены: написание сложных торговых алгоритмов на встроенном Lua-скриптинге требует значительных усилий и не даёт гибкости, привычной трейдерам, работающим с профессиональными советниками.

MetaTrader 5, напротив, предоставляет развитую среду для разработки советников на MQL5 с богатой библиотекой встроенных функций, тестером стратегий и поддержкой сложных торговых логик. Проблема в том, что MT5 не имеет прямого шлюза к Московской бирже — на сегодняшний день готового подключения MetaTrader 5 к счетам MOEX брокеры не предлагают. В результате трейдер оказывается перед выбором: ограничиться ручной торговлей через QUIK или использовать мощный советник без доступа к российскому рынку.

Связка двух терминалов снимает это противоречие. QUIK выступает шлюзом к бирже, а MetaTrader 5 — вычислительным ядром, где работает советник. О том, какие индикаторы и сигналы действительно подходят для MOEX, мы рассказывали в статье «Сигналы для торговли акциями на Мосбирже». А для понимания принципиальных различий между рынками стоит прочитать материал «Форекс или Мосбиржа: где выгоднее торговать с роботом».

В чём сложность прямой интеграции QUIK с MT5

QUIK и MetaTrader 5 — две независимые программы с принципиально разной архитектурой. QUIK разработан как терминал для прямого доступа к российским биржам через брокерские шлюзы; MetaTrader 5 создан для международных рынков и не имеет встроенного коннектора к Московской бирже. Штатного способа передачи данных между ними не существует, поэтому обмен приходится организовывать вручную через промежуточные протоколы: DDE — технология динамического обмена данными Windows, файловый экспорт (CSV или XML), TCP-мост либо собственную DLL-обёртку. Каждый из этих подходов требует отдельной настройки и понимания того, как работают оба терминала одновременно.

Без правильно настроенной связки советник MetaTrader 5 не получает котировок инструментов MOEX, не видит стакана и не может выставлять заявки. Торговля в таком режиме остаётся либо полностью ручной в QUIK, либо автоматизированной, но только по тем инструментам, которые изначально доступны в MT5 через брокера-провайдера. При этом подход к подбору параметров самого советника напрямую влияет на сохранность депозита — об этом подробнее в статье «Параметры советника: что означают настройки и как их подбирать». А для тех, кто задумывается о соблюдении норм при автоматической торговле на российском рынке, будет полезна статья «ЦБ и торговые роботы: что нужно знать о регулировании автоторговли».

Что нужно подготовить перед подключением

Прежде всего убедитесь, что терминал QUIK установлен, авторизован и содержит активный торговый счёт у брокера с доступом к Московской бирже. Именно из QUIK советник будет получать данные о выбранном инструменте — будь то акция, фьючерс или другой биржевой актив. Убедитесь, что в терминале отображаются котировки нужного инструмента и доступна таблица текущих торгов.

С другой стороны канала связи находится MetaTrader 5 с установленным советником, способным принимать внешние данные. Такой советник должен быть написан или настроен для работы с одним из протоколов обмена: DDE (динамический обмен данными через Windows API), чтение файлового экспорта (CSV, XML) либо TCP-сокет. Выбор протокола зависит от требуемой задержки и доступных средств.

Заранее выясните, как ваш брокер обрабатывает заявки из QUIK: требуются ли отдельные настройки торгового счёта и разрешена ли алгоритмическая торговля на выбранном инструменте. Подготовка обоих терминалов и понимание принципов обмена данными — ключевой этап, от которого зависит стабильность будущей автоматической торговли на Мосбирже.

Как настроить QUIK для передачи данных

Первый и самый прямой способ — встроенный DDE-сервер QUIK. В настройках терминала найдите раздел «DDE-сервер» и включите его, указав порт для подключения. Затем создайте таблицу текущих торгов с инструментами MOEX, которые планируете использовать. После этого любое внешнее приложение, включая советника MT5, сможет запрашивать котировки по протоколу DDE: при обращении по адресу вида QUIK|SERVER!<код_инструмента>.<параметр> сервер возвращает актуальное значение. Преимущество DDE — минимальная задержка, однако оба терминала должны работать на одном компьютере, а Windows-сессия — оставаться активной.

Редактор Lua-скрипта в QUIK с кодом экспорта, из которого выходит CSV-файл с котировками, на фоне размытого окна QUIK с таблицей торгов.

Второй способ — файловый экспорт через скрипт QUIK на языке Lua. Скрипт периодически сохраняет котировки в CSV-файл, а советник MT5 читает этот файл. Ниже приведён схематичный пример — в нём условны код инструмента (GAZP) и имя параметра (LAST); в реальном скрипте их заменяют на нужный тикер MOEX и необходимые поля.

-- Сохранение котировок в CSV для советника MT5
function main()
  local file = io.open("quotes.csv", "w")
  local quote = getParamEx("GAZP", "LAST")
  file:write(os.date("%Y-%m-%d %H:%M:%S") .. "," ..
             quote.param_value .. "\n")
  io.close(file)
end

После настройки любого из каналов обязательно проверьте, что данные действительно доходят до внешнего приложения, — для этого можно запустить простой тестовый парсер до интеграции с советником. Если связь не устанавливается, проверьте настройки брандмауэра для DDE-порта или права доступа к файловому каталогу.

Как настроить советника в MetaTrader 5 для приёма данных

Чтобы советник в MetaTrader 5 мог получать котировки MOEX, в нём необходимо реализовать одну из двух схем. Первая — клиент DDE через WinAPI: советник подключается к DDE-серверу QUIK по протоколу динамического обмена данными и напрямую запрашивает значения нужных параметров для выбранного инструмента. Вторая — модуль чтения файлового экспорта: советник периодически открывает CSV-файл, который формирует скрипт QUIK, и извлекает из него актуальные цены. Второй способ проще в реализации и не требует работы с системными вызовами Windows, поэтому для первой настройки рекомендуется начать с него.

Окно MetaEditor с кодом MQL5 для чтения CSV, зелёная линия данных из CSV-файла в код и оранжевая линия обратно в QUIK, на фоне размытого MT5 с графиком и журналом.

Ниже приведён схематичный пример функции на MQL5 для чтения CSV-файла от QUIK. Условны имя файла (quotes.csv) и формат строки — в реальном советнике их подстраивают под структуру экспорта вашего Lua-скрипта.

// Чтение котировки из CSV-файла QUIK
double ReadQuikQuote(string fileName)
{
  int handle = FileOpen(fileName, FILE_READ|FILE_CSV, ",");
  if(handle == INVALID_HANDLE) return -1;
  string timeStr = FileReadString(handle);
  double price   = FileReadNumber(handle);
  FileClose(handle);
  return price;
}

Для отправки ордеров обратно в QUIK используется тот же канал в обратную сторону: советник записывает сформированную команду в файл или отправляет через DDE, а Lua-скрипт в QUIK периодически проверяет наличие новых инструкций и выставляет заявку на основании полученных данных. Таким образом, оба направления обмена замыкаются на один протокол, что упрощает отладку и сопровождение всей связки терминалов.

Проверка связи и запуск автоматической торговли на Мосбирже

После настройки обоих терминалов первый запуск выполняйте пошагово. Запустите QUIK, убедитесь, что торговый счёт активен, а таблица котировок отображает текущие цены инструментов MOEX. Затем откройте MetaTrader 5 с загруженным советником. Если канал DDE или файловый экспорт настроен верно, первые котировки появятся в журнале советника в течение нескольких секунд.

Когда поток данных подтверждён, выставьте тестовую заявку минимальным объёмом — один лот. Это проверит обратный канал: от советника MT5 через QUIK на биржу. Откройте стакан заявок в QUIK: тестовый ордер должен отобразиться с правильным направлением и ценой.

После успешного теста настройте мониторинг. Советник должен записывать каждую ошибку связи с меткой времени. Реализуйте автоматическое переподключение: при обрыве канала советник делает несколько попыток восстановить соединение с короткой паузой. Полезно также сравнивать последнюю полученную котировку с текущей ценой в QUIK и сигнализировать, если расхождение превышает порог — это предотвращает выставление заявки по устаревшим данным.

// Попытка переподключения при обрыве канала
int attempts = 0;
while (!ChannelIsReady() && attempts < 5) {
    Sleep(1000);
    InitChannel();
    attempts++;
}
if (!ChannelIsReady()) {
    Print("Канал не восстановлен, торговля остановлена");
    ExpertRemove();
}

Материалы по теме

Поделись или сохрани ссылку

Автор статьи

Новые статьи на сайте

Свежие материалы о трейдинге и торговых инструментах.

Все статьи

Комментарии

Добавить комментарий

0

Вы добавили товары в корзину?

Мы хотим вам предложить 3% скидку за сохранение вашей корзины. Прислать вам купон на скидку? Укажите рабочий email для отправки.