Скачать MetaTrader 5

Корректное сравнение тиков для проверки на открытие позиции

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Олег Коновалов aka Regul
124

Здравствуйте.

На MQL4 форуме https://www.mql5.com/ru/forum/132876 была тема,

в кратце,

Как сделать корректный вход на открытие позиции путем проверки нахождения текущего и предыдущего тиков выше определенного уровня.

(т.е приблизительно следующее: если текущий тик выше значения Х и выше предыдущего тика, а предыдущий тик выше значения Х тоже, то открываемся.)

double PrevAsk = 0.0;
double X = 0.0;
int start()
{
  if( Ask > PrevAsk && PrevAsk > X)
  {
    //open order
  }
  PrevAsk = Ask;
  return (0);
}

подскажите пожалуйста, как данную функцию прописать на МТ5 с добавлением проверки двойного закрытия последних двух сформированных баров Нх таймфрейма выше значения Х. 

Спасибо.

Корректное сравнение тиков для проверки на открытие позиции - MQL4 форум
  • www.mql5.com
Корректное сравнение тиков для проверки на открытие позиции - MQL4 форум
George Merts
4730
George Merts  

Данные в MT5 хранятся с поминутной, а не потиковой точностью.

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

Sergey Gridnev
5283
Sergey Gridnev  
konovalov:

Здравствуйте.

На MQL4 форуме https://www.mql5.com/ru/forum/132876 была тема,

в кратце,

Как сделать корректный вход на открытие позиции путем проверки нахождения текущего и предыдущего тиков выше определенного уровня.

(т.е приблизительно следующее: если текущий тик выше значения Х и выше предыдущего тика, а предыдущий тик выше значения Х тоже, то открываемся.)

подскажите пожалуйста, как данную функцию прописать на МТ5 с добавлением проверки двойного закрытия последних двух сформированных баров Нх таймфрейма выше значения Х. 

Спасибо.

 

Как-то так:

 

double PrevAsk = 0.0;
double X = 0.0;

void OnTick()
  {
   MqlTick last_tick;
   
   if(SymbolInfoTick(Symbol(),last_tick))
     {
      if( last_tick.ask > PrevAsk && PrevAsk > X )
        {
         //open order
        }
      PrevAsk = last_tick.ask;
     }
  }
Олег Коновалов aka Regul
124
Олег Коновалов aka Regul  
Laryx:

Данные в MT5 хранятся с поминутной, а не потиковой точностью.

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

Contender:

 

Как-то так:

 

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