Каталог файлов форума

Список вложений в сообщениях, оставленных на этой конференции.

Все файлы форума: 1270

Добавлено: evge » 19 мар 2021, 05:41

Тема: Re: Опять про вызов индикатора от индикатора

Текст сообщения:

Все что поменял это наименование параметров в _my_MA_MA_MACD и подставил их в MY._my_MA_MA_diff(...). Это всё. В результате MACD_Sign стала отображаться на графике:

MA_fast_type1
MA_slow_type1

MA_MA-01.png
MA_MA-01.png (33.33 КБ) 20321 просмотр


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

function Initialize()
{

   IndicatorName = "_my_MA_MA_MACD";   // Задайте название индикатора и сохраните с данным именем
   PriceStudy = false;   // Рисовать в области цены (true – да, false – нет)
   AddInput("Input", Inputs.Price);   // Input - входной ряд (Inputs.Price) или свечи (Inputs.Candle)
   AddParameter("MA_fast_type1", 2, "тип быстр: 1-SMA/2-EMA/3-WMA");
    AddParameter("MA_fast_period", 12, "период быстрой MA");
    AddParameter("MA_slow_type1", 2, "тип медл: 1-SMA/2-EMA/3-WMA");
    AddParameter("MA_slow_period", 26, "период медленной MA");
    AddParameter("MACD_sign_type", 2, "тип сигн MACD: 1-SMA/2-EMA/3-WMA");
    AddParameter("MACD_sign_period", 9, "период сигн MACD");

    AddSeries("MACD_Line", DrawAs.Line, Color.Blue);   // Задаем вид линии индикатора   
    AddSeries("MACD_Sign", DrawAs.Line, Color.Orange);   // Задаем вид линии индикатора
}

function Evaluate()
{

//var sInd = SMA(Input, 10);
//var A = EMA(sInd, 5);   

   var MA_diff = MY._my_MA_MA_diff(Input,(int)MA_fast_type1,(int)MA_fast_period,(int)MA_slow_type1,(int)MA_slow_period);
   var sign_line = SMA(MA_diff, MACD_sign_period);
   
/*   if (MACD_sign_type == 1)
   {
      sign_line = SMA(MA_diff, MACD_sign_period);
      //MACD_Sign = sign_line[0];
   }
   else if (MACD_sign_type == 2)
   {
      sign_line = EMA(MA_diff, MACD_sign_period);
      //MACD_Sign = sign_line[0];
   }
   else if (MACD_sign_type == 3)
   {
      sign_line = WMA(MA_diff, MACD_sign_period);
      //MACD_Sign = sign_line[0];
   }
   else
   {
      sign_line = SMA(MA_diff, MACD_sign_period);
      //MACD_Sign = sign_line[0];
   }*/
   
   MACD_Line = MA_diff[0];
   MACD_Sign = sign_line[0];
}