Ошибки, баги, вопросы - страница 2863

 
Konstantin Efremov:

Нет. В таких конструкциях единственное решение - переводить индикатор в класс и добавлять в советник как экземпляр класса, тогда можно выстроить последовательность расчетов

В том то и дело, что сам индикатор как отдельный класс, работающий с любыми однотипными базовыми индикаторами. Это очень плохо, если нет какого либо хитрого решения.

 

У меня вопрос-ребус.

Сравните две картинки и скажите в чём прикол?

1. Советник запущен на графике.


2. Второй - это тот же советник. График после одиночного теста.


 
Подскажите, возможно ли такое?
#define VALUE 10

#define MACROS

#ifdef MACROS
  // Нужно VALUE увеличить в два раза.
#endif
 
fxsaber:
Подскажите, возможно ли такое?
#define VALUE 10

#define MACROS

#ifdef MACROS
   #ifdef VALUE
      #undef VALUE
   #endif
   #define VALUE 20
#endif

или

#define DEFAULT_VAL 10

#define VALUE DEFAULT_VAL

#define MACROS

#ifdef MACROS
   #ifdef VALUE
      #undef VALUE
   #endif
   #define VALUE (2*DEFAULT_VAL)
#endif
 
Vladimir Simakov:

или

У меня нет доступа к изначальному определению VALUE. Иначе бы, конечно, сделал такой же вариант.

 
fxsaber:
Подскажите, возможно ли такое?

Почему-то не работает:

#define VALUE 10

#define MACROS

#ifdef MACROS
  // Нужно VALUE увеличить в два раза.
  #define TMP VALUE
  #undef VALUE
  #define VALUE (TMP*2)  // Если заменить на (10*2) - компилируется!
#endif

int OnInit(void)
{
        Print( "VALUE = ", VALUE ); //'VALUE' - undeclared identifier
        return(INIT_FAILED);
}
 
Andrey Khatimlianskii:

Почему-то не работает:

#define INITIAL_VALUE 10
#define VALUE INITIAL_VALUE

#ifdef MACROS
  #define VALUE 2*INITIAL_VALUE
#endif
наверное только так
 
TheXpert:
наверное только так

К сожалению, задача не решается.

 
Не возможно на форуме создать опрос.  После нажатия на создать выкидывает на главную.
 
TheXpert:
наверное только так

Так а почему не работает?

@Ilyas @Slava ?

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