Пользовательские индикаторы > EWO - Осциллятор

Дополнительные индикаторы от пользователей Альфа-Директ 4. Готовые решения от пользователей.
Аватара пользователя
Indigo-On
Сообщения: 55
Зарегистрирован: 28 ноя 2018, 18:44
Откуда: Russia
Благодарил (а): 24 раза
Поблагодарили: 9 раз

EWO - Осциллятор

Непрочитанное сообщение Indigo-On » 29 ноя 2018, 20:13

Может кому пригодится.

Индикатор Elliot Wave Oscillator (EWO) - осциллятор, который отображает разницу двух скользящих средних в виде цветной гистограммы.
Осциллятор аналогичен MACD, но имеет преднастроенные периоды SMA. Используются быстрая 5-периодная SMA и медленная 34-периодная SMA, поэтому часто индикатор EWO ещё называют "5/34 oscillator".

Входные параметры:
FastPeriod - период быстрой SMA (значение по умолчанию = 5);
SlowPeriod - период медленной SMA (значение по умолчанию = 34).

Скриншот индикатора:
► Показать

Код индикатора:
► Показать

Скачать архив с кодом индикатора:
srr_elliot_wave_oscilator_v1.02.zip
(1.27 КБ) 1062 скачивания

Выкладываю как есть.
Прошу Вас не просить доделать, переделать, написать новый, выслать подробное описание и такое прочее.

Аватара пользователя
Indigo-On
Сообщения: 55
Зарегистрирован: 28 ноя 2018, 18:44
Откуда: Russia
Благодарил (а): 24 раза
Поблагодарили: 9 раз

Re: EWO - Осциллятор

Непрочитанное сообщение Indigo-On » 03 янв 2019, 19:46

Добавил описания и скриншоты к ранее размещенным индикаторам.
Здесь тоже:
http://alfadirect4.ru/viewtopic.php?f=4&t=570
http://alfadirect4.ru/viewtopic.php?f=4&t=571

tool2020
Сообщения: 4
Зарегистрирован: 04 апр 2021, 13:15
Благодарил (а): 1 раз

Re: EWO - Осциллятор

Непрочитанное сообщение tool2020 » 04 апр 2021, 13:21

Не работает код - при компиляции пишет - "Название ряда индикатора должно быть Input в строке 0"

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

Re: EWO - Осциллятор

Непрочитанное сообщение evge » 04 апр 2021, 13:55

В АД4 в какой-то из версии терминала внесли эту проверку на название ряда и некоторые (малочисленное кол-во) индикаторов могут выдать такую ошибку. Исправляется это легко.

Ищем

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

AddInput(".......", Inputs.Candle);

берем из него наименование в ".....", ниже по коду для нашего случая это Input1.

Здесь же его заменяем на Input

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

AddInput("Input", Inputs.Candle);


а в самой первой строке после

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

function Evaluate()
{

дописываем (в нашем случае при наименовании равном Input1)

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

var Input1 = Input;

в ином заменяем Input1 на ранее взятое наименование ряда.

и далее код самого алгоритма работы индикатора можно не проверять, т.к. уже должно компилироваться.

В итоге для EWO поправленный код токой:

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

function Initialize()
{
   //SRR_ELLIOT_WAVE_OSCILLATOR_INDICATOR_V1.02
   //Coded for AD 4.0 by SRR (aka Indigo-On), 2017-2018
   //Индикатор Осциллятор Эллиота - обычная 34-периодная простая скользящая
   //средняя, взятая от 5-периодной SMA, отображаемая как гистограмма выше
   //или ниже линии нуля (обычно он называется "5/34 oscillator).
   //Подсмотрено на MQL5
   //С 1 рядом данных
   //
   //v1.02   -   версия подготовленная для публикации.
   //v1.01   -   изменена цветовая шкала раскраски гистограммы
   //         (приближена к индикатору SRR_ENTROPY_V1).
   //v1.00   -   первая тестовая версия.

   //Параметры основного индикатора #1
   //Обязательные параметры:
   IndicatorName = "SRR_EWO_V1";      //название индикатора
   PriceStudy = false;               //рисовать в отдельной области
   //Дополнительные параметры:
    AddParameter("FastPeriod", 5);      //период быстрой SMA (значение по умолчанию = 5)
    AddParameter("SlowPeriod", 34);      //период медленной SMA (значение по умолчанию = 34)
   //Входной ряд типа Candle
   AddInput("Input", Inputs.Candle);
    //Инициализация линии #1 индикатора - формируем ряд данных EWO
   AddSeries("EWO", DrawAs.Custom, Color.Silver, AxisType.ZeroBased, true);
   //Рисуем линии уровня индикатора
   AddLevel(0.0, Color.Silver, LineStyles.Solid, 1, "EWO");
}

function Evaluate()
{

        var Input1 = Input;

   ///////////////////////////////////////////////////////////
   /// Расчет значений индикатора
   ///////////////////////////////////////////////////////////

   ///////////////////////////////////////////////////////////
   /// Индикатор ELLIOT WAVE OSCILLATOR
   /// Расчет значений ряда данных EWO
   ///////////////////////////////////////////////////////////
   //Расчет осциллятора Эллиота
   //проверить на достаточность исходных данных
   if (CurrentIndex > 0)
      EWO = SMA(LIB.MID(Input1), FastPeriod)[0] - SMA(LIB.MID(Input1), SlowPeriod)[0];
   else
      EWO = 0.0;
   ///////////////////////////////////////////////////////////
   /// Вывод значений индикатора EWO на экран
   ///////////////////////////////////////////////////////////
   if (EWO[0] > 0.0)
   {
      if (EWO[0] > EWO[-1])
         EWO.DrawHistogram(Color.Teal);
      if (EWO[0] < EWO[-1])
         EWO.DrawHistogram(Color.Blue);
   }
   else
      if (EWO[0] < 0.0)
      {
         if (EWO[0] < EWO[-1])
            EWO.DrawHistogram(Color.Magenta);
         if (EWO[0] > EWO[-1])
            EWO.DrawHistogram(Color.Purple);
      }
      else
         EWO.DrawHistogram(Color.Gray);
}
никогда такого не было и вот опять

tool2020
Сообщения: 4
Зарегистрирован: 04 апр 2021, 13:15
Благодарил (а): 1 раз

Re: EWO - Осциллятор

Непрочитанное сообщение tool2020 » 04 апр 2021, 14:17

спасибо

tool2020
Сообщения: 4
Зарегистрирован: 04 апр 2021, 13:15
Благодарил (а): 1 раз

Re: EWO - Осциллятор

Непрочитанное сообщение tool2020 » 04 апр 2021, 17:42

Евгений, не поможете еще с кодом для Индикатора Elliott Wave ? ? Для поиска ближайших волн на графике

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

Re: EWO - Осциллятор

Непрочитанное сообщение evge » 04 апр 2021, 18:43

Нужно код писать и переносить из других систем (терминалов) для АД4, а это время. По возможности.
никогда такого не было и вот опять


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

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

Сейчас этот форум просматривают: Bing [Bot] и 6 гостей