Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1474

 
MakarFX:

void()

А в моем коде который я здесь выкладывал куда нужно вставлять этот  void()?
Спасибо

 
ANDREY:

А в моем коде который я здесь выкладывал куда нужно вставлять этот  void()?
Спасибо

не вставить - создать

из OnTick() удалить

а дальше

//--- input parameters
input int      Points=30;
double LoU;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- create timer
   EventSetTimer(60); // таймер в секундах
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- destroy timer
   EventKillTimer();
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
  }
//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer()
  {
//---
   LoU=Bid;
   if(Low[0]<LoU) {LoU=Low[0];}
   SendOrder(); 
  }
//+------------------------------------------------------------------+
void SendOrder()
  {
   if ((Bid-Points*Point)>=LoU)
     {
      if(OrderSend(Symbol(),OP_SELL,0.1,Bid, 3,0,0,"300",0)) LoU=Low[0];
     }
  }
 
MakarFX:

не вставить - создать

из OnTick() удалить

а дальше

Меня это заинтриговало..... А что конкретно делает эта void() применительно к моему коду и применительно к моей цели ?

Я понял что вычисления из OnTick() переносятся в другие функции. А везде где встречается  void() , какую функцию она выполняет?
Спасибо

 
ANDREY:

Меня это заинтриговало..... А что конкретно делает эта void() применительно к моему коду и применительно к моей цели ?
Спасибо

Работает по таймеру

 
MakarFX:

Работает по таймеру

А таймер говорит программе как часто проверять код, на каждом тике, или на каждой минутной или каждой часовой или дневной свече?
Если это так то мне нужно настроить таймер на проверку на каждой минутной свече и времени на исполнение кода при тестировании будет расходоваться на порядок меньше?

 
ANDREY:

А таймер говорит программе как часто проверять код, на каждом тике, или на каждой минутной или каждой часовой или дневной свече?

я же подписал

EventSetTimer(60); // таймер в секундах
 
MakarFX:

я же подписал

А почему не в минутах?

Или по факту - это в минутах? Или код будет исполняться на каждой секунде , а не на каждом тике. Тиков то больше чем секунд и иногда намного...
 
ANDREY:

А почему не в минутах?

Андрей, определись что ты хочешь. либо каждый тик, либо в секундах. поставь 86400 секунд...и будет раз в сутки

 
MakarFX:

не вставить - создать

из OnTick() удалить

а дальше

Вот твой код

input int      Points=30;
double LoU,Pr;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- create timer
   EventSetTimer(60); // таймер в секундах
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- destroy timer
   EventKillTimer();
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
  }
//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer()
  {
//---
   LoU=Bid;
   if(Low[0]<LoU) {LoU=Low[0];}
   SendOrder(); 
  }
//+------------------------------------------------------------------+
void SendOrder()
  {
   if ((Bid-Points*Point)>=LoU)
     {
      if(OrderSend(Symbol(),OP_SELL,0.1,Bid, 3,0,0,"300",0)) LoU=Low[0];
     }
  }

Но он почему то не открыл ни одного ордера.

 
MakarFX:

Андрей, определись что ты хочешь. либо каждый тик, либо в секундах. поставь 86400 секунд...и будет раз в сутки

Теперь понял. Я и хотел услышать что интервал можно задать любой.
Спасибо.

Причина обращения: