Может кому пригодится.
Индикатор Elliot Wave Oscillator (EWO) - осциллятор, который отображает разницу двух скользящих средних в виде цветной гистограммы.
Осциллятор аналогичен MACD, но имеет преднастроенные периоды SMA. Используются быстрая 5-периодная SMA и медленная 34-периодная SMA, поэтому часто индикатор EWO ещё называют "5/34 oscillator".
Входные параметры:FastPeriod - период быстрой SMA (значение по умолчанию = 5);
SlowPeriod - период медленной SMA (значение по умолчанию = 34).
Скриншот индикатора:Код индикатора:► Показать
Код: Выделить всё
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("Input1", Inputs.Candle);
//Инициализация линии #1 индикатора - формируем ряд данных EWO
AddSeries("EWO", DrawAs.Custom, Color.Silver, AxisType.ZeroBased, true);
//Рисуем линии уровня индикатора
AddLevel(0.0, Color.Silver, LineStyles.Solid, 1, "EWO");
}
function Evaluate()
{
///////////////////////////////////////////////////////////
/// Расчет значений индикатора
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
/// Индикатор 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);
}
Скачать архив с кодом индикатора:Выкладываю как есть.
Прошу Вас не просить доделать, переделать, написать новый, выслать подробное описание и такое прочее.