Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Sto ancora imparando la complessità degli indicatori e ho delle domande. Ho resettato il buffer dell'indicatore in OnInit(), ma per qualche motivo i buffer non vengono resettati durante la compilazione dell'indicatore. Per la logica, dopo la compilazione ci dovrebbe essere una cella piena per ogni buffer . Dove sbaglio?
if(rates_total-8==i)// || rates_total-5==i || rates_total-2==i) { ColorHistogram_2Buffer1[i]=high[i]; ColorHistogram_2Buffer2[i]=low[i]; ColorHistogram_2Colors[i]=0; }
Sto ancora imparando la complessità degli indicatori e ho delle domande. Ho resettato il buffer dell'indicatore in OnInit(), ma per qualche motivo i buffer non vengono resettati durante la compilazione dell'indicatore. Per logica, ci dovrebbe essere una cella piena per ogni buffer dopo la compilazione, ma nell'immagine si può vedere che ce ne sono molte (penso che queste siano le celle del buffer precedente). Dove sbaglio?
In OnInit i buffer degli indicatori hanno lunghezza zero.
Ecco perché possono fare tutto quello che vuoi, a loro sembra tutto un lavoro da morto.
E quando l'esecuzione del codice passa a OnCalculate, la dimensione diventa immediatamente uguale a rates_total.
e c'è "spazzatura" in tutte le celle dell'array. Potrebbero esserci anche avanzi del calcolo dei vecchi indicatori.
In OnInit, i buffer degli indicatori hanno lunghezza zero.
È per questo che si può fare tutto quello che si vuole con loro, sono una prova schiacciante.
E quando l'esecuzione del codice passa a OnCalculate, la dimensione diventa immediatamente uguale a rates_total.
e tutte le celle dell'array hanno "spazzatura" al loro interno. Potrebbe esserne rimasto un po' dal calcolo del vecchio indicatore.
Grazie mille, ho capito tutto e ha funzionato! L'ha fatto così:
Grazie mille, è andato tutto bene! Ho fatto così:
Perché assegnare un valore a una variabile due volte?
E una domanda: che senso ha fare tutto questo? Dopo tutto, passando attraverso tutte le barre nel ciclo, tutte le celle dell'array devono essere comunque riempite con qualcosa. A meno che l'indicatore non debba mostrare solo la posizione corrente, ma allora l'array deve essere inizializzato su ogni barra, non solo all'inizio...
Perché assegnare un valore a una variabile due volte?
E la domanda è: perché abbiamo bisogno di tutto questo? Dopo tutto, passando attraverso tutte le barre nel ciclo, tutte le celle dell'array devono essere riempite con qualcosa, comunque. A meno che l'indicatore non debba mostrare solo la posizione corrente, ma allora l'array dovrebbe essere inizializzato su ogni barra, non solo all'inizio...
In questo esempio, volevo solo capire come resettare il buffer. Ma in futuro (nell'indicatore su cui sto lavorando ora), avrò bisogno sia di lasciare le celle precedenti che di aggiungerne di nuove. E proprio su questo ho iniziato a lavorare, per così dire, le prime prove.
Non ero sicuro che tutte le azioni con il grafico siano imitate da OnInit(), per esempio il cambio di taimfreim. Cambiando il reset di taimfreim (controllato ora), ma forse c'è qualcos'altro, così ho messo il secondo in OnInit() per essere sicuro. Ma se non è così, allora non lo metterò lì.
Ahh. Ebbene sì, le variabili di livello globale non vengono inizializzate quando cambia il periodo del grafico. Credo... non riesco a ricordare esattamente.
E in generale si può fare a meno di quella variabile extra bool.
E in generale, si può fare a meno di questa variabile bool extra.
Sì, esattamente, ancora meglio, grazie.
Potete dirmi perché, se il periodo è più di 30 minuti, restituisce un numero così strano?
KP 0 14:33:22.423 Test_DRAW_COLOR_HISTOGRAM2 (EURUSD,M30) PERIODO: 30
GG 0 14:33:24.402 Test_DRAW_COLOR_HISTOGRAM2 (EURUSD,H1) PERIOD: 16385
RJ 0 14:33:25.675 Test_DRAW_COLOR_HISTOGRAM2 (EURUSD,H4) PERIODO: 16388Potete dirmi perché se il periodo è più di 30 minuti, restituisce un numero così strano?
In MT5, i valori del periodo non sono uguali al numero di minuti, come in MT4