Скачать MetaTrader 5

Просьба к программистам

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Сергей Губарь
95
Сергей Губарь  

Добрый день!

Уважаемые программисты кто из вас мог бы за умеренную плату объяснить один момент в программировании. Поскольку я только начинаю программировать у меня возникла большая сложность которую я своими силами не могу преодолеть. Если есть человек который готов помочь прошу писать мне по email fxteam2010@gmail.com

Aleksandr Chugunov
5165
Aleksandr Chugunov  
да пиши сюда, поможем чем сможем
Aleksander
1694
Aleksander  
AlexSTAL:
да пиши сюда, поможем чем сможем

Даа.. и деньги сразу сюда пиши.... типа сделал электронный перевод по емейлу...


Умеренная плата

Murad Ismayilov
1810
Murad Ismayilov  
Спроси тут
Сергей Губарь
95
Сергей Губарь  
Добрый день!

Сделал я первую часть индикатора. По историческим данным работает отлично, но как только начинают строиться новые свечи показывает все, что угодно, но только не то, что нужно. Перепробовал разные способы до которых мог додуматься, но за неделю так и не продвинулся вперед.
//+------------------------------------------------------------------+
//|                                                            2.mq4 |
//|                                                    Stellar Space |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "Stellar Space"
#property link      "http"

#property indicator_chart_window                                               // Индикатор рисуется в основном окне
#property indicator_buffers 2                                                  // Количество индикаторных буферов
#property indicator_color1 DarkGreen                                           // Цвет первой линии
#property indicator_width1 1                                                   // Ширина первой линии
#property indicator_color2 Crimson                                             // Цвет второй линии
#property indicator_width2 1                                                   // Ширина второй линии

extern int Code_1=159;                                                         // Код значка
extern int Code_2=159;                                                         // Код значка

extern int History=1000;                                                       // Количество баров истории

double Buf_0[],Buf_1[];                                                        // Объявление массива под буфер индикатора

//+------------------------------------------------------------------+
int init()
 {
 
 SetIndexBuffer(0,Buf_0);                                                      // Назначение массива буферу
 SetIndexStyle(0, DRAW_ARROW);                                                 // Стиль линии
 SetIndexArrow(0, Code_1);                                                     // Стиль Arrow
 SetIndexLabel(0,"Максимум (1 уровень)");                                      // Установка имени линии индикатора 
 SetIndexBuffer(1,Buf_1);                                                      // Назначение массива буферу
 SetIndexStyle(1, DRAW_ARROW);                                                 // Стиль линии
 SetIndexArrow(1, Code_2);                                                     // Стиль Arrow
 SetIndexLabel(1,"Минимум (1 уровень)");                                       // Установка имени линии индикатора 
  
 return(0);
 }

//+------------------------------------------------------------------+
int start()
 {
 
 int i;                                                                        // Индекс бара
 int a,b,c,d,e,f,g,h,j,k,l,m,n,o,p,q;                                          // Объявление переменых
 int Counted_bars=IndicatorCounted();                                          // Количество просчитанных баров
 
 
//+------------------------------------------------------------------+         // START
                                           
 i=Bars-Counted_bars;                                                          // Индекс первого непосчитанного бара
 if (i>History)                                                                // Если много баров то ..
     i=History;                                                                // ..рассчитывать заданное количество

  while(i>1)                                                                    // Цикл по непосчитанным барам
 {

 
//+------------------------------------------------------------------+         // A

 for(a=i; a>=1; a--)    
 {//Aa
 if (High[a+1]<High[a]&&Low[a+1]<Low[a])
    {b=a;}    
 else {break;}
 }//Aa
//--
 for(a=i; a>=1; a--)    
 {//Ab
 if (High[a+1]>High[a]&&Low[a+1]>Low[a])
    {c=a;}
 else {break;}
 }//Ab
//--

 for(a=i; a>=1; a--)    
 {//Ac
 if (b>c){d=b;}    
 else {break;}
 }//Ac 
//--
 for(a=i; a>=1; a--)    
 {//Ad
 if (c>b){e=c;}    
 else {break;}
 }//Ad
//--

 for(a=i; a>=1; a--)    
 {//Ae
 if (e>d&&d>c)
  {
   f=iHighest(NULL,0,MODE_HIGH,e-c,c);
   Buf_0[f]=High[f]+2*Point;
  }    
 else {break;}
 }//Ae 
 for(a=i; a>=1; a--)    
 {//Af
 if (d>e&&e>b)
  {
   g=iLowest(NULL,0,MODE_LOW,d-b,b);
   Buf_1[g]=Low[g]-2*Point;
  }    
 else {break;}
 }//Af 
 

//+------------------------------------------------------------------+
 i--;
 }

//+------------------------------------------------------------------+         // FINISH

 //!

 return(0);
 }

//+------------------------------------------------------------------+
int deinit()
 {
 return(0);
 }
  
//+------------------------------------------------------------------+
Mislaid
619
Mislaid  

Индикатор не тяжелый. Можно пересчитывать последние History баров. Этот индикатор перерисовывается.

Нужно заменить операторы

i=Bars-Counted_bars;                                                          // Индекс первого непосчитанного бара
if (i>History)                                                                // Если много баров то ..
     i=History; 

на

i=MathMin(Bars-1, History);

Также хорошо бы добавить операторы, чтобы индикатор пересчитывался только при приходе нового бара.

Сергей Губарь
95
Сергей Губарь  
Mislaid:

Индикатор не тяжелый. Можно пересчитывать последние History баров. Этот индикатор перерисовывается.

Нужно заменить операторы

на

Также хорошо бы добавить операторы, чтобы индикатор пересчитывался только при приходе нового бара.

Да, здорово! все заработало, я не знал об этой функции.

Ф как добавить операторы о которых вы говорите?

Mislaid
619
Mislaid  
Stellarspace:

Да, здорово! все заработало, я не знал об этой функции.

Ф как добавить операторы о которых вы говорите?



Сейчас надо уходить. Нет времени. Это решалось много раз. Попробуйте поиск.
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий