Pan PrizMA
- Индикаторы
- Aleksey Panfilov
- Версия: 1.3
- Обновлено: 31 марта 2020
- Активации: 20
Как минимум, этот индикатор способен вас развлечь. Он строит скользящую линию на базе интерполяции полиномом 1-4 степеней и/или функцией, составленной из суммы 1-5 синусоид. Возможны комбинации, например, сумма трех синусоид около параболы второй степени. Построенную линию можно экстраполировать любой из указанных функций и на различное расстояние как в виде одной точки на каждом шаге индикатора (не изменяемая линия), так и в виде участка заданной функции (перерисовывается) для визуализации построения.
В индикаторе задействованы четыре линии. Каждая следующая линия индикатора опирается на результаты предыдущей. Каждая линия кроме первой может быть как усредняющей, так и экстраполирующей в зависимости от указанного направления: (-1) - усреднение или (1) - экстраполяция.
Принцип линейной интерполяции
Известно, что минимально необходимо две точки, чтобы провести прямую, три точки, чтобы провести квадратную параболу, четыре - кубическую и т.д.
Прямая - это арифметическая прогрессия, чтобы получить третью точку после первых двух:
У3 = (У2-У1)+У2 = 2*У2 – У1 - разностное уравнение первой степени для равноотстоящих точек (аналогично уравнению после сокращения всех коэффициентов уравнения Лагранжа).
Принцип тригонометрической интерполяции
Используем формулу синуса двойного угла: Sin 2a = 2 * Cos a * Sin a. Геометрически можно доказать ее справедливость в виде Sin 2a = 2 * Cos a * Sin a - 0 и соответственно Sin 3a = 2 * Cos a * Sin 2a - Sin a и так далее, где Cos a - косинус угла одного шага, а Sin, по сути, соответствующее значение графика. Тогда разностное уравнение первой степени для синусоиды около нуля выглядит: У3 = 2 * Cos a * У2 - У1. Видим полную аналогию с уравнением для прямой. В индикаторе переход от тригонометрических уравнений к линейным обеспечивается назначением периода, равного единице. Cos 360 равен 1, тогда уравнение вырождается в линейное.
Внешние переменные (на примере первых двух линий)
- line_1_power =12 - степень интерполирующей линии. Для тригонометрической функции степень 2 соответствует одной синусоиде около константы. Степень 3 соответствует одной синусоиде около наклонной прямой. Степень 4 соответствует или одной синусоиде около квадратной параболы, или двум синусоидам около константы и так далее. В данном случае 12 степень при шести назначенных ниже периодах соответствует функции сложенной из 6 синусоид около константы.
- line_1_leverage =10 - плечо интерполяции. Аналог периода усреднения. В частности, линия интерполяции первой степенью полностью соответствует классическому EMA с периодом вдвое больше.
- line_1_interval =1 - интервал между соседними точками, задействованными в расчете. Не путать с плечом. В частности, прямая связывает три точки, две из них соседние и одна удалена на расстояние плеча.
- line_1_period_1=6 - период синусоиды, если функция тригонометрическая. Если функция линейная, выставляется значение 1.
- line_1_period_2=7.5
- line_1_period_3=10
- line_1_period_4=20
- line_1_period_5=60
- line_1_period_6=240
- line_1_shift =0 - сдвиг линии индикатора. Положительные значения сдвигают вправо, отрицательные - влево. По умолчанию линии рисуются с учетом отступа на плечо.
- XXXXXXXXXXXXXXXXXXXXXXXX1=2 - разделитель параметров разных линий, для наглядности.
- line_2_trend =1 - направление расчета линии: (-1) - усреднение, (1) - экстраполяция.
- line_2_power =10 - степень интерполирующей линии. Если остальные параметры - те же, что и усреднения, то вторая линия пройдет через точку открытия последнего бара. Степени 1001, 1002, 1003-1009, 1010 экстраполируют участок функции. Этот участок функции перерисовывается на каждом баре и служит только для визуализации.
- line_2_leverage =8 - плечо интерполяции, индикатор на каждом значении рисует одну точку удаленную на это плечо, и не перерисовывается даже по мере развития бара, так как опирается на точку открытия. В случае степеней 1001, 1002, 1003-1009, 1010 задает длину участка рисуемой функции.
- line_2_interval =1 - интервал между соседними точками, задействованными в расчете.
- line_2_period_1 =6 - период синусоиды, если функция тригонометрическая. Если функция линейная, выставляется значение 1.
Могут быть комбинации внешних параметров, которые уводят линию далеко от текущей цены (большие степени, большое плечо, неудачное соотношение периода синусоиды и плеча). Это не ошибка программы. Проще всего открыть начало графика и увидеть характер линии. Например, интерполяция полиномом степени больше четвертой в индикаторе математически возможна, но колебания усредненной линии быстро растут по амплитуде, напоминая резонанс.