Форум трейдеров » Торговые роботы, советники, индикаторы » Помогите с индикатором
+ Подписаться
  1. 3
    Комментарии
    1
    Темы
    3
    Репутация Pro
     
    Новичок

    2 Медалей

    Помогите с индикатором

    Добрый всем день! Уважаемые форумчане, обращаюсь с просьбой, помогите написать индикатор. Сам в програмировании пока не селён, вот летом будет отпуск попробую разобраться. Собственно что требуется от индикатора. Внизу графика в отдельном окне, полосочка или что то типа, которая будет брать информацию из стандартного индикатора МАСD, если МАСD выше ноля то полосочка или палочка зелёного цвета например, если ниже то красного. Вот и все условия, думаю для знающих людей это не составит большого труда:) Индикатор этот хочу использовать в соей работе в качестве вспомогательного. Т.к. Работаю на больших таймфреймах и только в направлении тренда, но часто пытаюсь ловить развороты и т.д. результат ненужный убыток. Надеюсь индикатор поможет соблюдать дисциплину и правила системы глянул он зелёный значит работаем только вверх и т.д. Что то похожее на систему импульсную Элдера он на семенаре так и говорит, это не система игры, а система убеждений (или как то так). Вот пожалуй и всё, единственное пожелание что бы индюк выглядел в виде одной ровной полоски, или из столбиков гистограммы одинаковой длины. Вот и всё.
    Спасибо, надеюсь на помошь.
    Недоступно! Pro 0
    Поделиться
    Просмотров: 3,262
  2. 2,974
    Комментарии
    7
    Темы
    2995
    Репутация Pro
     
    Banned

    4 Медалей
    Цитата Сообщение от joi7 Посмотреть сообщение
    Добрый всем день! Уважаемые форумчане, обращаюсь с просьбой, помогите написать индикатор. Сам в програмировании пока не селён, вот летом будет отпуск попробую разобраться. Собственно что требуется от индикатора. Внизу графика в отдельном окне, полосочка или что то типа, которая будет брать информацию из стандартного индикатора МАСD, если МАСD выше ноля то полосочка или палочка зелёного цвета например, если ниже то красного. Вот и все условия, думаю для знающих людей это не составит большого труда:) Индикатор этот хочу использовать в соей работе в качестве вспомогательного. Т.к. Работаю на больших таймфреймах и только в направлении тренда, но часто пытаюсь ловить развороты и т.д. результат ненужный убыток. Надеюсь индикатор поможет соблюдать дисциплину и правила системы глянул он зелёный значит работаем только вверх и т.д. Что то похожее на систему импульсную Элдера он на семенаре так и говорит, это не система игры, а система убеждений (или как то так). Вот пожалуй и всё, единственное пожелание что бы индюк выглядел в виде одной ровной полоски, или из столбиков гистограммы одинаковой длины. Вот и всё.
    Спасибо, надеюсь на помошь.
    Думаю, что научиться - это лучше, чем пользовать стороннюю разработку, не очень хорошо представляя, как и что работает..

    Попробуйте, например
    * взять стандартный индикатор из МТ
    * изменить количество индикаторов - 2
    * создать 2 буфера для индикации - например GreenBuffer[], RedBuffer[]
    * установить цвета - красный и зелёный
    * разместите примерно такой текст в цикле
    ...
    for(i=...){
    double M=iMACD(...,i)// синтаксис смотрим-копируем-вставляем из справки
    if(M>0)GreenBuffer[i]=M;
    if(M<0)RedBuffer[i]=M;
    }
    ...
    Справка на русском - доступна и понятна.. В редакторе надо поставить курсор на iMACD и нажать <F1>..
    Образцы индикаторов доступны в редакторе..
  3. 1,031
    Комментарии
    9
    Темы
    1733
    Репутация Pro
    Аватар для Chslav  
    Мастер форумных наук

    5 Медалей
    видимо что то такое нужно
    Вложения Вложения
  4. 59
    Комментарии
    0
    Темы
    60
    Репутация Pro
    Аватар для lazyboy1027  
    В начале пути

    2 Медалей
    Код:
    #property indicator_separate_window 
    
    #property indicator_buffers 3
    
    #property indicator_color1 Red
    #property indicator_color2 Green
    #property indicator_color3 Gray
    
    #property indicator_maximum 1
    #property indicator_minimum -1
    
    extern int MACD_Fast_Value=12;
    extern int MACD_Slow_Value=26;
    extern int MACD_Averaging_Value=9;
    
    double RedBuffer[];
    double GreenBuffer[];
    double GrayBuffer[];
    
    int init()
    {
       SetIndexBuffer(0,RedBuffer);
       SetIndexBuffer(1,GreenBuffer);
       SetIndexBuffer(2,GrayBuffer);
       SetIndexStyle(0, DRAW_HISTOGRAM, EMPTY, 4, Red);
       SetIndexStyle(1, DRAW_HISTOGRAM, EMPTY, 4, Green);
       SetIndexStyle(2, DRAW_HISTOGRAM, EMPTY, 4, Gray);
       IndicatorShortName("Осциллятор MACD");
       SetIndexLabel(0, "MACD Osc");
       SetIndexLabel(1, "MACD Osc");
       SetIndexLabel(2, "MACD Osc");
       return(0);
      }
    int deinit()
      {return(0);}
    
    int start()
      {
       int counted_bars=IndicatorCounted();
       int limit=Bars-counted_bars;
       for (int i=0; i<=limit; i++)
       {
          if (iMACD(NULL,0,MACD_Fast_Value,MACD_Slow_Value, MACD_Averaging_Value, PRICE_CLOSE, MODE_MAIN,i) > 0)
          {
             GreenBuffer[i]=0.1;
          }
          if (iMACD(NULL,0,MACD_Fast_Value,MACD_Slow_Value, MACD_Averaging_Value, PRICE_CLOSE,MODE_MAIN,i) < 0)
          {
             RedBuffer[i]=0.1;
          }
          if (iMACD(NULL,0,MACD_Fast_Value,MACD_Slow_Value, MACD_Averaging_Value, PRICE_CLOSE,MODE_MAIN,i) == 0)
          {
             GrayBuffer[i]=0.1;
          }
       } 
       return(0);
      }
    Копируешь все в пустой индикатор и компилируешь. В окне навигатора будет называться "MACD_Zero_Line".
  5. 2,974
    Комментарии
    7
    Темы
    2995
    Репутация Pro
     
    Banned

    4 Медалей
    Цитата Сообщение от lazyboy1027 Посмотреть сообщение
    Код:
    #property indicator_separate_window 
    
    #property indicator_buffers 3
    
    #property indicator_color1 Red
    #property indicator_color2 Green
    #property indicator_color3 Gray
    
    #property indicator_maximum 1
    #property indicator_minimum -1
    
    extern int MACD_Fast_Value=12;
    extern int MACD_Slow_Value=26;
    extern int MACD_Averaging_Value=9;
    
    double RedBuffer[];
    double GreenBuffer[];
    double GrayBuffer[];
    
    int init()
    {
       SetIndexBuffer(0,RedBuffer);
       SetIndexBuffer(1,GreenBuffer);
       SetIndexBuffer(2,GrayBuffer);
       SetIndexStyle(0, DRAW_HISTOGRAM, EMPTY, 4, Red);
       SetIndexStyle(1, DRAW_HISTOGRAM, EMPTY, 4, Green);
       SetIndexStyle(2, DRAW_HISTOGRAM, EMPTY, 4, Gray);
       IndicatorShortName("Осциллятор MACD");
       SetIndexLabel(0, "MACD Osc");
       SetIndexLabel(1, "MACD Osc");
       SetIndexLabel(2, "MACD Osc");
       return(0);
      }
    int deinit()
      {return(0);}
    
    int start()
      {
       int counted_bars=IndicatorCounted();
       int limit=Bars-counted_bars;
       for (int i=0; i<=limit; i++)
       {
          if (iMACD(NULL,0,MACD_Fast_Value,MACD_Slow_Value, MACD_Averaging_Value, PRICE_CLOSE, MODE_MAIN,i) > 0)
          {
             GreenBuffer[i]=0.1;
          }
          if (iMACD(NULL,0,MACD_Fast_Value,MACD_Slow_Value, MACD_Averaging_Value, PRICE_CLOSE,MODE_MAIN,i) < 0)
          {
             RedBuffer[i]=0.1;
          }
          if (iMACD(NULL,0,MACD_Fast_Value,MACD_Slow_Value, MACD_Averaging_Value, PRICE_CLOSE,MODE_MAIN,i) == 0)
          {
             GrayBuffer[i]=0.1;
          }
       } 
       return(0);
      }
    Копируешь все в пустой индикатор и компилируешь. В окне навигатора будет называться "MACD_Zero_Line".
    ДА!
    Это и есть - к чему надо б стремицца - красиво, понятно, аккуратно..
    Единственно - предложение/замечание - нет смысла перерасчитывать несколько раз МАКД..
    т.е М=МАКД, а потом сравниваем..

    Хотя, честно признаю - так понятнее..;)

    и индекс-лейблы - должны нести какую-то смысловую нагрузку.. Иначе, к чему они?

    SetIndexLabel(0, "MACD Osc");
    SetIndexLabel(1, "MACD Osc");
    SetIndexLabel(2, "MACD Osc");

    ++
    В окне навигатора будет называться "MACD_Zero_Line".
    Нууу.. не знаю..))))
  6. 3
    Комментарии
    1
    Темы
    3
    Репутация Pro
     
    Новичок

    2 Медалей
    Цитата Сообщение от lazyboy1027 Посмотреть сообщение
    Код:
    #property indicator_separate_window 
    
    #property indicator_buffers 3
    
    #property indicator_color1 Red
    #property indicator_color2 Green
    #property indicator_color3 Gray
    
    #property indicator_maximum 1
    #property indicator_minimum -1
    
    extern int MACD_Fast_Value=12;
    extern int MACD_Slow_Value=26;
    extern int MACD_Averaging_Value=9;
    
    double RedBuffer[];
    double GreenBuffer[];
    double GrayBuffer[];
    
    int init()
    {
       SetIndexBuffer(0,RedBuffer);
       SetIndexBuffer(1,GreenBuffer);
       SetIndexBuffer(2,GrayBuffer);
       SetIndexStyle(0, DRAW_HISTOGRAM, EMPTY, 4, Red);
       SetIndexStyle(1, DRAW_HISTOGRAM, EMPTY, 4, Green);
       SetIndexStyle(2, DRAW_HISTOGRAM, EMPTY, 4, Gray);
       IndicatorShortName("Осциллятор MACD");
       SetIndexLabel(0, "MACD Osc");
       SetIndexLabel(1, "MACD Osc");
       SetIndexLabel(2, "MACD Osc");
       return(0);
      }
    int deinit()
      {return(0);}
    
    int start()
      {
       int counted_bars=IndicatorCounted();
       int limit=Bars-counted_bars;
       for (int i=0; i<=limit; i++)
       {
          if (iMACD(NULL,0,MACD_Fast_Value,MACD_Slow_Value, MACD_Averaging_Value, PRICE_CLOSE, MODE_MAIN,i) > 0)
          {
             GreenBuffer[i]=0.1;
          }
          if (iMACD(NULL,0,MACD_Fast_Value,MACD_Slow_Value, MACD_Averaging_Value, PRICE_CLOSE,MODE_MAIN,i) < 0)
          {
             RedBuffer[i]=0.1;
          }
          if (iMACD(NULL,0,MACD_Fast_Value,MACD_Slow_Value, MACD_Averaging_Value, PRICE_CLOSE,MODE_MAIN,i) == 0)
          {
             GrayBuffer[i]=0.1;
          }
       } 
       return(0);
      }
    Копируешь все в пустой индикатор и компилируешь. В окне навигатора будет называться "MACD_Zero_Line".
    Спасибо!!! Помогли:thumbsup_002:
  7. 59
    Комментарии
    0
    Темы
    60
    Репутация Pro
    Аватар для lazyboy1027  
    В начале пути

    2 Медалей
    Цитата Сообщение от EQU Посмотреть сообщение

    Нууу.. не знаю..))))
    ))) ну так будет в окне Data Window.

Вверх
РегистрацияX

чтобы писать, читать, комментировать