Skip to main content

Documentation

Загрузка котировок при использовании API Metatrader

Загрузка новых котировок происходит немного по-другому чем обновление:

Section Documentation
Updated 31.12.2023

Перед запуском команд нужно перейти в каталог сайта, например:

cd /var/www/marketpawns.com

Загрузка новых котировок отличается от обычного обновления и обычно выполняется в таком порядке:

  1. Добавить инструмент в БД. Пример миграции:
INSERT INTO mp_pairs (pair, title, blocked) VALUES ('XPTUSD', 'XPTUSD', 0);
  1. Запустить updateSpreads, чтобы в БД появилась информация по новой паре:
php api/updateSpreads.php
  1. Запустить initFeeds.php. Перед запуском в начале файла нужно указать новые тикеры, по которым еще нет данных.

Скрипт загружает котировки в два этапа:

  • сначала таймфреймы 5m / 15m / 30m / 1h / 4h с более короткой историей, например с 1 января 2023 года;
  • затем таймфреймы D / W / M с более длинной историей, например с 2016 года. Дату можно изменить в самом скрипте; для других инструментов данные будут подхвачены с момента их реального появления.
php api/initFeeds.php
  1. После инициализации использовать штатный скрипт обновления котировок. Его можно запускать по cron, после перезагрузки сервера или в любом другом постоянном контуре обновления:
php api/updateFeeds.php

Итого: initFeeds используется для нового инструмента, по которому в базе еще нет истории, а updateFeeds — для дальнейшего штатного обновления уже подключенных тикеров.

nohup: failed to run command 'api/updateFeeds.php': Permission denied

Это сообщение означает, что у процесса нет прав на запуск api/updateFeeds.php. На практике стоит проверить три вещи:

  1. есть ли у файла право на выполнение;
  2. есть ли у скрипта доступ к связанным файлам и ресурсам;
  3. достаточно ли прав у пользователя, от имени которого он запускается.

Пример выдачи права на выполнение:

chmod +x api/updateFeeds.php

Если скрипт нужно запускать в фоне, можно использовать nohup с явным перенаправлением вывода:

nohup api/updateFeeds.php > my_output.out 2>&1 &

В этом примере my_output.out — файл для логов, 2>&1 объединяет стандартный вывод и ошибки, а символ & запускает процесс в фоне.

На основе загруженных котировок сервис затем рассчитывает модели и предоставляет данные для работы торговых ботов.

Continue Reading

Related Articles