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

 
TheXpert >>:

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

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

Опоздал.)))

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

 
Svinozavr >>:

Опоздал.)))

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

Svinozavr >>:

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

Вариант.


[Удален]  
TheXpert >>:

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

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

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

 
Mathers >>:

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

ЕМНИП, нет.

[Deleted]  

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

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


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);   
   }
[Deleted]  

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

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

[Deleted]  

Всем, привет! Кто сможет объяснить? Вот функция 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(), делать глобальной. Тогда переменная будет доступна из любой функции

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

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