Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
- Просмотров:
- 17
- Рейтинг:
- Опубликован:
-
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
KCI Embedded Sniper — это алгоритмическое торговое решение, разработанное для высокоточного входа в рынок на разворотах. В отличие от традиционных советников, которые полагаются на внешние индикаторы (что часто приводит к десинхронизации потоков и задержкам), данный советник оснащен полностью встроенным движком Kinetic Compression Index (KCI).
Ознакомьтесь с индикаторами KCI: KCI Standard
Почему «встроенный»? (Преимущество для разработчика)
Большинство советников, использующих пользовательские индикаторы, зависят от вызовов iCustom(), которые выполняются в отдельных потоках ЦП. Если расчет базового индикатора происходит медленно, советник пропускает тик.
-
Производительность: этот советник обрабатывает собственную матрицу KCI, не требуя внешних файлов. Это значительно снижает нагрузку на память и гарантирует, что расчёт сигнала и исполнение сделки происходят в одном и том же цикле процесса.
-
Надежность: поскольку логика KCI жестко запрограммирована внутри советника, вы защищены от распространенных проблем, таких как ошибки «индикатор не найден», проблемы с путями доступа или десинхронизация чтения буфера.
-
Архитектура с нулевой задержкой: использует массивы rates_total и внутренние матричные массивы для выполнения вычислений только по мере необходимости, что делает его одним из самых «легких» советников для управления портфелем из нескольких активов.
Для разработчиков советников: при вызове KCI через iCustom убедитесь, что обработчик OnTick вашего советника учитывает асинхронную загрузку потоков.
// АСИНХРОННАЯ ОБРАБОТКА: Если KCI все еще вычисляется, вернитесь и повторите попытку в следующем тике.
// Индекс буфера 2 = «Покупка», индекс 3 = «Продажа», индекс 6 = «Рассеивание энергии»
if(CopyBuffer(handle_kci, 2, 1, 1, buf_buy) <= 0) return;
if(CopyBuffer(handle_kci, 3, 1, 1, buf_sell) <= 0) return;
if(CopyBuffer(handle_kci, 6, 1, 1, buf_ed) <= 0) return;
// Блокировать время работы панели ТОЛЬКО после того, как данные будут надежно получены
last_bar_time = current_time;
// Для расчёта динамических стоп-лоссов, основанных на волатильности, можно использовать функцию buf_ed (Energy Dispersion).
Использование и настройки
Торговля и управление рисками
-
InpLotSize: фиксированный объем для открытия позиций.
-
InpEDMultiplierSL/TP: это ключевая особенность. Вместо фиксированного количества пунктов советник использует буфер «Энергетической дисперсии» (ED) из ядра KCI для динамического расчета уровней стоп-лосса и тейк-профита. Если рынок волатилен (высокий показатель ED), советник автоматически расширяет уровни стоп-лосса, чтобы избежать ложных сигналов; если рынок спокоен, он сужает их.
Фильтр импульса WPR
-
InpWPRPeriod: период обратного анализа импульса.
-
InpWPRBuyLevel / InpWPRSellLevel: действуют как «страж». Даже если KCI обнаруживает рыночную сингулярность, советник откроет позицию только в том случае, если WPR подтвердит, что цена находится в состоянии крайней перепроданности или перекупленности, что резко повышает вероятность выигрыша.
Ядро расчёта KCI
-
ZScorePeriod / CompressionThreshold / BasePeriod: эти параметры позволяют настроить чувствительность обнаружения сингулярности. Более низкое значение CompressionThreshold делает советник более избирательным, открывая позиции только при самых экстремальных обвалах рынка.
Рекомендуемый план дальнейшего развития
Данная архитектура — лишь отправная точка. Чтобы превратить этот «снайперский» бот в торговую систему институционального уровня, рассмотрите следующие направления развития:
-
Подтверждение на нескольких таймфреймах (MTF): Модифицируйте функцию GetEmbeddedKCISignal таким образом, чтобы сигнал «Singularity» появлялся одновременно на таймфреймах H1 и M15. Это добавит мощный уровень согласования с трендом.
-
Фильтр на основе машинного обучения: Внутренние матрицы KCI (VQ, KD, PV) уже нормализованы. Разработчик может легко экспортировать эти значения в файл CSV для обучения лёгкой нейронной сети (с помощью Python или MQL5 ONNX), чтобы заменить статический порог CompressionThreshold на оценку вероятности, прогнозируемую искусственным интеллектом.
-
Адаптивное масштабирование волатильности: вместо фиксированного значения InpLotSize интегрируйте калькулятор риска на основе капитала, который корректирует размер позиции в зависимости от current_ed (дисперсия энергии). Это превращает советника в профессиональный инструмент с управлением рисками, который автоматически снижает подверженность риску на рынках с высокой дисперсией (хаотичных рынках).
-
Интеграция потока ордеров: сопоставьте сигнал «Singularity» с анализом дивергенции тикового объема в режиме реального времени. Если сигнал «Singularity» обнаруживается на фоне снижения объема, вероятность разворота растет экспоненциально.
Детали технической реализации
Разработчикам, заинтересованным в изучении кода, следует обратить внимание на следующие две ключевые функции:
-
GetEmbeddedKCISignal() : это сердце движка. Она вручную вычисляет кинематические матрицы ( vq , kd , ed , pv ), а затем проходит по матрице Z-Score, чтобы обнаружить формирование долины «V».
-
Совет разработчику: если вы хотите настроить логику «Снайпера», измените здесь булевы переменные is_local_min и is_energy_drop.
-
-
OnTick() : Оптимизирована с помощью функции IsNewBar(). Это гарантирует, что советник выполняет ресурсоемкие вычисления только один раз при закрытии каждой свечи, что обеспечивает подтверждение сигнала, его фиксацию и отсутствие перерисовки.
Начало работы
Просто скомпилируйте файл KCI_WPR_Embedded_Sniper.mq5. Никаких зависимостей не требуется — вам не нужно компилировать какие-либо отдельные файлы индикаторов. Это полноценная, автономная система. Прикрепите её к выбранной вами валютной паре, и «Снайпер» немедленно начнёт сканировать рынок в поисках точек исчерпания.
Перевод с английского произведен MetaQuotes Ltd.
Оригинальная публикация: https://www.mql5.com/en/code/74582
Multi-Timeframe Candle Map
Обучающая панель MT5, которая отображает текущие цены по вертикали внутри четырёх формирующихся свечей и обобщает данные о расположении, рассеивании, направлении свечей и оставшемся времени.
Consecutive Bars (with history)
Осциллятор, отображающий 4 линии индикатора: 1 — для последовательных бычьих баров, 1 — для последовательных медвежьих баров, 1 — для среднего значения последовательных бычьих баров и 1 — для среднего значения последовательных медвежьих баров.
KCI Standard: A Pure Kinematic Computing Engine for Market Singularity Detection
Индекс кинетического сжатия (KCI) — это пользовательский осциллятор, предназначенный для выявления признаков исчерпания рынка и локальных событий сжатия. Благодаря внутреннему расчету кинематических показателей, а не использованию внешних стандартных параметров индикаторов, KCI снижает нагрузку и упрощает управление буферами при интеграции в советники (EA). В данной статье подробно описаны математические основы, архитектура системы, сопоставление буферов и практические рекомендации по интеграции для разработчиков, желающих внедрить этот инструмент в MetaTrader 5.
YURAZ_MCCH
Индикатор рассчитывает % роста или падения относительно CLOSE, написан с применением ООП, и легко интегрируется в любой советник или иной индикатор.

