Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Ищешь единомышленников? На форуме их много!
Forex Trader
114237
Forex Trader 2005.11.15 21:43 
Помогите найти ошибку не могу понять где я здесь накосячил
синтаксис в норме а вот с логикой какаято ерунда

Заранее благодарен

//+------------------------------------------------------------------+
//|                                            МАКСИМУМЫ.mq4 |
//|                                                                  |
//|                                                                  |
//+------------------------------------------------------------------+
#property indicator_minimum 0         // минимум индикатора
#property indicator_maximum 1         // максимум идикатора
#property indicator_separate_window   // Индикатор рисуется в отдельном окне   
#property  indicator_buffers 1        // Количество индикаторных массивов или линий которые будут отрисованны 
#property  indicator_color1  Green    // Цвет линии или гистограммы индикатора
double _MM[];                         // Обьявление массива для отрисовки

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {//1
  SetIndexStyle(0,DRAW_HISTOGRAM,0,2); //Функция определяющая параметры отрисовки массива
  SetIndexDrawBegin(0,2);              //Функция запрещающая вывод в окно двух крайних левых расчётов
  SetIndexBuffer(0,_MM);               //Функция определяющая массив который будет отрисован в отдельном окне
  
   return(0);
  }//-1

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    counted_bars=IndicatorCounted();
   
//--------------------------------------------------
          int i,val,maxH,ii;            //Обьявление переменных для счётчика и прочее !
          for(i=Bars-40; i>=0; i--)     //Цикл в котором считается индикатор
{     
                              
           val=Highest(NULL,0,MODE_HIGH,40,i);
           
           maxH=High[i+40];                   
          _MM[i]=0;                           //предварительное забивание массива нолями
 

         
         
              for (ii=i+40; ii>=i;   ii-- )    //перемещаемый цикл в котором считается самое макс значение за 40 дней
                                               //которое будет сравниваться с самымым максимальным значением найденным
      {                                        //функцией Highest для того чтобы исключить показ нисходящих максимумов
         if( High[ii]>maxH )
          maxH=High[ii];
 
       }
           
                   
           if(High[i]>maxH)                    // само сравнение фильтр нисходящщих максимумов
 
           _MM[val]=1;                         // сами метки индикатора
           else _MM[val]=0;
}
//-------------------------------------------------
   return(0);
  }
//+------------------------------------------------

               // и в итоге ни фига нисходящие максимумы всё равно отмечны индикатором !
Forex Trader
114237
Forex Trader 2005.11.15 22:13  
объясни задачу - так не совсем понятно чего требуется сделать
Надо чтоб каждый новый максимум был больше предыдущего отрисованного?
Или надо локальные максимумы (чтоб с двух сторон значения были меньше)?
Или как-то ещё?
Forex Trader
114237
Forex Trader 2005.11.15 22:32  
объясни задачу - так не совсем понятно чего требуется сделать
Надо чтоб каждый новый максимум был больше предыдущего отрисованного?
Или надо локальные максимумы (чтоб с двух сторон значения были меньше)?
Или как-то ещё?


вообщем задача простая
просто индикатор отмечает вертикальнами линиями 40 дневные максимумы на протяжении всего графика
с помощью функции Highest(NULL,0,MODE_HIGH,40,i) причем отмечаются только восходящии максимумы нисходящии не должны отмечаться
если можно закинь код в мт4 и глянь пожалуйста
там в коде коментарии каким образом это делается.
косяк в том что несмотря на фильтр почемуто рисуются и нисходящие максимумы
у меня мозги уже близки к точке кипения я не могу понять где я накосячил.
Forex Trader
114237
Forex Trader 2005.11.15 22:40  
что ты называешь "нисходящими максимумами"?
Forex Trader
114237
Forex Trader 2005.11.15 22:45  
что ты называешь "нисходящими максимумами"?

нисходящие максимальные High которые возвращаются функцией Highest(...)
они находятся в нисходящих трендах
забрось пожалуйста код в мт4 и ты их увидишь
Forex Trader
114237
Forex Trader 2005.11.16 00:41  
прикрепил, посмотрел. Ничего не понял =)
наверное, ты хотел вот так ;)
#property indicator_minimum 0         // минимум индикатора
#property indicator_maximum 1         // максимум идикатора
#property indicator_separate_window   // Индикатор рисуется в отдельном окне   
#property  indicator_buffers 1        // Количество индикаторных массивов или линий которые будут отрисованны 
#property  indicator_color1  Green    // Цвет линии или гистограммы индикатора
double _MM[];                         // Обьявление массива для отрисовки

int init()
{//1
	SetIndexStyle(0,DRAW_HISTOGRAM,0,2); //Функция определяющая параметры отрисовки массива
	SetIndexDrawBegin(0,2);              //Функция запрещающая вывод в окно двух крайних левых расчётов
	SetIndexBuffer(0,_MM);               //Функция определяющая массив который будет отрисован в отдельном окне

return(0);
}//-1
int start()
{
	for( int i=Bars-41; i>=0; i--)     //Цикл в котором считается индикатор
	{
		double val=High[Highest(NULL,0,MODE_HIGH,40,i)];
		if(High[i]>=val) { _MM[i]=1; } else { _MM[i]=0; }
	}
return(0);
}
Forex Trader
114237
Forex Trader 2005.11.16 23:37  
Большое спасибо за подсказку.
Forex Trader
114237
Forex Trader 2005.11.17 00:15  
Большое спасибо за подсказку.
подсказку? =)
странный народ нынче пошёл....
Forex Trader
114237
Forex Trader 2005.11.17 19:16  
Большое спасибо за подсказку.
подсказку? =)
странный народ нынче пошёл....


Понимаешь пошагового отладчика нет и неизвестно когда будет ввиду того что терминал халявный
а все свойства созданного языка MQL4 сам понимаешь на бумаге не опишешь
при отсутствии опыта программиста и опыта отладки без отладчика приходится спрашивать
по этому ничего странного

или ты это в каком то другом смысле ?
Forex Trader
114237
Forex Trader 2005.11.17 19:40  
или ты это в каком то другом смысле ?
в другом =)
я не "подсказал", а сделал за тебя индюк. Время, между прочим, потратил ;)
А ты "спасибо за подсказку".... =)))
Forex Trader
114237
Forex Trader 2005.11.17 19:47  
или ты это в каком то другом смысле ?
в другом =)
я не "подсказал", а сделал за тебя индюк. Время, между прочим, потратил ;)
А ты "спасибо за подсказку".... =)))


а что ты хочешь ?
если учесть что это не индюк а только его часть
/ /12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий