Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 516

 

Помогите плиз

 
Sergey Gritsay:

Это вопрос? Если да, то вот пример на МТ4

 

Результат 

Та неее, не вопрос... Хотел ответить тому, кто спрашивал как получить Ask. В мобиле трудно без аватарок понять правильно кто задаёт вопрос, а кто отвечает, и кому тоже отвечать. Простите.
 
Sergey Gritsay:

Вот так думаю по интереснее будет

вариант 1 

 

вариант 2 

Поинтересней, но не понятно, для начинающих - это я про себя...
 
-Aleks-:
Поинтересней, но не понятно, для начинающих - это я про себя...

Это пользовательская функция, вот пример использования

//+------------------------------------------------------------------+
//|                                                        тест3.mq4 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   if(NevDay1())
     {
      Alert("Наступил новый день");
     }

   if(NevDay2())
     {
      Alert("Наступил новый день");
     }

  }
//+------------------------------------------------------------------+
bool NevDay1()
  {
   static datetime StatTime;

   if(StatTime!=iTime(NULL,PERIOD_D1,0))
     {
      StatTime=iTime(NULL,PERIOD_D1,0);
      return(true);
     }
   return(false);
  }
//+------------------------------------------------------------------+
bool NevDay2()
  {
   static int den;

   if(den!=Day())
     {
      den=Day();
      return(true);
     }
   return(false);
  }
//+------------------------------------------------------------------+
 
Sergey Gritsay:

Это пользовательская функция, вот пример использования

Про то, что пользовательская функция - это я понял.

Во втором примере не понятно куда отправляет функция Day()

 
-Aleks-:

Про то, что пользовательская функция - это я понял.

Во втором примере не понятно куда отправляет функция Day()

В смысле куда? Это функция из документации

Day

Возвращает текущий день месяца, т.е. день месяца последнего известного времени сервера.

int  Day();

Возвращаемое значение

Текущий день месяца.

Примечание

При тестировании последнее известное время сервера моделируется.

Пример:

  if(Day()<5) return(0);

 
Sergey Gritsay:

В смысле куда? Это функция из документации

Day

Возвращает текущий день месяца, т.е. день месяца последнего известного времени сервера.

int  Day();

Возвращаемое значение

Текущий день месяца.

Примечание

При тестировании последнее известное время сервера моделируется.

Пример:

  if(Day()<5) return(0);

Ух я темнота - спасибо за просвещенье - не знал.

Форум пора научить подсвечивать функции в полном объеме!

 
Ребят,помогите написать простенький советник! Буду очень благодарен!!!
 

МТ4, прошу помощи сообщества.
1. В эксперте, работающем (по тикам или по таймеру 0,5 сек) на графике М1 нужно в момент появления новой свечи на графике H1 сделать вычисления.
   Можно ловить начало свечи М1, следующей за последней свечой М1 каждого часа (NN:00 минут), но это как-то некрасиво ... Да и свеча H1 в этот момент может ещё не нарисоваться.
   Может быть, кто-то сделал это более изящно ?
2. Получение значения индикатора через iCustom() насколько дольше, по сравнению с кодом индикатора в тексте эксперта ?
3. Если код индикатора в тексте эксперта намного быстрее считается, как в эксперте, прикрепленному к графику М1, посчитать значение индикатора по графику H1 ?

 
MikeZv:

МТ4, прошу помощи сообщества.
1. В эксперте, работающем (по тикам или по таймеру 0,5 сек) на графике М1 нужно в момент появления новой свечи на графике H1 сделать вычисления.
   Можно ловить начало свечи М1, следующей за последней свечой М1 каждого часа (NN:00 минут), но это как-то некрасиво ... Да и свеча H1 в этот момент может ещё не нарисоваться.
   Может быть, кто-то сделал это более изящно ?
2. Получение значения индикатора через iCustom() насколько дольше, по сравнению с кодом индикатора в тексте эксперта ?
3. Если код индикатора в тексте эксперта намного быстрее считается, как в эксперте, прикрепленному к графику М1, посчитать значение индикатора по графику H1 ?

Ответ на первый вопрос, функция определяет новый бар.

bool NevBar(int period)
  {
   static datetime StatTime;

   if(StatTime!=iTime(NULL,period,0))
     {
      StatTime=iTime(NULL,period,0);
      return(true);
     }
   return(false);
  }

 

пример использования 

int OnInit()
  {
//---
   NevBar(PERIOD_H1);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   if(NevBar(PERIOD_H1))
     {
      производим вычисления.
     }
  }
//+------------------------------------------------------------------+