English Deutsch 日本語
preview
Разработка торговой стратегии на основе псевдокорреляции Пирсона

Разработка торговой стратегии на основе псевдокорреляции Пирсона

MetaTrader 5Трейдинг |
72 6
Daniel Opoku
Daniel Opoku

Введение

Создание новых индикаторов на основе существующих - это мощный способ улучшить торговый анализ. Определив математическую функцию, которая интегрирует значения существующих индикаторов, трейдеры могут создавать гибридные индикаторы, объединяющие множество сигналов в единый эффективный инструмент. Этот метод уменьшает беспорядок на графиках, упрощает интерпретацию и использует индивидуальные преимущества каждого компонента индикатора для улучшения процесса принятия решений.

Подход к техническому анализу предполагает одновременный мониторинг нескольких индикаторов, каждый из которых подает уникальный сигнал. Однако это может привести к загромождению графика, увеличению трудностей в интерпретации, а иногда и к противоречивым сигналам. Предлагаемое здесь решение заключается в математическом объединении сигналов выбранных индикаторов в единый новый осциллятор.

В данной статье представлен новый индикатор, созданный на основе трех осцилляторов с использованием модифицированной версии функции корреляции Пирсона, который мы называем Псевдокорреляцией Пирсона (PPC). Индикатор PPC предназначен для количественной оценки динамической согласованности/корреляционной связи между осцилляторами и применения ее в рамках практической торговой стратегии.


Обзор концепции

Коэффициент корреляции Пирсона (r) — это хорошо известное статистическое измерение, которое количественно определяет силу и направление линейной зависимости между двумя переменными, X и Y. Он определяется следующим образом:

Pearson eqn

  • x_i и y_представляют собой отдельные точки выборки,
  • x_bar и y_bar обозначают средние значения x и y соответственно.

Коэффициент корреляции r находится в диапазоне от –1 до +1, где:

  • r = +1 подразумевает идеальную положительную линейную корреляцию.
  • r= -1 отображает идеальную отрицательную линейную корреляцию.
  • r= 0 не предполагает линейной корреляции.

Эта формула, по сути, измеряет расстояние каждой точки данных от ее среднего значения, стандартизированное квадратным корнем из суммы квадратов расстояний.


Модифицированная функция: Псевдокорреляция Пирсона (PPC)

В предлагаемом методе мы модифицируем исходную формулу корреляции Пирсона, заменяя в формуле средние значения x и y третьей переменной z. Таким образом, вместо измерения отклонений от среднего значения, связь между x и y измеряется относительно z.

Соответственно, модифицированная формула Псевдокорреляции Пирсона (r′) выражается как:

PpcEqn

Здесь z — это другая переменная (а не среднее значение x и y), что делает корреляцию «псевдокорреляцией».

Хотя структура формулы напоминает исходный коэффициент корреляции Пирсона, она измеряет взаимодействие трех переменных, а не взаимосвязь двух переменных. В результате значение 𝑟′ остается в пределах диапазона от –1 до +1, что интерпретируется как:

значения r' Интерпретация
1 Идеальная положительная корреляция 
0.7 - 0.9 Сильная положительная корреляция
0.4 - 0.6 Умеренная положительная корреляция
0.1 - 0.3 Слабая положительная корреляция
0 Корреляция отсутствует
от -0.1 до -0.3 Слабая отрицательная корреляция
от -0.4 до -0.6 Умеренная отрицательная корреляция
от -0.7 до -0.9 Сильная отрицательная корреляция
 -1 Идеальная отрицательная корреляция 

Положительное значение r' означает, что x и y направлены в одном направлении относительно z, тогда как отрицательное значение указывает на то, что x и y направлены в противоположных направлениях относительно z.


Применение: Осциллятор Псевдокорреляция Пирсона и его торговая стратегия

В этом разделе PPC применяется для создания нового осциллятора и формулирования соответствующей торговой стратегии. 

  • Осциллятор Псевдокорреляция Пирсона

Данный подход сочетает в себе три хорошо известных технических индикатора — Индекс относительной силы (RSI), Индекс денежного потока (MFI) и индикатор DeMarker (DEM) — в качестве входных переменных для формулы PPC. Каждый из этих осцилляторов имеет нормализованный диапазон от 0 до 1, что делает их идеальными для сравнительного корреляционного анализа.

RSI измеряет скорость и величину недавних изменений цен, чтобы оценить, находится ли актив в состоянии перекупленности или перепроданности. Это чистый индикатор ценового импульса. Он сравнивает средний прирост цен закрытия со средними потерями за определенный ретроспективный период.

Индекс MFI часто называют "взвешенным по объему RSI". Он учитывает как данные о цене, так и об объеме. Вместо того чтобы просто использовать цены закрытия, такие как RSI, MFI использует типичную цену (среднее значение максимума, минимума и закрытия) и умножает ее на объем, чтобы создать денежный поток. Это измеряет давление покупателей и продавцов. 

Индикатор DEM фокусируется конкретно на сравнении текущей цены с ценой предыдущего периода для измерения давления покупателей и продавцов. Он рассчитывает уровень максимума (или минимума) текущего периода относительно максимума (или минимума) предыдущего периода. Его цель — определить, когда покупатели не могут поднять цену до нового максимума (потенциальное истощение) или когда продавцы не могут опускать цену до нового минимума. 

Интегрируя их результаты в функцию PPC, мы можем количественно оценить, насколько близко два индикатора (DEM и MFI) двигаются относительно третьего (RSI), который служит базовой линией. 

Заменяя переменные PPC x,y,z значениями DEM, MFI и RSI соответственно, формула приобретает такой вид:

drmf

Это уравнение определяет осциллятор Псевдокорреляция Пирсона, который фиксирует динамическую взаимосвязь между DEM и MFI в связи с базовой линией RSI.

Осциллятор PPC можно интерпретировать следующим образом:

  • +1 → DEM и MFI движутся вместе относительно RSI (сильная положительная корреляция).
  • -1 → DEM и MFI движутся в противоположных направлениях относительно RSI (сильная отрицательная корреляция).
  • ≈ 0 → Слабая линейная зависимость или ее отсутствие между DEM и MFI относительно RSI.

Этот основанный на корреляции осциллятор представляет собой компактный, но мощный аналитический инструмент. Он объединяет поведенческие тенденции трех осцилляторов в один, упрощая анализ графика и помогая определить зоны слияния, где ценовой импульс и сила рынка совпадают или расходятся.

    Структура кода индикатора PPC:

      В этом разделе мы рассмотрим структуру кода индикатора PPC и каким образом его можно использовать в нашем торговом методе. 

      #property indicator_maximum 1
      #property indicator_minimum -1
      
      #property indicator_level1 -0.80
      #property indicator_level2 -0.50
      #property indicator_level3  0.00
      #property indicator_level4  0.50
      #property indicator_level5  0.80

      Определим свойства индикатора, устанавливая его максимальное значение равным 1, а минимальное -1. Уровни индикаторных линий установлены на значениях ±0,8 и ±0,5.

      //---- Inputs
      input int                 CorrPeriod      = 21;   
      input int                 RSIPeriod       = 14;
      input int                 MFIPeriod       = 14;
      input int                 DeMPeriod       = 14;
      

      Данный код позволяет пользователям настраивать периоды RSI, MFI и DeMarker, а также количество значений индикаторов, используемых для расчета корреляции, обозначаемое как CorrPeriod.

         IndicatorSetString(INDICATOR_SHORTNAME,
            StringFormat("PPr[ Corr=%d  RSI=%d  MFI=%d  DeM=%d ]",
                         CorrPeriod, RSIPeriod, MFIPeriod, DeMPeriod));
         
         // Create indicator handles
         rsi_handle = iRSI(_Symbol, _Period, RSIPeriod, PRICE_CLOSE);
         mfi_handle = iMFI(_Symbol, _Period, MFIPeriod,VOLUME_TICK);
         dem_handle = iDeMarker(_Symbol, _Period, DeMPeriod);
         
         if(rsi_handle == INVALID_HANDLE || mfi_handle == INVALID_HANDLE || dem_handle == INVALID_HANDLE)
         {
            Print("Error creating indicator handles");
            return(INIT_FAILED);
         }

      Во время инициализации задается краткое название индикатора и создаются хэндлы для индикаторов RSI, MFI и DeMarker (DEM). Кроме того, код проверяет, что каждый хэндл успешно создан, и проверяет наличие любых ошибок в процессе.

      void OnDeinit(const int reason)
      {
         if(rsi_handle != INVALID_HANDLE) IndicatorRelease(rsi_handle);
         if(mfi_handle != INVALID_HANDLE) IndicatorRelease(mfi_handle);
         if(dem_handle != INVALID_HANDLE) IndicatorRelease(dem_handle);
      }

      Во время деинициализации мы освобождаем все хэндлы индикаторов, чтобы освободить системные ресурсы и обеспечить надлежащее управление памятью.

         for(int i = pStart; i<rates_total; i++)
         {
            double sum_xy = 0.0;
            double sum_x2 = 0.0;
            double sum_y2 = 0.0;
      
            for(int j = 0; j < CorrPeriod; j++)
            {
               int sh = i - j;
      
               // Get RSI value
               double rsi = rsi_buffer[sh];
      
               // Get MFI value
               double mfi = mfi_buffer[sh];
      
               // Get DeMarker value
               double dem = dem_buffer[sh];
      
               // Deviations relative to RSI
               double dx = (dem - rsi);
               double dy = (mfi - rsi);
      
               sum_xy += dx * dy;
               sum_x2 += dx * dx;
               sum_y2 += dy * dy;
            }
      
            double denom = MathSqrt(sum_x2 * sum_y2);
            if(denom > 0.0)
               CorrBuffer[i] = sum_xy / denom;   //Pseudo Pearson r in [-1, +1]
            else
               CorrBuffer[i] = EMPTY_VALUE;
         }

      В этом разделе кода вычисляется значение PPC с использованием входных индикаторов DEM, MFI и RSI. Вычисленные значения корреляции затем сохраняются в corrBuffer для отображения на графике. Код обрабатывает случаи, когда знаменатель PPC равен нулю, присваивая пустое значение, предотвращая ошибки деления и обеспечивая стабильную работу индикатора.

        Демонстрация осциллятора PPC:

          После размещения версии осциллятора PPC для MetaTrader 5 в вашей папке индикаторов и успешной ее компиляции, можно просто выбрать ее из списка пользовательских индикаторов и прикрепить к своему графику. Следующий GIF-файл иллюстрирует его функциональность и поведение в режиме реального времени.

          dem1

          Рисунок 1: Демо 1 Псевдокорреляции Пирсона

          ppcdm2

          Рисунок 2: Демо 2 Псевдокорреляции Пирсона

          Обратите внимание, что, подобно индикатору Средний истинный диапазон (ATR), индикатор PPC не указывает направление торговли, как это делают отдельные осцилляторы, такие как RSI, MFI и DeMarker (DEM). Вместо этого он измеряет согласованность/корреляционную связь между этими осцилляторами, показывая, движутся ли они согласованно (положительная корреляция) или, напротив, расходятся (отрицательная корреляция).

            Разработка стратегии и тестирование схемы: 

              После разработки PPC Oscillator следующим шагом будет разработка простой торговой стратегии для тестирования этой схемы в реальных рыночных условиях. В этой стратегии осциллятор PPC сочетается с индикатором скользящей средней (MA) для создания дополнительной торговой схемы. 

              Скользящая средняя служит фильтром направления тренда, помогая трейдерам определить, движется ли рынок в целом вверх или вниз. Основная логика заключается в том, что сигнал на покупку генерируется только тогда, когда краткосрочная скользящая средняя находится выше долгосрочной, указывая на зарождающийся бычий тренд, и наоборот, для сигналов на продажу.

              С другой стороны, осциллятор PPC действует как генератор сигналов для входа в рамках этого тренда. Эти две стратегии разработаны таким образом, чтобы извлечь выгоду из различных состояний рынка, полученных на основе показателя PPC.

              Стратегия 1: Стратегия "Коррелированного импульса"

              Эта стратегия направлена на открытие сделки, когда индикаторы импульса (RSI, MFI, DeM) демонстрируют внезапное и сильное выравнивание, что указывает на начало единого импульсного движения в направлении преобладающего тренда.
              • Сигнал на покупку: срабатывает, когда значение PPC пересекает в восходящем направлении через порог +0,5, указывая на переход в состояние сильно положительно коррелированного импульса, и это происходит в рамках бычьего тренда МА.
              • Сигнал на продажу: срабатывает, когда значение PPC пересекает в восходящем направлении через порог +0,5, но это происходит во время медвежьего тренда МА. Это указывает на сильное скоординированное импульсное движение вниз.

              Стратегия 2: "Некоррелированная" стратегия

              Эта стратегия основана на противоположной предпосылке. Она стремится войти в сделку, когда базовые индикаторы импульса (DEM и MFI) расходятся относительно RSI, что приводит к серьезному нарушению их взаимосвязи (сильная отрицательная корреляция), что потенциально сигнализирует о достижении точки исчерпания и надвигающемся развороте в направлении краткосрочного тренда.

              • Сигнал на покупку: срабатывает, когда значение PPC пересекает в нисходящем направлении через порог -0,5, указывая на погружение в сильную отрицательную корреляцию, в то время как краткосрочный тренд остается бычьим. Логика заключается в том, что эта экстремальная дивергенция может разрешиться резким движением цены вверх.
              • Сигнал на продажу: срабатывает, когда значение PPC пересекает в нисходящем направлении через порог -0,5, во время медвежьего краткосрочного тренда, ожидая дальнейшего снижения цены из-за экстремальной дивергенции PPC.
              На рисунке 3 представлена простая схема торговой стратегии как для Стратегии 1, так и для Стратегии 2. График дает четкое визуальное представление о том, как структурирована торговая логика в коде, иллюстрируя процесс принятия решений между осциллятором PPC и индикаторами скользящей средней. Эта схема помогает понять, как генерируются сигналы на вход на основе условий корреляции (положительных или отрицательных) и как они фильтруются по направлению тренда для принятия решений о покупке или продаже.

              pseudoCode

              Рисунок 3: Схема торговой стратегии

              Тестируя как коррелированные, так и некоррелированные условия, трейдеры могут проанализировать, как осциллятор PPC ведет себя на различных фазах рынка, и определить, какие сетапы лучше соответствуют их стилю торговли и толерантности к риску.

              Структура кода советника

              На этом этапе мы переходим к изучению структуры кода советника (EA), использующего индикатор PPC. В этом разделе объясняется, как советник интегрирует осциллятор PPC с фильтром скользящей средней для автоматизации описанных ранее торговых стратегий. В нем описывается логический процесс, ключевые функции и компоненты принятия решений, позволяющие советнику интерпретировать сигналы индикаторов, генерировать точки входа и управлять позициями на основе определенных стратегий корреляции.

              //--- Input parameters
              input double Lots = 0.01;
              input double StopLoss = 300;
              input double TakeProfit = 700;
              input int Slippage = 3;
              
              input int CorrPeriod = 21;
              input int RSIPeriod = 14;
              input int MFIPeriod = 14;
              input int DeMPeriod = 14;
              input double PPr = 0.5;    // PseudoCorrelatedValue (0.1 to 1)
              
              input int FastMAPeriod = 2;
              input int SlowMAPeriod = 20;

              Начнем с определения входных параметров советника (EA), которые позволяют трейдерам управлять и корректировать поведение советника извне через панель настроек. Эти параметры обеспечивают гибкость в управлении торговлей и конфигурации индикаторов.

              К основным торговым параметрам относятся:

              • Lots – указывает размер позиции для каждой сделки.
              • StopLoss и TakeProfit – определяют точки выхода в пунктах, устанавливая максимально допустимый убыток и желаемый целевой показатель прибыли.
              • Slippage (слиппэдж) – определяет допустимое отклонение от запрашиваемой цены для обеспечения более плавного исполнения ордера даже в условиях нестабильной рыночной конъюнктуры.

              В дополнение к этим параметрам управления торговлей, советник также включает в себя входные параметры для настройки индикатора:

              • CorrPeriod, RSIPeriod, MFIPeriod и DeMPeriod – позволяют пользователю устанавливать и корректировать параметры осциллятора PPC и его базовых индикаторов (RSI, MFI и DeMarker).
              • Параметр PPr - представляет собой пороговое значение корреляции, которое определяет, когда срабатывает сигнал входа. Он определяет уровень чувствительности осциллятора PPC, используемого для входа в сделку. Когда значение PPr устанавливается в диапазоне от 0 до 1, советник автоматически вычисляет его отрицательное значение (–PPr) для представления противоположного порога корреляции.
              • Параметры FastMAPeriod и SlowMAPeriod определяют периоды для индикаторов скользящая средняя (MA), используемых для определения общего направления тренда. FastMA быстро реагирует на последние изменения цен, фиксируя краткосрочные колебания, в то время как SlowMA сглаживает колебания цен для выявления более широкой рыночной тенденции.
              //--- Strategy Selection
              input bool EnableStrategy1 = true;   // Enable Strategy 1 Correlated
              input bool EnableStrategy2 = false;  // Enable Strategy 2 NotCorrelated

              Этот параметр позволяет пользователю выбрать, какой торговой стратегии (Стратегии 1 или Стратегии 2) должен следовать советник. Советник предназначен для открытия только одной сделки за раз, гарантируя, что сделки не будут пересекаться или конфликтовать.

              Если для обеих стратегий одновременно установлено значение true, советник автоматически определяет приоритеты и выполняет первую стратегию, условия которой выполняются в режиме реального времени. Эта логическая мера предосторожности обеспечивает последовательное и бесконфликтное открытие сделок при сохранении намеченной структуры стратегии. 

                 //--- Create indicator handles
                 indicatorHandle = iCustom(Symbol(), Period(), IndicatorName, 
                                          CorrPeriod, RSIPeriod, MFIPeriod, DeMPeriod);
                 fastMaHandle = iMA(Symbol(), Period(), FastMAPeriod, 0, MODE_EMA, PRICE_CLOSE);
                 slowMaHandle = iMA(Symbol(), Period(), SlowMAPeriod, 0, MODE_EMA, PRICE_CLOSE);
              

              На этапе инициализации советника вызывается функция iCustom, которая извлекает выходные значения индикатора PPC и сохраняет их в indicatorHandle. Этот хэндл позволяет советнику получать доступ к данным корреляции в реальном времени от осциллятора PPC на протяжении всей его работы.

              Аналогичным образом функция iMA используется для получения значений быстрой скользящей средней (FastMA) и медленной скользящей средней (SlowMA). Они хранятся в соответствующих хэндлах — fastMAHandle и slowMAHandle — что позволяет советнику непрерывно отслеживать рыночные тенденции. Вместе эти хэндлы образуют основные каналы связи данных, на которые опирается советник для эффективного генерирования, оценки и исполнения торговых сигналов.

              void OnDeinit(const int reason)
              {
                 if(indicatorHandle != INVALID_HANDLE) IndicatorRelease(indicatorHandle);
                 if(fastMaHandle != INVALID_HANDLE) IndicatorRelease(fastMaHandle);
                 if(slowMaHandle != INVALID_HANDLE) IndicatorRelease(slowMaHandle);
              }

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

              //+------------------------------------------------------------------+
              //| Check for new bar                                                |
              //+------------------------------------------------------------------+
              bool IsNewBar()
              {
                 datetime currentBar = iTime(Symbol(), Period(), 0);
                 
                 if(currentBar == lastBar) 
                    return false;
                 
                 lastBar = currentBar;
                 return true;
              }

              Функция IsNewBar гарантирует, что советник выполняет свою логику только один раз для каждого нового бара или свечи. Это предотвращает многократное выполнение вычислений советником или открытие нескольких сделок в рамках одного и того же бара, тем самым повышая эффективность и уменьшая избыточную обработку.

                 //--- STRATEGY 1 (Correlated) ---
                 if(EnableStrategy1 && corr_prev < PPr && corr_curr > PPr)
                 {
                    if(maFast[0] > maSlow[0])
                       OpenTrade(ORDER_TYPE_BUY, "Strategy1 BUY");
                    else if(maFast[0] < maSlow[0])
                       OpenTrade(ORDER_TYPE_SELL, "Strategy1 SELL");
                 }
              
                 //--- STRATEGY 2 (Not Correlated) ---
                 if(EnableStrategy2 && corr_prev > -PPr && corr_curr < -PPr)
                 {
                    if(maFast[0] > maSlow[0])
                       OpenTrade(ORDER_TYPE_BUY, "Strategy2 BUY");
                    else if(maFast[0] < maSlow[0])
                       OpenTrade(ORDER_TYPE_SELL, "Strategy2 SELL");
                 }

              В этом разделе кода определены условия входа как для Стратегии 1, так и для Стратегии 2, как было описано ранее. В нем оцениваются значения корреляции индикатора PPC вместе с направлением тренда скользящей средней, чтобы определить, следует ли подавать сигнал на покупку или продажу.

              Затем вызывается функция OpenTrade для открытия сделки. Она принимает два ключевых параметра — тип ордера (на покупку или продажу) и комментарий, который помогает определить происхождение сделки или стратегию ее исполнения. Такой структурированный подход гарантирует, что каждая сделка открывается на четко определенных условиях, что повышает прозрачность и отслеживаемость работы советника.

              Демонстрация советника

              В этом разделе мы демонстрируем, как работает советник на основе описанной выше торговой логики. Советник использует определенные условия корреляции и тренда для определения потенциальных сетапов сделки и автоматического их выполнения.

              На рисунке 4 показаны различные параметры, которые пользователи могут настраивать и оптимизировать для улучшения общего результата работы советника. К ним относятся торговые входные параметры, такие как размер лота, стоп-лосс, тейк-профит и слиппэдж, а также параметры индикатора, такие как CorrPeriod, RSIPeriod, MFIPeriod, DeMPeriod, PPr и периоды скользящей средней. Точно задав эти настройки, трейдеры могут адаптировать советник к различным рыночным условиям, повысить точность и добиться лучших результатов по соотношению риска и прибыли.

              rInputs

              Рисунок 4: Входные параметры советника PPC

              На рисунке 5 показан процесс, с помощью которого советник исполняет торговые ордера в режиме реального времени. В этом примере стратегия 1 используется для демонстрации того, как советник автоматически открывает и закрывает позиции на основе предопределенных торговых условий.

              Как только корреляция PPC и тренд скользящей средней совпадают, генерируя действительный сигнал на вход, советник открывает ордер на покупку или продажу соответственно. Каждая сделка защищена уровнями стоп-лосса и тейк-профита, которые определены во входных параметрах советника. Тейк-профит обеспечивает прибыль при благоприятном движении рынка, в то время как стоп-лосс ограничивает потенциальные убытки, если рынок движется против позиции.

              Эта иллюстрация помогает наглядно представить автоматизированный процесс принятия решений советником - как он обнаруживает возможности, открывает сделки и управляет рисками без ручного вмешательства.

              PPCorr_EA

              Рисунок 5: Исполнение сделки советником PPC


              Заключение

              В этой статье мы продемонстрировали, что можно усовершенствовать существующие индикаторы для создания нового и мощного аналитического инструмента, используя определенную математическую функцию. Предлагаемая функция, называемая Псевдокорреляция Пирсона, использует три входные параметры/переменные — RSI, MFI и DeMarker (DEM) - для генерации одного выходного значения переменной, измеряющей степень корреляции между ними. Подобно традиционной Корреляции Пирсона, значение PPC колеблется от -1 до +1, отражая силу и направление согласованности/корреляционной связи между выбранными осцилляторами. Индикатор визуально отображает эти значения корреляции на графике, позволяя трейдерам легко отслеживать периоды сильной и слабой корреляции в динамике рынка.

              Индикатор PPC был далее интегрирован в советник для автоматизации принятия торговых решений. Объединив его с фильтром скользящей средней, мы разработали и протестировали две торговые стратегии — одну, основанную на положительной корреляции (Стратегия 1), а другую - на отрицательной корреляции (Стратегия 2). Обе стратегии успешно открывали сделки в соответствии со своей определенной логикой, демонстрируя потенциал PPC в качестве эффективного сигнала для входа в сочетании с индикатором следования за трендом.

              В целом, результаты показывают, что подход с Псевдокорреляцией Пирсона обеспечивает новый способ количественной оценки согласованности/корреляционной связи между осцилляторами, предлагая трейдерам дополнительный уровень информации о поведении рынка. При дальнейшей оптимизации и бэктестинге индикатор PPC может стать ценным компонентом при разработке более адаптивных торговых систем, основанных на данных.

              В следующей главе этого исследования мы протестируем стратегию на различных финансовых инструментах и валютных парах, чтобы оценить сильные и слабые стороны советника, использующего индикатор PPC. Оставайтесь с нами, чтобы получить больше полезной информации и узнать больше о результатах этих предстоящих экспериментов.


              Файл Описание
              PseudoPC.mq5 Этот файл содержит индикатор Псевдокорреляция Пирсона (PseudoPC), предназначенный для измерения направленных взаимосвязей в ценовых данных.
              PPCorr_EA.mq5 Этот файл содержит советник,
              построенный на основе индикатора PseudoPC, который позволяет автоматически открывать сделки на основе сигналов индикатора и лежащей в его основе логики.


              Перевод с английского произведен MetaQuotes Ltd.
              Оригинальная статья: https://www.mql5.com/en/articles/20065

              Прикрепленные файлы |
              PseudoPC.mq5 (4.52 KB)
              PPCorr_EA.mq5 (5.24 KB)
              Последние комментарии | Перейти к обсуждению на форуме трейдеров (6)
              Maxim Kuznetsov
              Maxim Kuznetsov | 29 апр. 2026 в 15:00

              кто тут теперь проверяет статьи ? 

              что это за изобретение новых терминов с притяжкой к известным ? подобное обесценивает ресурс mql5

              ну вот нету в трейдинге или статистике "псевдокорреляции Пирсона" и её критериев. НЕТУ

              Renat Akhtyamov
              Renat Akhtyamov | 29 апр. 2026 в 15:07
              Stanislav Korotky #:

              Было бы здорово увидеть отчеты с реальными показателями работы тестового советника в сравнении с теми же стратегиями без использования фильтра корреляции - так можно оценить эффективность нового индикатора.

              Большинство осцилляторов одного периода по определению сильно коррелированы, и использование их корреляции не представляет особого интереса. Анализ нескольких разных периодов имеет смысл, но, вероятно, каждый трейдер будет делать это с предпочтительным для него осциллятором, то есть с одним и тем же видом осциллятора, настройка которого не рассматривается в статье (то есть вы не можете выбрать 3 RSI или 3 MFis, например).

              в статье на видео видно как уменьшается баланс
              Rashid Umarov
              Rashid Umarov | 29 апр. 2026 в 16:15
              Maxim Kuznetsov #:

              кто тут теперь проверяет статьи ? 

              что это за изобретение новых терминов с притяжкой к известным ? подобное обесценивает ресурс mql5

              ну вот нету в трейдинге или статистике "псевдокорреляции Пирсона" и её критериев. НЕТУ

              Вы правы, строгого термина "псевдокорреляция Пирсона" нет. Здесь имеется в виду известное явление spurious correlation — когда коэффициент Пирсона показывает связь, не имеющую причинного смысла (например, из-за тренда или скрытой переменной.

              Grigori.S.B
              Grigori.S.B | 29 апр. 2026 в 18:19
              Как такое возможно что первый комментарий в ветке обсуждения статьи датирован на полгода раньше публикации самой статьи? )))
              Stanislav Korotky
              Stanislav Korotky | 29 апр. 2026 в 19:07
              Grigori.S.B #:
              Как такое возможно что первый комментарий в ветке обсуждения статьи датирован на полгода раньше публикации самой статьи? )))
              Патаму чта я его писал в английской теме во время публикации оригинала. После включения на сайте автоматического перевода форумов на другие языки - такая ситуация возникает регулярно - вы видите в обсуждении автопереведенные посты из-под оригинала.
              Особенности написания Пользовательских Индикаторов Особенности написания Пользовательских Индикаторов
              Написание пользовательских индикаторов в торговой системе MetaTrader 4
              Нейросети в трейдинге: Оценка риска по несогласованности представлений (ReGEN-TAD) Нейросети в трейдинге: Оценка риска по несогласованности представлений (ReGEN-TAD)
              Статья раскрывает фреймворк ReGEN-TAD для оценки рыночного риска через несогласованность представлений, объединяющий генеративную проверку (реконструкция и прогноз) и ансамблевый Anomaly Score с факторной интерпретацией. Показана логика согласования параллельных представлений и их расхождений. На практике реализован первый шаг в MQL5 — свёрточный токенизатор, формирующий компактный эмбеддинг окна рынка для последующей диагностики режимов.
              Особенности написания экспертов Особенности написания экспертов
              Написание и тестирование экспертов в торговой системе MetaTrader 4.
              От CPU к GPU в MQL5: практическая схема OpenCL для ускорения исследований, оптимизаций и паттернов От CPU к GPU в MQL5: практическая схема OpenCL для ускорения исследований, оптимизаций и паттернов
              Узнайте, как выстроить практическую схему перехода от CPU к GPU в MQL5 с использованием OpenCL. Подробно рассматриваются инициализация контекста, организация буферов, крупные батчи, запуск kernel и минимизация обменов данными. Приведены типовые ошибки и способы их устранения. Пример со свечными паттернами иллюстрирует практическую пользу подхода.