Алгоритм пересчета моделей основан на пошаговом проходе по инструментам, выполнении расчетов и обновлении информации в базе данных. Контроль времени выполнения и обработка ошибок также включены в алгоритм для эффективной работы системы.
Порядок действий:#
- Обход инструментов для пересчета. Процедура из
mp_calc_models.phpзапускается поCRON. Инструменты выбираются по факту появления новых баров. Проход идет в порядке приоритета, начиная со старших таймфреймов, поскольку их данные затем нужны младшим таймфреймам для расчета кластеровClst_E. Цикл продолжается, пока не закончатся инструменты или не истечет лимит времениTIME_LIMIT. - Вызов основного диспетчера расчета. Для каждого инструмента вызывается функция
mp_calcModelsизinc_mp_calcModels.php. Она координирует расчет моделей по Алгоритмам I и II. - Расчет по Алгоритму I и Алгоритму II. Сначала из чарта выбирается участок с нахлестом, сейчас это около
1000баров. Затем выполняется расчет по Алгоритму I для записи новых моделей и обновления существующих. После этого запускается аналогичный проход по Алгоритму II, который уже использует результаты первого алгоритма, в частности для определенияIDprevs. - Предзагрузка данных для кластеров. Чтобы ускорить расчет кластеров для конкретного инструмента, заранее подгружаются временные отметки
open_timeпо всем старшим таймфреймам на интересующем участке. Также подгружаются потенциальные «Модели1», чтобы не выполнять повторную загрузку при каждой проверке новой или измененной модели. - Обработка ошибок. Если в процессе возникает ошибка, программа аварийно завершает выполнение, записывает причину и фиксирует трекинг на момент сбоя.
- Постобработка пересчитанных моделей. После успешного расчета каждая модель проверяется на новизну или изменение. Затем в
inc_calc_conrols.phpопределяются цели, достижения уровней, а также параметрыTRADEиNEXT. - Проверка новых или измененных моделей. Если обнаружена новая модель, достигнут уровень
Approachили обновилисьNEXT-параметры, вызывается функцияcheck_new_model. Внутри нее считаются кластеры по целям, выполняется отбор по фильтрамBroadcastдля отправки уведомлений в Telegram, а также формируютсяclusterParamsи сводные кластерные показатели. - Формирование торговых сигналов. После сохранения модели через
saveModel_t, если включен флаг торговли, вызывается функцияcalcSetsизinc_calc_sets.php, где формируются сигналы для торгового бота.