Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 461

 

Qual è il problema con il codice? Cambio il timeframe per l'indicatore usando i pulsanti del pannello
ma il commento restituisce un numero incomprensibile

   zz_handle=iCustom(_Symbol,TF,"Examples\\ZigZag",ExtDepth,5,3);
   int _bars=Bars(_Symbol,TF);
   ArrayFree(zz_time);
   ArrayFree(zz_value);
   CopyBuffer(zz_handle,0,1,_bars,zz_value);
   CopyTime(_Symbol,TF,1,_bars,zz_time);
   Comment(zz_time[_bars-1]);
 
Roman Sharanov:

Qual è il problema con il codice? Cambio il timeframe per l'indicatore con i pulsanti del pannello
ma il commento restituisce un numero poco chiaro

Se non sono stupido, èComment(zz_time[0]);

 
Vitaly Muzichenko:

Se non sono stupido, èComment(zz_time[0]);

Non l'ho messo come una serie temporale, ho bisogno che vada dal fondo della storia all'ultima barra

 

Oh, ho trovato l'errore!

Sto copiando da 1 barra e il numero di barre conta dalla barra corrente, quindi andavo sempre fuori dall'array

Ho fattobars=Bars(_Symbol,TF) - 1; e almeno gli errori sono scomparsi

 
Roman Sharanov:

Oh, ho trovato l'errore!

Sto copiando da 1 barra e il numero di barre conta dalla barra corrente, quindi andavo sempre fuori dall'array

Ho fattobars=Bars(_Symbol,TF) - 1; e almeno gli errori sono scomparsi

Leggete attentamente cosa può fareCopyBuffer(handle,0,1,barre, valore);

 
lil_lil:

Dice: come faccio a farlo scrivere ogni 120 secondi entro 30 minuti dall'apertura del bar?

Ecco la risposta.

Forum sul trading, sistemi di trading automatico e test di strategia

Qualsiasi domanda, aiuto e discussione su algoritmi e codici per i principianti di MQL4

Alexey Viktorov, 2018.02.13 18:58

Se avete domande, non esitate a usare questo articolo, vi aiuteremo!

Allora perché scriverli? Prendete un giorno qualsiasi e leggete il prezzo di apertura dei minuti pari o dispari PERIOD_M1...
datetime начало_дня;
CopyOpen(_Simbol, PERIOD_M1, начало_дня, начало_дня+30*PeriodSeconds(PERIOD_M1));
Questo sarà un array di 30 elementi ogni 60 secondi. Ogni elemento pari della matrice sarà distanziato di 120 secondi.
 
Roman Sharanov:

Oh, ho trovato l'errore!

Sto copiando da 1 barra e il numero di barre conta dalla barra corrente, quindi andavo sempre fuori dall'array

Ho fattobars=Bars(_Symbol,TF) - 1; e almeno gli errori sono scomparsi

Mettere una direttiva all'inizio del programma:

#property strict

Quindi tutti gli errori, come l'overrun dell'array e la divisione per 0, causeranno l'arresto del programma e la stampa di un messaggio di log sull'errore, specificando la riga in cui si è verificato l'errore. Il 90% delle azioni "incomprensibili" del programma scomparirà subito.

 
snegosplav:
Buongiorno, per favore aiutatemi a migliorare il codice della copiatrice. Il problema è il seguente: EA (Slave) stampa il messaggio di nessun accesso al file, non importa quello che faccio... Cosa c'è che non va?

Decompilato da Artyom Trishkin

Nota per voi.

Come puoi postare il codice?
 
snegosplav:
E come puoi postare il codice?

Quella che avevi - non puoi - è una decompilazione. Per una recidiva, si viene bannati per 24 ore, poi in seguito: una settimana, un mese, 10 anni, cancellazione dell'account.

 
La funzione stessa può essere chiamata dalla funzione? e farlo finché la condizione è vera