Erros, bugs, perguntas - página 2863

 
Konstantin Efremov:

Não. Em tais construções, a única solução é converter o indicador numa classe e adicioná-lo ao Expert Advisor como uma instância da classe, depois é possível construir a sequência de cálculos

A questão é que o próprio indicador é uma classe separada que funciona com quaisquer indicadores básicos do mesmo tipo. Isto é muito mau, a menos que haja alguma solução complicada.

 

Tenho uma pergunta de puzzle.

Comparar as duas fotografias e dizer-me qual é o truque?

1. O Expert Advisor está a funcionar no gráfico.


2. O segundo é o mesmo Expert Advisor. A tabela após um único teste.


 
Pode dizer-me se isto é possível?
#define  VALUE 10

#define  MACROS

#ifdef  MACROS
  // Нужно VALUE увеличить в два раза.
#endif
 
fxsaber:
Pode dizer-me se isto é possível?
#define  VALUE 10

#define  MACROS

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

ou

#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:

ou

Não tenho acesso à definição original do VALOR. Caso contrário, é claro, eu faria a mesma opção.

 
fxsaber:
Pode dizer-me se isto é possível?

Por alguma razão, não está a funcionar:

#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:

Por alguma razão, não está a funcionar:

#define  INITIAL_VALUE 10
#define  VALUE INITIAL_VALUE

#ifdef  MACROS
  #define  VALUE 2*INITIAL_VALUE
#endif
Provavelmente, tal como este
 
TheXpert:
É provavelmente a única maneira

Infelizmente, o desafio não está a ser enfrentado.

 
Não é possível criar uma sondagem no fórum, se clicar em criar irá levá-lo de volta à página inicial.
 
TheXpert:
Essa é provavelmente a única maneira.

Então porque não está a funcionar?

@Ilyas@Slava?