Общие вопросы по разработке > MACDH (MACD Histogram) + SMA

Общие вопросы по разработке в Альфа-Директ 4. Обсуждение разработки пользовательских индикаторов, стратегий.
manolega
Сообщения: 10
Зарегистрирован: 26 апр 2019, 23:26

MACDH (MACD Histogram) + SMA

Непрочитанное сообщение manolega » 25 фев 2020, 15:22

Здравствуйте уважаемые форумчане и многоуважаемый Администратор evge! Помогите пожалуйста создать индикатор . Суть такая : надо построить простую SMA, с периодом 5, от MACDH (MACD Histogram), все в одном окне, оба индикатора.Код MACDH (MACD Histogram) прилагаю под спойлером. И тоже самое надо от BW_AO (Awesome Oscillator) – ЧУДЕСНЫЙ ОСЦИЛЛЯТОР Билла Вильямса. С Уважением.
► Показать

► Показать

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

Re: MACDH (MACD Histogram) + SMA

Непрочитанное сообщение evge » 26 фев 2020, 12:47

MACDH_MA-01.png
MACDH_MA-01.png (34.76 КБ) 18715 просмотров


Добавлен период для SMA в параметрах: PeriodMA

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

function Initialize()
{
IndicatorName = "MACDH_MA";
AddInput("Input", Inputs.Price);
PriceStudy = false;
AddSeries("MACDH", DrawAs.Custom, Color.Green, AxisType.ZeroBased);
AddSeries("MA", DrawAs.Line, Color.Black, AxisType.ZeroBased);
AddParameter("pFast", 5);
AddParameter("pSlow", 96,2);
AddParameter("Period", 8);
AddParameter("PeriodMA", 5);
AddGlobalVariable("sum", Types.Double, 0);
}

function Evaluate()
{
// AlfaDirect. 2015. OX
// MACD Histogram (MACDH) - Гистограмма MACD
// Цвет - определяется направлением изменения MACD
//
// evge 26.02.2020 https://alfadirect4.ru
// +SMA от MACDH
if (CurrentIndex < 1)
MACDH = 0.0;
else
{
MACDH = MACD(Input, pFast, pSlow, Period).GetValue("Histogram", 0);
sum += MACDH[0];
if (CurrentIndex > PeriodMA) sum -= MACDH[PeriodMA];
MA = sum / PeriodMA;
if (MACDH[0] > MACDH[-1])
MACDH.DrawHistogram(Color.Green, Color.Green, 50);
else
MACDH.DrawHistogram(Color.Red, Color.Red, 50);
}
}
никогда такого не было и вот опять

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

Re: MACDH (MACD Histogram) + SMA

Непрочитанное сообщение evge » 26 фев 2020, 12:56

По аналогии BW_AO_MA

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

function Initialize()
{
IndicatorName = "BW_AO_MA";
PriceStudy = false;
AddInput("Input", Inputs.Candle);
AddSeries("BW_AO", DrawAs.Custom, Color.Green, AxisType.ZeroBased);
AddSeries("MA", DrawAs.Line, Color.Black, AxisType.ZeroBased);
AddParameter("PeriodMA", 5);
AddGlobalVariable("sum", Types.Double, 0);
}

function Evaluate()
{
// AlfaDirect. 2014/ OX
// BW_AO (Awesome Oscillator) - чудесный осциллятор (Bill Williams)
//
// evge 26.02.2020 https://alfadirect4.ru
// +SMA от BW_AO

if (CurrentIndex > 34)
{
var Inp = LIB.MID(Input);
BW_AO = SMA(Inp, 5) - SMA(Inp, 34);

if (BW_AO > BW_AO[-1] )
BW_AO.DrawHistogram(Color.Green);
else
BW_AO.DrawHistogram(Color.Red);

sum += BW_AO[0];
if (CurrentIndex > 34 + PeriodMA) sum -= BW_AO[PeriodMA];
MA = sum / PeriodMA;
}

}
никогда такого не было и вот опять

manolega
Сообщения: 10
Зарегистрирован: 26 апр 2019, 23:26

Re: MACDH (MACD Histogram) + SMA

Непрочитанное сообщение manolega » 26 фев 2020, 14:35

Огромное Вам спасибо! Сам что то никак не мог сообразить как написать. Даже после прочтения существующей литературы на вашем сайте.Видимо не мое это. Еще раз спасибо за быстрый отклик на просьбу.

JASON
Сообщения: 27
Зарегистрирован: 31 янв 2017, 21:50
Благодарил (а): 3 раза

Re: MACDH (MACD Histogram) + SMA

Непрочитанное сообщение JASON » 07 мар 2020, 23:10

Здравствуйте, уажаемый Evge.
Простой индикатор (канал) написал. Границы от максимума и минимума цены откладываются на К*стандартное отклонение.
Хотел посмотреть как выглядит, но к сожалению не рисуется. :D (я не специалист )
Просьба помочь , подправить

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

function Initialize()
{
    IndicatorName = "RES_SUP_SD";
    PriceStudy = true;
    AddInput("Input", Inputs.Candle);
    AddSeries("Rs");   
    AddSeries("Sp");   
    AddSeries("Res", DrawAs.Line, Color.Blue);   
    AddSeries("Sup", DrawAs.Line, Color.Blue);   
    AddParameter("K", 3,1);
    AddParameter("Dl", -1,1);

     
   
}

function Evaluate()

{
    // JU. 2020.
    //
     
    if (  CurrentIndex < 1)
    {
     Res = Input.Low[0]+ K*MY.STD(Input.Close)[0];
     Sup = Input.High[0] - K*MY.STD(Input.Close)[0];
    }
    else
    {
     Rs = Input.Low[0] + K*MY.STD(Input.Close)[0];
     Sp = Input.High[0] - K*MY.STD(Input.Close)[0];
     Res=Rs[Dl];
     Sup=Sp[Dl];
 
    }
 
}

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

Re: MACDH (MACD Histogram) + SMA

Непрочитанное сообщение evge » 10 мар 2020, 06:22

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

MY.STD указывает на использование пользовательского индикатора.
Судя по описанию, хотели воспользоваться встроенной функцией STD из библиотеки алгоритмов LIB?

Если так, тогда MY. надо заменить на LIB. и задать параметр периода.

STD(Series, N) – стандартное отклонение
Параметры:
• Series –ряд данных;
• N – период;

пример рабочего кода (период задан 20, можно вынести в параметры индикатора):

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

function Initialize()
{
    IndicatorName = "RES_SUP_SD";
    PriceStudy = true;
    AddInput("Input", Inputs.Candle);
    AddSeries("Rs");   
    AddSeries("Sp");   
    AddSeries("Res", DrawAs.Line, Color.Blue);   
    AddSeries("Sup", DrawAs.Line, Color.Blue);   
    AddParameter("K", 3,1);
    AddParameter("Dl", -1,1);
}

function Evaluate()

{
    // JU. 2020.
    //
   
    var S = LIB.STD(Input.Close, 20)[0];
     
    if (  CurrentIndex < 1)
    {
     Res = Input.Low[0] + K * S;
     Sup = Input.High[0] - K * S;
    }
    else
    {
     Rs = Input.Low[0] + K * S;
     Sp = Input.High[0] - K * S;
     Res=Rs[Dl];
     Sup=Sp[Dl];
    }
 
}
никогда такого не было и вот опять

JASON
Сообщения: 27
Зарегистрирован: 31 янв 2017, 21:50
Благодарил (а): 3 раза

Re: MACDH (MACD Histogram) + SMA

Непрочитанное сообщение JASON » 10 мар 2020, 10:54

Добрый день.
Да ссылался на встроенный индикатор. Спасибо большое.

JASON
Сообщения: 27
Зарегистрирован: 31 янв 2017, 21:50
Благодарил (а): 3 раза

Средня

Непрочитанное сообщение JASON » 06 апр 2020, 11:59

Здравствуйте.
В потоке данных с биржи идет трансляция средневзвешенной цены дня, сформированной по всем сделкам с открытия и по текущий момент. К сожалению этот параметр никак не передается в график (или я не нашел).
А можно построить индикатор, с выводом на график цены?
Это будет что-то типа
CV =CV[-1]+ Input.Close[0]*Input.Volume[0];
V = V[-1]+Input.Volume[0];
VolAvD=CV/V

Спасибо.


Вернуться в «Общие вопросы по разработке»

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

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