Перед запуском команд нужно перейти в каталог сайта, например:
cd /var/www/marketpawns.com
Загрузка новых котировок отличается от обычного обновления и обычно выполняется в таком порядке:
- Добавить инструмент в БД. Пример миграции:
INSERT INTO mp_pairs (pair, title, blocked) VALUES ('XPTUSD', 'XPTUSD', 0);
- Запустить
updateSpreads, чтобы в БД появилась информация по новой паре:
php api/updateSpreads.php
- Запустить
initFeeds.php. Перед запуском в начале файла нужно указать новые тикеры, по которым еще нет данных.
Скрипт загружает котировки в два этапа:
- сначала таймфреймы
5m / 15m / 30m / 1h / 4hс более короткой историей, например с1 января 2023 года; - затем таймфреймы
D / W / Mс более длинной историей, например с2016 года. Дату можно изменить в самом скрипте; для других инструментов данные будут подхвачены с момента их реального появления.
php api/initFeeds.php
- После инициализации использовать штатный скрипт обновления котировок. Его можно запускать по cron, после перезагрузки сервера или в любом другом постоянном контуре обновления:
php api/updateFeeds.php
Итого: initFeeds используется для нового инструмента, по которому в базе еще нет истории, а updateFeeds — для дальнейшего штатного обновления уже подключенных тикеров.
nohup: failed to run command 'api/updateFeeds.php': Permission denied
Это сообщение означает, что у процесса нет прав на запуск api/updateFeeds.php. На практике стоит проверить три вещи:
- есть ли у файла право на выполнение;
- есть ли у скрипта доступ к связанным файлам и ресурсам;
- достаточно ли прав у пользователя, от имени которого он запускается.
Пример выдачи права на выполнение:
chmod +x api/updateFeeds.php
Если скрипт нужно запускать в фоне, можно использовать nohup с явным перенаправлением вывода:
nohup api/updateFeeds.php > my_output.out 2>&1 &
В этом примере my_output.out — файл для логов, 2>&1 объединяет стандартный вывод и ошибки, а символ & запускает процесс в фоне.
На основе загруженных котировок сервис затем рассчитывает модели и предоставляет данные для работы торговых ботов.