[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 324

 
TheXpert >>:

Alert, как вариант. Comment -- пожалуй подойдет.

Замените while(true) на while(!IsStopped())

Опоздал.)))

Да, про IsStopped это я забыл.

 
Svinozavr >>:

Опоздал.)))

Могу дать форы в следующий раз :) .

Svinozavr >>:

Напишите ф-ю, где будет производиться вывод, и пишите, что вам нужно через нее.

Вариант.


 
TheXpert >>:

Спасибо. А цвет у Comment можно менять? Или только белым?

 
TheXpert >>:
Могу дать форы в следующий раз :) .

Кстати да, спасибо, очень быстро отвечают здесь :)

 
Mathers >>:

Спасибо. А цвет у Comment можно менять? Или только белым?

ЕМНИП, нет.

 

Когда нет необходимости обрабатывать каждый тик, как сделать чтобы обработка кода была только при появлении нового бара?

Наверняка уже есть готовая функция. Подкиньте плиз...


UPDATE

Спасибо, нашёл (:

//+------------------------------------------------------------------+
//|  возвращает признак появления нового бара для указанного периода |
//+------------------------------------------------------------------+
bool isNewBar(int timeFrame)
   {
   bool res=false;
   
   // массив содержит время открытия текущего (нулевого) бара
   // по 7 (семь) таймфреймам
   static datetime _sTime[7];  
   int i=6;
 
   switch (timeFrame) 
      {
      case 1  : i=0; break;
      case 5  : i=2; break;
      case 15 : i=3; break;
      case 30 : i=4; break;
      case 60 : i=5; break;
      case 240: break;
      case 1440:break;
      default:  timeFrame = 1440;
      }
//----
   if (_sTime[i]==0 || _sTime[i]!=iTime(Symbol(),timeFrame,0))
      {
      _sTime[i] = iTime(Symbol(),timeFrame,0);
      res=true;
      }
      
//----
   return(res);   
   }
 

Как через скрипт установить свой масштаб на графике?

Функции, сообщающие какой бар отображается первым есть, а как его переустановить - нетути.

 

Всем, привет! Кто сможет объяснить? Вот функция RefreshRates(), её всегда надо вызывать или когда эксперт или скрипт производит долгие вычисления, она срабатывает автоматически, например в функции обработок ошибок?
Второй вопрос: вот пример кода, я исправил ошибку, оператору switch, передал параметр...

int start()
  {
      int A = 1000;
      bool B=true;       // Условие успешной работы
//--------------------------------------------------------------
    if(Bars < A)         // Недостаточно баров
    {      
      Alert("Недостаточно баров в окне инструмента.");
      return;            // Выход из start()
    }
    if(B==false)         // Критическая ошибка   
      {      
      Alert("Эксперт не работает.");     
      return;            // Выход из start   
      }
//+-------------------------------------------------------------- 
  return(0);
  }
//--------------------------------------------------------------
    int Bloc_Error(int S)    // Пользовательская ф-ия обработки ошибок
    {   
      switch(S)    
      { 
      case 3:                // Неверные параметры:
      B=false;
      return(0);                                
      }  
    }

ну теперь другая ошибка, вроде неопределённая переменная B
я же вроде её объвлял?

bool B=true;

Вот как выглядит это сообщение об ошибке:
'B' - variable not defined ----------------- C:\Program Files\MetaTrader - Masterforex\experts\scripts\2.mq4 (31, 7)

Отсюда ещё вопрос, что это за цифры? (31, 7), они всегда разные при различных ошибках, я смотрел на эти же записи в указаной директории, это просто типа названия ошибки в документе... а можно в MetaEditor 4, где нибудь смотреть описание решения, например как в эксперте, ошибки исполнения и выполнения соответствуют своим значения, где для каждого номера конкретная причина ошибки???

 
Daiver2 писал(а) >>

Всем, привет! Кто сможет объяснить? Вот функция RefreshRates(), её всегда надо вызывать или когда эксперт или скрипт производит долгие вычисления, она срабатывает автоматически, например в функции обработок ошибок?
Второй вопрос: вот пример кода, я исправил ошибку, оператору switch, передал параметр...

ну теперь другая ошибка, вроде неопределённая переменная B
я же вроде её объвлял?

Вот как выглядит это сообщение об ошибке:
'B' - variable not defined ----------------- C:\Program Files\MetaTrader - Masterforex\experts\scripts\2.mq4 (31, 7)

Отсюда ещё вопрос, что это за цифры? (31, 7), они всегда разные при различных ошибках, я смотрел на эти же записи в указаной директории, это просто типа названия ошибки в документе... а можно в MetaEditor 4, где нибудь смотреть описание решения, например как в эксперте, ошибки исполнения и выполнения соответствуют своим значения, где для каждого номера конкретная причина ошибки???

Надо определять за пределами функции start(), делать глобальной. Тогда переменная будет доступна из любой функции

 
Vinin >>:

Надо определять за пределами функции start(), делать глобальной. Тогда переменная будет доступна из любой функции

Разжую. Старт такая же функция, как и прочие, поэтому все определения переменных внутри старта не действуют за ее пределами. Глобально определить переменную можно только в теле эксперта, до инита. Тогда она будет видна всем функциям.

Цифры - номер строки и номер символа в строке, где произошла ошибка.

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