Domande da un "manichino" - pagina 268

 
DC2008:

Non ne sono sicuro, ma probabilmente è a causa di questo:

Non ho ArrayResize, per INDICATOR_DATA e INDICATOR_CALCULATIONS la dimensione è impostata dal terminale, e disegna dalla barra 0


Poi si scopre che tutto ArrayInitialize(array,EMPTY_VALUE); non funziona nemmeno per la barra zero?



 
Silent:

Non ho ArrayResize, il terminale imposta la dimensione per INDICATOR_DATA e INDICATOR_CALCULATIONS e la disegna dalla 0a barra

Forse non lo sai, ma gli array sono dinamici e ogni timeframe ha un numero diverso di barre! Passare da uno all'altro cambia la dimensione degli array (questo viene fatto senza la tua partecipazione) e vedi la spazzatura.

Документация по MQL5: Доступ к таймсериям и индикаторам / Bars
Документация по MQL5: Доступ к таймсериям и индикаторам / Bars
  • www.mql5.com
Доступ к таймсериям и индикаторам / Bars - Документация по MQL5
 
Silent:

Poi si scopre che tutto ArrayInitialize(array,EMPTY_VALUE); non funziona nemmeno per la barra zero?

Nel vostro caso, è l'ultimo elemento dell'array (anche se è alla barra 0), perché l'indicizzazione di default è da sinistra a destra.

 
DC2008:

Potresti non farlo, ma gli array sono dinamici e ogni timeframe ha un numero diverso di barre! Passare da uno all'altro cambia le dimensioni dell'array (questo viene fatto senza la tua partecipazione) e tu vedi spazzatura.

Sembra essere logico. Allora l'inizializzazione dei buffer degli indicatori nell'inite non ha alcun senso, tutto dovrebbe essere fatto in OnCalculate

DC2008:

Nel vostro caso, è l'ultimo elemento dell'array (anche se è sulla barra 0), perché per default è indicizzato da sinistra a destra.

Giusto, non l'ho ancora girato.

 
Grazie a tutti!
 

Corretto un errore, capovolto gli array, pasticciato con ArrayInitialize (lasciato per ora)...

Sembra che sia impossibile sbarazzarsi della spazzatura a Inite. Anche PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,countBars); non lo fermerà; può apparire all'inizio del grafico o alla fine.

Lo lascerò in un trailer, forse gli sviluppatori lo guarderanno.

PS ma la comparsa di spazzatura nello stesso posto sul grafico dopo la rimozione dell'indicatore e/o la ricompilazione - è una lattina.

una tale bellezza...


File:
 
Silent:

Corretto un errore, capovolto gli array, pasticciato con ArrayInitialize (lasciato per ora)...

Sembra che sia impossibile sbarazzarsi della spazzatura a Inite. Anche PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,countBars); non lo fermerà; può apparire all'inizio del grafico o alla fine.

Lo lascerò in un trailer, forse gli sviluppatori lo guarderanno.

PS ma la comparsa di spazzatura nello stesso posto sul grafico dopo la rimozione dell'indicatore e/o la ricompilazione - è una lattina.

Una tale bellezza...

Ecco, sembra funzionare come si deve:

void OnDeinit(const int reason)
  {
   ArrayResize(USDBuffer,1);
   ArrayResize(EURBuffer,1);
   ArrayResize(GBPBuffer,1);
   return;
  }
 
DC2008:

Ecco, sembra che funzioni come vuoi tu:

No, è anche littering, si capisce dai numeri in alto a sinistra.

Funziona solo dopo aver caricato queste celle in OnCalculate

   ArrayInitialize(USDBuffer,EMPTY_VALUE);
   PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,countBars);
   ArrayInitialize(EURBuffer,EMPTY_VALUE);
   PlotIndexSetInteger(1,PLOT_DRAW_BEGIN,countBars);
   ArrayInitialize(GBPBuffer,EMPTY_VALUE);
   PlotIndexSetInteger(2,PLOT_DRAW_BEGIN,countBars);

La tua versione sembra essere corretta. La spazzatura è causata dall'auto-rendering degli array. E sembra anche chiaro perché si ripete.

Se il terminale cambia la dimensione, per esempio, da 1 000 a 10 000, alloca una stessa porzione di memoria non liberata, e non importa quante volte ricarichi l'indicatore - dalla 1 001esima alla 9 999esima cella rimane con valori di sinistra.

aggiornato ho ancora una domanda: perché cambiando qualcosa nella funzione f_comment (colore cambiato) e le successive modifiche di compilazione non vengono applicate all'indicatore di riavvio nel terminale.

File:
 
È possibile costruire un grafico a candele dei parametri di alcuni strumenti in una finestra separata? Per esempio, il broker "Otkritie" ha lo strumento RTS-9.13 e per esso costruire un grafico di ordini di acquisto, i cui valori sono visualizzati nella finestra "panoramica del mercato
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
vicleo:
È possibile costruire un grafico a candele dei parametri di alcuni strumenti in una finestra separata? Per esempio, il broker "Otkritie" ha lo strumento RTS-9.13 e per esso costruire un grafico di ordini di acquisto, i cui valori sono visualizzati nella finestra "panoramica del mercato
Broker e chiedere).