Errori, bug, domande - pagina 2863

 
Konstantin Efremov:

No. In tali costruzioni, l'unica soluzione è convertire l'indicatore in una classe e aggiungerlo all'Expert Advisor come istanza della classe, poi si può costruire la sequenza di calcoli

Il punto è che l'indicatore stesso è una classe separata che funziona con qualsiasi indicatore di base dello stesso tipo. Questo è molto brutto, a meno che non ci sia qualche soluzione complicata.

 

Ho una domanda sul puzzle.

Confronta le due immagini e dimmi qual è il trucco?

1. L'Expert Advisor è in esecuzione sul grafico.


2. Il secondo è lo stesso Expert Advisor. Il grafico dopo un singolo test.


 
Potete dirmi se questo è possibile?
#define  VALUE 10

#define  MACROS

#ifdef  MACROS
  // Нужно VALUE увеличить в два раза.
#endif
 
fxsaber:
Potete dirmi se questo è possibile?
#define  VALUE 10

#define  MACROS

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

o

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

o

Non ho accesso alla definizione originale di VALORE. Altrimenti, ovviamente, farei la stessa opzione.

 
fxsaber:
Potete dirmi se questo è possibile?

Per qualche motivo non funziona:

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

Per qualche motivo non funziona:

#define  INITIAL_VALUE 10
#define  VALUE INITIAL_VALUE

#ifdef  MACROS
  #define  VALUE 2*INITIAL_VALUE
#endif
Probabilmente proprio come questo
 
TheXpert:
Probabilmente è l'unico modo

Sfortunatamente, la sfida non è stata vinta.

 
Non è possibile creare un sondaggio nel forum, cliccando su crea si torna alla pagina iniziale.
 
TheXpert:
Probabilmente è l'unico modo.

Allora perché non funziona?

@Ilyas@Slava?

Motivazione: