Скачать MetaTrader 5

Как сравнивать последние 5 тиков с новым? (Вопрос Чайника)

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Pavel Silber
703
Pavel Silber  

Объясните пожалуйста, Как сравнивать последние 5 тиков с новым тиком?

Хочу построить условие где всегда проверяются последние 3-5 тиков против нового,

К примеру если Тик 0 больше Тик 1,2,3,4 или 5 сигнал на Бай.

Boeing747
241
Boeing747  
alehandro:

Объясните пожалуйста, Как сравнивать последние 5 тиков с новым тиком?

Хочу построить условие где всегда проверяются последние 3-5 тиков против нового,

К примеру если Тик 0 больше Тик 1,2,3,4 или 5 сигнал на Бай.

 

 

в этом индикаторе показанно как сравнивать )
Файлы:
Pavel Silber
703
Pavel Silber  
Boeing747:
в этом индикаторе показанно как сравнивать )


Работает четко, но отображает только последний Бид (все пять тиков одни и те же цифры).

Pavel Silber
703
Pavel Silber  

Отображает вот так:

tick[0]=1.5223  tick[1]=1.5223  tick[2]=1.5223  tick[3]=1.5223  tick[4]=1.5223  tick[5]=1.5223 

 

 1.5223   1.5223  1.5223  1.5223  1.5223  1.5223 

Boeing747
241
Boeing747  
alehandro:

Отображает вот так:

tick[0]=1.5223  tick[1]=1.5223  tick[2]=1.5223  tick[3]=1.5223  tick[4]=1.5223  tick[5]=1.5223 

 

 1.5223   1.5223  1.5223  1.5223  1.5223  1.5223 

странно . у меня на фунте правильно показывает. может из специалистов разъяснит нам в чем дело?
ilunga
744
ilunga  
Boeing747:
странно . у меня на фунте правильно показывает. может из специалистов разъяснит нам в чем дело?

ибо https://docs.mql4.com/ru/common/Alert

Данные типа double выводятся с 4 десятичными цифрами после точки. Для вывода чисел с большей точностью используйте функцию DoubleToStr().

Boeing747
241
Boeing747  
ilunga:

ибо https://docs.mql4.com/ru/common/Alert

Данные типа double выводятся с 4 десятичными цифрами после точки. Для вывода чисел с большей точностью используйте функцию DoubleToStr().

понятно. совсем забыл что алерт съедает пятую цифру после запятой. спасибо что напомнили) 
Boeing747
241
Boeing747  
alehandro:

Отображает вот так:

tick[0]=1.5223  tick[1]=1.5223  tick[2]=1.5223  tick[3]=1.5223  tick[4]=1.5223  tick[5]=1.5223 

 

 1.5223   1.5223  1.5223  1.5223  1.5223  1.5223 

 вместо Alert( tick0 , " .......... );     напишите так:   Alert( DoubleToStr( tick0, Digits ),  ".......);     должно заработать
Pavel Silber
703
Pavel Silber  
#property indicator_chart_window

// вводной параметр

 extern int n = 5; // количество тиков от последнего нулевого тика
 
//-----
 int i;
 double N[1000];  //массив тиков
 double Tick[100]; //массив для последних тиков  
//--------------------------------------
int start()
  {

   i++;  // счетчик тиков 
   N[i] = Bid;  
   int x = i - n - 1;
   int e;
   int y; 
   
    
          for( e = x; e < i; e++ )
          {
           Tick[y] = N[i - y];
           y++;
          }
   

   if ( i == 999 )
   {
    i = 0; // сброс счетчика тиков
   }
   
    double tick0 = Tick[0];  // первый тик или нулевой Тик 0
    double tick1 = Tick[1];  // предпоследний тик   
    double tick2 = Tick[2];  // и так далее    
    double tick3 = Tick[3]; 
    double tick4 = Tick[4];
    double tick5 = Tick[5];  

    Alert( tick0 ,"     ",tick1 ,"    ",tick2 ,"    ",tick3 ,"    ",tick4 ,"   ",tick5  );

   return(0);
  }
Подскажите пожалуйста как отображать с помощью функции DoubleToStr() ? (5 цифр после точки)
Pavel Silber
703
Pavel Silber  
ОКЭЙ
Boeing747
241
Boeing747  
alehandro:
Подскажите пожалуйста как отображать с помощью функции DoubleToStr() ? (5 цифр после точки)
Надо так вписать:  Alert( DoubleToStr( tick0,  5 ), "    ", DoubleToStr( tick1,  5 ), "    ", DoubleToStr( tick2,  5 ),"     ", DoubleToStr( tick3, 5 ), "    ",  DoubleToStr( tick4,  5 ), "    ", DoubleToStr( tick5,  5 )  );   вместо:    Alert( tick0, "    ", tick1, "    ", tick2, "   ", tick3, "    ", tick4, "    ", tick5 );            
12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий