Блог им. proalexey

Новая СуперСкользяшка (PMA). Такой еще не было.

Скользящая средняя, построенная на основе линии линейной регрессии.

 

      Хочу сделать презентацию своей идеи, которая переросла в индикатор скользящей средней, построенной на основе линии линейной регрессии (ЛЛР). Код индикатора в конце поста.

Вот как эта скользяшка(PMA) выглядит рядом с SMA и EMA. Периоды построения у всех одинаковые.
Новая СуперСкользяшка (PMA). Такой еще не было.

 

        Изначально была идея такая- взять ряд данных (цена Close) на каком-то участке, построить по этим данным линию линейной регрессии. ЛЛР строим следующим образом. По оси Y будут цены Close, по оси X будут порядковые номера баров.  Угловой коэффициент (A) и коэффициент смещения (В) простой линейной регрессии y=A*x+B можно найти с помощью метода наименьших квадратов.
Новая СуперСкользяшка (PMA). Такой еще не было.
      Далее была идея — посмотреть в конце участка, как цена Close отклоняется от ЛЛР. Для этого надо построить ЛЛР и найти координату Y(цена) по координате X(N бара).
Новая СуперСкользяшка (PMA). Такой еще не было.

       Построил одну точку-> надо построить остальные. Сказано, сделано. Для каждой цены Close(ось Y) рассчитываем коэффициенты простой линейной регрессии за определенный период и смотрим, какое значение ЛЛР (ось Y) будет на последнем баре(ось X) рассматриваемого участка. Все значения собираем в список. В результате получилась скользящая средняя, рассчитанная на основе линии линейной регрессии.

public static IList<double> PMA(this IList<double> Xseries, int Period) //Prosvirin Moving Average
        {
            var result = new List<double>();
            double SumOfPowX, SumOfX, n, SumOfXY, SumOfY, x, y, det, a, b;

            for (int bar = 0; bar < Period; bar++)
            {
                result.Add(Xseries[bar]);
            }

            for (int bar = Period; bar < Xseries.Count; bar++)
            {
                SumOfPowX = 0; SumOfX = 0; n = Period; SumOfXY = 0; SumOfY = 0;

                for (int i = 0; i < Period; i++)
                {
                     x = bar - i;
                     y = Xseries[bar - i];
                    SumOfPowX += x * x;
                    SumOfX += x;
                    SumOfXY += x * y;
                    SumOfY += y;
                }
                 det = SumOfPowX * n - Math.Pow(SumOfX, 2);
                 a = (SumOfXY * n - SumOfX * SumOfY) / det;
                 b = (SumOfY - a * SumOfX) / n;
                result.Add(bar * a + b);
            }
            return result;
        }

     На первый взгляд, перспективная скользяшка. Но только, если не сравнивать ее с JURIK MOVING AVERAGE (JMA). Вот как PMA выглядит на фоне JMA с тем же периодом.
Новая СуперСкользяшка (PMA). Такой еще не было.

     Может до меня такой индикатор уже кто-то делал, но я не встречал. Поэтому решил сделать пост и выложить код индикатора и библиотеку с индикатором для ТсЛаб в открытый доступ. Эту скользяшку я не скромно назвал PMA (Prosvirin Moving Average)

ССЫЛКА НА БИБЛИОТЕКУ ДЛЯ ТСЛАБ И КОД ИНДИКАТОРА








| ★15
17 комментариев
И линейную и взвешенную линейную регрессию давно применяли. Даже на смартике можно найти. Даже более сложные вещи, типа сглаживающего сплайна, в качестве механизма построения индикатора применяли. 
См. 
ru.wikipedia.org/wiki/Фильтр_Ходрика_—_Прескотта
А авторский код джурика у Вас есть ? 
avatar
SergeyJu, авторский наверное, только у самого Юрика есть — это же платный продукт, поставляемый в виде черного ящика — дллки. Но ее декомпилированных версий по сети много гуляет, тут, например:
www.forexfactory.com/thread/696822-jurik-indicators

(хотя файлы в формате mq4, алгоритм из них легко достается)
avatar
Technocratus, декомпилированные видел. Разбираться в таком себе дороже. 
avatar
если это на самом деле новый, не существовавший до сих пор индикатор, то круто, молодец!
… но только, если не сравнивать ее с JMA ;)
avatar
а можно его как-то в трейдинг вью закинуть?
avatar
Andrey_B, https://www.tradingview.com/pine-script-reference/#fun_linreg
avatar
Круто, но… Надо приложить результаты тестов.
дай угадаю результат применения? ))) все те же 50 на 50 минус спред ну или комиссия в долгоиграющей перспективе.  Машки чисто облегчают индикацию. ну можно  мтс  на них мутить но всегда плюс еще что то…
avatar
блть… сколько я делал таких «умных» машек — не счесть… ни одна не дала нормальный профит… проверял на сверхдлинных бектестах и на WFT… в разных инструментах и разных тф

херня это все, ребята…
avatar
В метастоке уже лет 20 такая есть, называется TimeSeries
avatar
Андрей, У меня не было метастока. Вот поэтому изобрел свой велосипед. И кодом поделился. Спасибо, что направили к первоисточнику. Я этим индикатором не пользуюсь. А вот, угловым коэффициентом от него пользуюсь. И весьма успешно.
avatar
Кто-то спрашивал, чем занять нейросеть — вот, пожалуйста, «хакните» юрика :)
avatar
Ставлю в настройках JMA период 100, но она выглядит совершенно не так, как у Вас на графике.  А какие значения Phase и Power? 
avatar
1)Я заметил маленький момент, ваша скользяшка от jma отличается запозданием. Для sma 100 и для ma 100 это разное. Ema будет быстрее. Попробуйте уменьшить на своей pma период и потом сравнивайте с jma.
2) На бэк-тесте проверяли? Какой результат?

avatar
Алексей, спасибо.
avatar
Привет Алексей. А ты свою PMA переделал под Тслаб 2.2?
avatar

Читайте на SMART-LAB:
Фото
Снижение военной премии в нефти: что это меняет для доллара и G10
Во второй половине понедельника – начале вторники рынки активно пересматривают премию за худший сценарий на энергетическом рынке, что цепочкой...
Фото
12 марта Группа Ренессанс страхование опубликует МСФО за 2025 год
Напоминаем, что 12 марта 2026 года RENI опубликует МСФО Группы за 2025 год, а также проведет День инвестора, чтобы рассказать о ситуации на...
Фото
Как заработать на росте цен на удобрения
Дарья Фёдорова Конфликт на Ближнем Востоке и перекрытие Ормузского пролива вызвали ралли не только цен на нефть и газ, но также алюминий и...
Фото
Гендиректор Инарктики продал свои акции компании. Что это может значить?
Вечером в пятницу (6 марта ) вышел сущфакт о том, что Соснов Илья Геннадьевич, гендиректор Инарктики, продал свои акции компании. В нашем...

теги блога ProsvirinAlexey

....все тэги



UPDONW
Новый дизайн