Пользовательские индикаторы > MAngle - отношение соседних точек MA

Дополнительные индикаторы от пользователей Альфа-Директ 4. Готовые решения от пользователей.
Аватара пользователя
evge
Администратор
Сообщения: 1601
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 62 раза
Поблагодарили: 281 раз
Контактная информация:

MAngle - отношение соседних точек MA

Непрочитанное сообщение evge » 21 авг 2016, 20:05

Индикатор MAngle отображает отношение текущей и предыдущей точки Moving Average (SMA, EMA или WMA) в виде гистограммы. MAngle, в некоторых случаях, позволяет чуть раньше определить смену направления MA.

Параметры:

Period - период MA
PeriodAngle - период усреднения отношений соседних точек MA
MAType - 0 - SMA, 1 - EMA, 2 - WMA

Примеры работы:

MAngle-01.png
MAngle-01.png (41.85 КБ) 3269 просмотров


Исходный текст индикатора:

Код: Выделить всё

function Initialize()
{
IndicatorName = "MAngle";
PriceStudy = true;
AddInput("Input", Inputs.Candle);
AddSeries("A", DrawAs.Histogram, Color.Blue, AxisType.ZeroBased, true, Axes.New);
AddSeries("MA", DrawAs.Line, Color.Red, true, Axes.Parent);

AddParameter("Period", 10);
AddParameter("PeriodAngle", 3);
AddParameter("MAType", 0); // 0 - SMA, 1 - EMA, 2 - WMA

}

function Evaluate()
{

// evge 21.08.2016 http://alfadirect4.ru

if (CurrentIndex > Period)
{
var S = SMA(Input.Close, 1);
if (MAType == 2) S = WMA(Input.Close, Period);
else
if (MAType == 1) S = EMA(Input.Close, Period);
else
S = SMA(Input.Close, Period);

var sum = 0.0;

for (var x = 0; x < PeriodAngle; x++)
   {
   sum += S[x] / S[x+1] - 1;
   }

A = sum / PeriodAngle;
MA = S[0];
}
else
{
   A = 0;
   MA = Input.Close[0];
}

}


Скачать исходный текст:

MAngle.zip
(902 байт) 214 скачиваний
никогда такого не было и вот опять

Аватара пользователя
evge
Администратор
Сообщения: 1601
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 62 раза
Поблагодарили: 281 раз
Контактная информация:

Re: MAngle - отношение соседних точек MA

Непрочитанное сообщение evge » 07 фев 2017, 08:30

Вариант с индикацией падения \ роста разным цветом значения осциллятора MAngle

MAngle-02.png
MAngle-02.png (42.96 КБ) 2958 просмотров


Код: Выделить всё

function Initialize()
{
IndicatorName = "MAngle";
PriceStudy = true;
AddInput("Input", Inputs.Candle);
AddSeries("AB", DrawAs.Custom, Color.Black, AxisType.ZeroBased, false, Axes.New);
AddSeries("A", DrawAs.Custom, Color.Green, AxisType.ZeroBased, true, Axes.New);
AddSeries("B", DrawAs.Custom, Color.Red, AxisType.ZeroBased, true, Axes.New);
AddSeries("MA", DrawAs.Line, Color.Red, true, Axes.Parent);

AddParameter("Period", 10);
AddParameter("PeriodAngle", 5);
AddParameter("MAType", 0); // 0 - SMA, 1 - EMA, 2 - WMA

}

function Evaluate()
{

// evge 25.08.2016 http://alfadirect4.ru

if (CurrentIndex > Period)
{
var S = SMA(Input.Close, 1);
if (MAType == 2) S = WMA(Input.Close, Period);
else
if (MAType == 1) S = EMA(Input.Close, Period);
else
S = SMA(Input.Close, Period);

var sum = 0.0;

for (var x = 0; x < PeriodAngle; x++)
   {
   sum += S[x] / S[x+1] - 1;
   }

AB[0] = sum / PeriodAngle;
MA = S[0];
}
else
{
   AB[0] = 0;
   MA = Input.Close[0];
}

A[0] = 0; B[0] = 0;

if (AB[0] > AB[1])
{ A[0] = AB[0]; A.DrawHistogram(); }
else
{ B[0] = AB[0]; B.DrawHistogram(); }

}


Скачать исходный текст

MAngleColor.zip
(970 байт) 192 скачивания
никогда такого не было и вот опять

StanislavAV
Сообщения: 1
Зарегистрирован: 15 май 2020, 15:13
Благодарил (а): 1 раз

MAngle - отношение соседних точек MA

Непрочитанное сообщение StanislavAV » 15 май 2020, 15:23

Добрый день.
Хотел проконсультироваться со специалистами.
Есть график MAngle. При росте каждый последующий бар красится в зеленый цвет. Как прописать зависимость
Если три зеленых бара подряд и после красного бар каждый зеленый бар короче предыдущего пока поднимается до нуля открывается сделка.

2020-05-15_15-04-32.png
2020-05-15_15-04-32.png (5.03 КБ) 410 просмотров


Код: Выделить всё

   if ( (MY.MAngle(Input1, PSslow, 50, 0).GetValue("AB[0]", 0) < (MY.MAngle(Input1, PSslow, 50, 0).GetValue("AB[1]", 0)< (MY.MAngle(Input1, PSslow, 50, 0).GetValue("AB[2]", 0)  )   
   {
      EnterLong();
   }


АВ это параметр в индикаторе MAngle
Спасибо.

Аватара пользователя
evge
Администратор
Сообщения: 1601
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 62 раза
Поблагодарили: 281 раз
Контактная информация:

Re: MAngle - отношение соседних точек MA

Непрочитанное сообщение evge » 15 май 2020, 16:37

Приветствую!

Код: Выделить всё

var MA = MY.MAngle(Input1, PSslow, 50, 0)["AB"];

if (MA[0] > MA[1] && MA[1] > MA[2] && MA[2] < MA[3] && MA[0] < 0)
{
EnterLong();
}
никогда такого не было и вот опять


Вернуться в «Пользовательские индикаторы»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя