[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 233

 
Метод МА, действительно, задан строго, но это самый "правильный" метод. А вот тип цен имеет широкий выбор. Цветов, правда, нет. Но так ли они нужны?
 

Согласен с вами на счёт цвета, а вот метод МА хотелось бы иметь возможность изменять. Может вы мне подскажите как правильно сделать. Например если через метаэдитор скопиравать часть кода, которая отвечает за метод МА с алигатора(напиример) и вставить в код МАСД?? Или все же это бредовая идея?

 
kiroyama:

Может вы мне подскажите как правильно сделать.

Подскажу и прошу отнестись к совету серьёзно. СтОит освоить таки программирование. Это не так сложно, как может показаться. Польза же будет колоссальная!
 

Добрий день! Ниделю назад-больше нидели- начал разбирать написание индикаторов, решил хоть что-то написать . Понятно, в коде лиш ахенея. Но он даже линию ни чертит!!! Пусть би хоть какую, хоть где, но я как говорится признаков жизни индикатора ни вижу!!!!!!

Я может не дописал ему что-то важное, еще какую-то команду что б чертил имено... Русская раскладка - ну удобно мне так для се

//+------------------------------------------------------------------+
//|                                          поиск вульфа Димона.mq4 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

#property indicator_chart_window

#property indicator_buffers 2
#property indicator_color1 Green
#property indicator_color2 Red
double ВерхняячертаBuffer1[];
double НижняячертаBuffer2[];

 double вершина; 
 double основание_первого_снижения;
 double начало;
 double вершина_волны_3;
 
 int timeframe, start ;
 int бар_вершина ;
 int бар_основание_первого_снижения;
 int бар_начало;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()

  {SetIndexStyle(0,DRAW_SECTION,STYLE_SOLID,2,CLR_NONE);Alert ("SetIndexStyle ",GetLastError( ) );
  SetIndexBuffer(0,ВерхняячертаBuffer1);Alert ("SetIndexBuffer ",GetLastError( ) );
   SetIndexEmptyValue(0,0.0);
   
   SetIndexStyle(1,DRAW_SECTION,STYLE_SOLID,2,CLR_NONE);Alert ("SetIndexStyle ",GetLastError( ) );
  SetIndexBuffer(1,НижняячертаBuffer2);Alert ("SetIndexBuffer ",GetLastError( ) ); 
   SetIndexEmptyValue(1,0.0);
//---- indicators




//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    counted_bars=IndicatorCounted();
//----

  // for(int i=Bars; i>=0;i--)
  int i=Bars;
       бар_вершина=iHighest( NULL,  timeframe, MODE_HIGH, i, start ) ;
       вершина =High[ бар_вершина ];
       бар_основание_первого_снижения=iLowest( NULL,  timeframe, MODE_LOW, бар_вершина, start ) ;
       основание_первого_снижения=Low[ бар_основание_первого_снижения ];
       бар_начало=iLowest( NULL,  timeframe, MODE_LOW, бар_вершина*2, бар_вершина ) ;
       начало=Low[ бар_начало ];
       
         
  
    НижняячертаBuffer2[бар_начало]=начало;
    НижняячертаBuffer2[бар_основание_первого_снижения]=основание_первого_снижения;
    
     int бар_проверка=iLowest( NULL,  timeframe, MODE_LOW, 5, 150 ) ;
     double проверка=Low[ бар_проверка ];
    ВерхняячертаBuffer1[бар_проверка]=проверка;
    ВерхняячертаBuffer1[бар_основание_первого_снижения]=основание_первого_снижения;
    
//----
   return(0);
  }
//+------------------------------------------------------------------+

бя.

 
kiroyama:

Согласен с вами на счёт цвета, а вот метод МА хотелось бы иметь возможность изменять. Может вы мне подскажите как правильно сделать. Например если через метаэдитор скопиравать часть кода, которая отвечает за метод МА с алигатора(напиример) и вставить в код МАСД?? Или все же это бредовая идея?

На основе кода от MetaQuotes можно сделать возможность подстановки соответствующего МА для MACD, да и цены тоже. Я тут недавно для Bollinger выложил индикатор с возможностью установки МА и цен. Если вас интересует подобная модификация для MACD, то на основе описания формулы рассчёта от MetaQuotes напишите мне в личку в каком месте и что и как вам надо модифицировать.

 

Слишком много в твоём первом индикаторе написано, чтобы он правильно работал.
И вообще, начни с более простого. Нарисуй горизонтальную линию.
Индикатор без цикла - что брачная ночь без невесты.
Вставляй цикл и повыбрасывай процентов 80 сторок.

 

Спасибо. Но да, я знаю, что код-ахинея, и я и хочу, точно, И вообще, начни с более простого. Нарисуй горизонтальную линию.

А он признаков жизни не подает!! Ну, не горизонтальную, хоть какую!! Ядва буфера обьявил, в ините вроде стиль линии прописал, буфери с массивами связал.. Хоть бі где линию чирканул! В єтом-то и дело!!

Пожалуста, кто шарит, может я не так SetIndexStyle прописал, или еще где.. или что.. Вот я для линии задаю две точки

ВерхняячертаBuffer1[бар_проверка]=проверка;
ВерхняячертаBuffer1[бар_основание_первого_снижения]=основание_первого_снижения; Что ему еще?

 
Линия состоит из точек. Найди в своей программе место, которое задаёт, сколько точек рисовать.
 
Спасибо!
 
Допиши в программу:
ВерхняячертаBuffer1[0]=25;
ВерхняячертаBuffer1[1]=25;
ВерхняячертаBuffer1[2]=25;
ВерхняячертаBuffer1[3]=25;
ВерхняячертаBuffer1[4]=25;
ВерхняячертаBuffer1[5]=25;
ВерхняячертаBuffer1[6]=25;
ВерхняячертаBuffer1[7]=25;
ВерхняячертаBuffer1[8]=25;
ВерхняячертаBuffer1[9]=25;
ВерхняячертаBuffer1[10]=25;
ВерхняячертаBuffer1[11]=25;
...

а потом подумай, чего не хватало