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

 
Andrei Sokolov #:

Приветствую. Подскажите, пожалста: если из робота добавить на график используя ChartIndicatorAdd стоковую iMA, то можно ли изменить ее цвет? И если да, то как? 

В роботе используется несколько МА, хотелось-бы одну выделить.

нет, цвет один на все созданные МА.

Нормально сделано?

 
Maxim Kuznetsov #:
EnumToString

  Спасибо, Максим, а в чём её смысл?

 Если печатаю само значение enum - так его и выдаст просто как строку

Print ( EnumToString( ORDER_STATE_STARTED ) ) ;

Если пытаюсь обернуть вывод enum в неё, то пишет ошибку. 

Print ( EnumToString( OrderGetInteger( ORDER_STATE ) ) ) ;

Не понимаю как посмотреть с её помощью соотношение enum и чисел в выдаче через:

Print ( OrderGetInteger( ORDER_STATE ) ) ;
 

Александр #:

Если пытаюсь обернуть вывод enum в неё, то пишет ошибку. 
Print ( EnumToString( OrderGetInteger( ORDER_STATE ) ) ) ;

Print ( EnumToString( (ENUM_ORDER_STATE) OrderGetInteger( ORDER_STATE ) ) ) ;

OrderGetInteger возвращает long, и чтобы EnumToString корректно сработал и не было ошибок/предупреждений, его результат надо преобразовать в нужный enum.

 
Maxim Kuznetsov #:
Print ( EnumToString( (ENUM_ORDER_STATE) OrderGetInteger( ORDER_STATE ) ) ) ;
   Вот спасибо, Максим! Это отлично работает! Благодарю за ответ )))
 
Здравствуйте, подскажите пожалуйста, в инструменте MT4 Рисование линий Фибоначчи ограничено максимальное количество уровней 32, можно ли увеличить количество уровней например до 50?
 
Alexey Sergeev #:
Здравствуйте, подскажите пожалуйста, в инструменте MT4 Рисование линий Фибоначчи ограничено максимальное количество уровней 32, можно ли увеличить количество уровней например до 50?

Можно попробовать создать больше 32 уровней Фибо путем создания своей сетки. Ну т.е необходимый вам уровень находите по формуле, а дальше отмечаете этот уровень на графике путем создания горизонтальной или трендовой линии 

 
Sergei Gurov #:

Можно попробовать создать больше 32 уровней Фибо путем создания своей сетки. Ну т.е необходимый вам уровень находите по формуле, а дальше отмечаете этот уровень на графике путем создания горизонтальной или трендовой линии 

Спасибо.
 
Здравствуйте! Могли бы вы указать в чем здесь моя ошибка? 
class CNevBar
  {
private:
   datetime          curbar;
   datetime          lastbar;
public:
                     CNevBar();
                    ~CNevBar();
   bool              bar(string symbol,ENUM_TIMEFRAMES period);
  };
//+------------------------------------------------------------------+
void CNevBar::CNevBar()
  {

  }
//+------------------------------------------------------------------+
void CNevBar::~CNevBar(void)
  {

  }
//+------------------------------------------------------------------+
bool CNevBar:: bar(string symbol,ENUM_TIMEFRAMES period)
  {
   curbar=(datetime) SeriesInfoInteger(symbol,period,SERIES_LASTBAR_DATE);
   if(lastbar==0)lastbar=(datetime)SeriesInfoInteger(symbol,period,SERIES_LASTBAR_DATE);
   if(lastbar!=curbar)
     {
      lastbar=curbar;
      return(true);
     }
   return(false);
  }

void OnTick()
  {
  for(int u = 0; u<SymbolsTotal(true);u++){ 
  if(isNewBar.bar(SymbolName(u,true),PERIOD_CURRENT)){
        //Code Signals
      }
     }       

По каким то причинам условие isNewBar не работает и экперт обрабатывает код на каждом тике, вместо одного бара
 
Vladimir #:
Здравствуйте! Могли бы вы указать в чем здесь моя ошибка? 

По каким то причинам условие isNewBar не работает и экперт обрабатывает код на каждом тике, вместо одного бара

этот бред разве не ChatGPT породил ?

там всё - ошибка

 
Maxim Kuznetsov #:

этот бред разве не ChatGPT породил ?

там всё - ошибка

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