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

 

Добрый день!

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

 
да пиши сюда, поможем чем сможем
 
AlexSTAL:
да пиши сюда, поможем чем сможем

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


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

 
Спроси тут
 
Добрый день!

Сделал я первую часть индикатора. По историческим данным работает отлично, но как только начинают строиться новые свечи показывает все, что угодно, но только не то, что нужно. Перепробовал разные способы до которых мог додуматься, но за неделю так и не продвинулся вперед.
//+------------------------------------------------------------------+
//|                                                            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);
 }
  
//+------------------------------------------------------------------+
 

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

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

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

на

i=MathMin(Bars-1, History);

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

 
Mislaid:

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

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

на

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

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

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

 
Stellarspace:

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

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



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