Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Документация доступна в CHM и PDF. Скачай в удобном тебе виде!
inuboh
116
inuboh 2015.06.16 10:17 

Собираюсь использовать этот индикатор в советнике, но столкнулся с проблемой: на истории,  точки которым соответствует условие есть, а вот советник говорит что их нет. Вот код советника (ТФ Н1):

//+------------------------------------------------------------------+
//|      hdafhasdjhfkjashdfkahskdfhaksdhfhasdkjhfkashdfkhaslkdhf.mq4 |
//|                                                    Журба Алексей |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Журба Алексей"
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
double rsi = iRSI (Symbol (), 0, 20,PRICE_CLOSE, 0 ); 
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
if( rsi > 60.0 ) 
    Print ("OK");
  }
//+------------------------------------------------------------------+

хотя на графике вот четко видно что

rsi > 60.0


Подскажите пожалуйста в чем проблема.

Ilyas
1183
Ilyas 2015.06.16 10:20  
Значение индикатора нужно получать на каждом тике, а не только при запуске советника.
inuboh
116
inuboh 2015.06.16 15:42  
mql5:
Значение индикатора нужно получать на каждом тике, а не только при запуске советника.

Так оно и так проверяет на каждом тике, только почему то если на момент запуска советника это условие не подтверждалось, то дальше оно его и не ищет, а вот если я меняю условие на

rsi > 10.0

или

rsi < 60.0

все работает как нужно

Vitalie Postolache
11022
Vitalie Postolache 2015.06.16 15:48  
inuboh:

Так оно и так проверяет на каждом тике, только почему то если на момент запуска советника это условие не подтверждалось, то дальше оно его и не ищет, а вот если я меняю условие на

или

все работает как нужно 

Оно НЕ вызывает индикатор на каждом тике в коде выше. Вызов индикатора там  происходит всего один раз, при запуске советника.
Victor Nikolaev
Модератор
14037
Victor Nikolaev 2015.06.16 15:51  
inuboh:

Так оно и так проверяет на каждом тике, только почему то если на момент запуска советника это условие не подтверждалось, то дальше оно его и не ищет, а вот если я меняю условие на

или

все работает как нужно



Я повторю что было уже сказано. 

В  OnTick() должен быть вызов индикатора RSI. В смысле присвоить какой-то переменной текущее значение индикатора что бы с этой переменной работать. Пока Вы только неизвестно какое значение сравниваете. Вы не знаете когда произошло это событие и им оперируете, думая что оно уже самое последнее. Но это не так.

inuboh
116
inuboh 2015.06.16 17:53  
Vinin:

Я повторю что было уже сказано. 

В  OnTick() должен быть вызов индикатора RSI. В смысле присвоить какой-то переменной текущее значение индикатора что бы с этой переменной работать. Пока Вы только неизвестно какое значение сравниваете. Вы не знаете когда произошло это событие и им оперируете, думая что оно уже самое последнее. Но это не так.

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