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.

[Excluído]

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?