Обсуждение статьи "Возможности Мастера MQL5, которые вам нужно знать (Часть 94): Использование выборки из резервуара и линейной регрессии в пользовательском классе трейлинг-стопа"

 

Опубликована статья Возможности Мастера MQL5, которые вам нужно знать (Часть 94): Использование выборки из резервуара и линейной регрессии в пользовательском классе трейлинг-стопа:

В этой статье мы переходим к пользовательской реализации класса для Мастера MQL5, посвященной трейлинг-стопам. Пользовательский класс CTrailingReservoirLinReg создается путем объединения алгоритма выборки из резервуара и сети линейной регрессии. Как и в других статьях серии, это решение можно тестировать с советниками, собранными Мастером MQL5 и настраиваемыми с различными сигналами входа и классами управления капиталом.

Чтобы показать, почему эта комбинация моделей эффективна в условиях непрерывного тренда, необходимо рассмотреть ее два основных компонента. Наша реализация трейлинг-стопа работает в двух режимах: "механизм" – алгоритм выборки из резервуара, формирующий вероятностно стабилизированную базовую цену; и "фильтр" – сеть линейной регрессии, определяющая, безопасно ли обновлять стоп-лосс.

Выборка из резервуара

В большинстве алгоритмических торговых систем, высокочастотных или нет, хранение каждого ценового бара для расчета скользящей средней может быть вычислительно затратным. По мере увеличения размера буфера нагрузка на ресурсы может стать серьезным ограничением в контексте обработки данных. Если с помощью списка с пропусками сопоставлялись разрывные ценовые гэпы путем пропуска данных, то выборка из резервуара решает другую задачу. Как при минимальном потреблении памяти поддерживать статистически репрезентативное и корректное представление цен из непрерывного потока данных неизвестного размера? С помощью алгоритма выборки из резервуара. Мы определяем, должна ли поступающая цена заменить существующий элемент в буфере, то есть резервуаре, при фиксированном использовании памяти. При реализации выполняются следующие шаги:

  • задается фиксированный размер массива резервуара k;
  • первые k цен торговой сессии копируются в этот массив;
  • после этого для каждой новой цены с индексом i, где i > k, генерируется случайное целое число j от 1 до i;
  • если j меньше или равно k, новая цена заменяет в резервуаре цену с индексом j.


Автор: Stephen Njuki