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
Non capisco cosa c'è che non va. È una linea di minimo.
Per sicurezza, copiate di nuovo il codice, l'ho cambiato periodicamente, forse avete una vecchia versione
Sì sì, devo cambiare la versione quando modifico il codice.
AUDUSD sembra essere a posto.
Andrò su EURUSD per gli anni della saldatura. Sarà lungo.
Vorrei aggiungere la settimana e il mese in una volta sola, se non è troppo difficile, e spostare le etichette come nell'esempio.
Per non guardare il grafico dieci volte. (già conoscono la storia a memoria).
Penso di poterne gestire 8 paia in un mese.
Non entrerò io stesso nel tuo codice (studierò tranquillamente il processo con le classi e così via usando il tuo esempio).
Quasi dimenticato (per fare un avviso come un avvertimento se non c'è storia o la linea non ha cambiato i suoi valori)
Nuova versione. Qui disegna tre periodi: giorno, settimana e mese. C'è un ma, che scriverò di seguito.
La sfumatura è che in un caso stiamo confrontando il giorno precedente alla storia e nell'altro stiamo confrontando la settimana precedente. Si scopre che ieri può appartenere alla settimana in corso, ma il suo massimo può essere superiore al massimo della settimana precedente.
E poiché stiamo confrontando i giorni con i giorni e le settimane con le settimane, potrebbe risultare che le linee dei massimi giornalieri siano più alte dei massimi settimanali. Come qui:
Ma questa è la tua logica, pensa se ne hai bisogno o no.
A proposito, c'è anche un errore out-of-array:
Il ciclo passa attraverso l'array di barre giornaliere, e selezioniamo elementi dall'array di barre settimanali.
Grazie a Dmitry Fedoseev per l'idea di ottenere il numero della settimana dell'anno.
L'ho trovato in questo articolo:https://www.mql5.com/ru/articles/599
Ben fatto, Dima!A proposito, c'è anche un errore out-of-array:
Il ciclo passa attraverso l'array di barre giornaliere, mentre noi selezioniamo elementi dall'array di barre settimanali.
C'è un errore evidente qui, questa linea è stata aggiunta nel processo di discussione e il copia-incolla ha giocato il suo ruolo.
Era così fin dall'inizio e andare fuori dalla matrice è ancora rilevante.
Può sembrare che ci dimentichiamo dell'errore array out of range in , perché non ti sei sentito pigro e hai fornito un codice molto più avanzato (molte grazie a te per questo).
Ma voglio ancora capire qual è il problema (dato che si accede a questo array da altri posti dell'EA, e quello che succede lì rimane un mistero)
Ho notato (Dove viene salvato il valore restituito del tipo int? Hai passato tutti i dati nella funzione, ma non hai ottenuto la merda) ho aggiunto .
Era così:
ArrayCopyRates(Bar_data_D1,_Symbol,PERIOD_D1); // Copia i dati delle barre del grafico specificato in un array e restituisce il numero di barre copiate
ArrayCopyRates(Bar_data_W1,_Symbol,PERIOD_W1); // Copia i dati delle barre per un grafico specificato in un array e restituisce il numero di barre copiate
ArrayCopyRates(Bar_data_MN1,_Symbol,PERIOD_MN1); // Copia i dati delle barre di un grafico specificato in un array e restituisce il numero di barre copiate
Ora appare così:
ACR_D1 = ArrayCopyRates(Bar_data_D1,_Symbol,PERIOD_D1); // Copia i dati delle barre del grafico specificato in un array e restituisce il numero di barre copiate
ACR_W1 = ArrayCopyRates(Bar_data_W1,_Symbol,PERIOD_W1); // Copia i dati delle barre per un grafico specificato in un array e restituisce il numero di barre copiate
ACR_MN1 = ArrayCopyRates(Bar_data_MN1,_Symbol,PERIOD_MN1); // Copia i dati delle barre in un grafico specificato in un array e restituisce il numero di barre copiate
Emettere il valore nella som
2020.12.12 16:51:31.536 2020.02.10 00:05:00 _Test AUDUSD,H1: i = 1001 Bar_data_D1 [i][2] = 0.7633799999999999
2020.12.12 16:51:31.536 2020.02.10 00:05:00 _Test AUDUSD,H1: i = 1002 Bar_data_D1 [i][2] = 0,76147
2020.12.12 16:51:31.536 2020.02.10 00:05:00 _Test AUDUSD,H1: i = 1003 Bar_data_D1 [i][2] = 0,75097
2020.12.12 16:51:31.536 2020.02.10 00:05:00 _Test AUDUSD,H1: array fuori range in '_Test.mq4' (150,59)
2020.12.12 16:51:31.537 2020.02.10 00:05:00 Il passaggio dei test si è fermato a causa di un errore critico nell'EA
2020.12.12 16:51:31.537 AUDUSD,H1: 65147 eventi tick (73 barre, 9291875 stati delle barre) elaborati in 0:00:02.407 (tempo totale 0:00:05.672)
Perché c'è così poca storia copiata nell'array?
Da dove e come vengono questi valori?
A proposito, c'è anche un errore out-of-array:
Il ciclo passa attraverso l'array di barre giornaliere, e selezioniamo elementi dall'array di barre settimanali.
Dovremmo capire subito la dimensione della matrice del TF giornaliero e cronometrarla e non andare oltre il tempo.
Probabilmente risolverei le barre settimanali in modo diverso. Otterrei i livelli di prezzo con le date a quelle settimanali, se sono necessarie, e le riempirei in un array separato e le confronterei con questo array. O meglio, è così che faccio io. Per ogni TF ho il mio array di estremi.
Non sto facendo paragoni, sto parlando di array
E capire immediatamente la dimensione della matrice TF giornaliera e cronometrarla e rimanere in tempo.
Probabilmente risolverei quelli settimanali in modo diverso. Otterrei i livelli di prezzo con le date a quelle settimanali, se sono necessarie, e le riempirei in un array separato e le confronterei con questo array. O meglio, è così che faccio io. Per ogni TF ho il mio array di estremi.
Non sto facendo paragoni, sto parlando di array.
(Otterrei i livelli di prezzo con le date, se sono necessari, e li riempirei in un array separato e li confronterei con quell'array)
Non sappiamo quali ci servono e quali no, abbiamo bisogno di tutta la storia possibile di tutti i bar.
ArrayCopyRates
Copia i dati delle barre del grafico specificato in un array e restituisce il numero di barre copiate.
intArrayCopyRates(
MqlRates&rates_array[],// array MqlRates passato dal riferimento
stringasymbol=NULL,// lo strumento
inttimeframe=0// timeframe
);
Dove non è chiaro?
Non riesco a capire la connessione
Vede 323 mesi che è da qualche parte vicino a 27 anni, 1403 settimane, 7015 giorni
Storia di AUDUSD dal 1993, 2020-1993= 27
(Prendi i livelli di prezzo con le date, se necessario, e mettili in un array separato e confrontali con questo array).
Non sappiamo quali ci servono e quali no, abbiamo bisogno di tutta la storia possibile di tutti i bar.
ArrayCopyRates
Copia i dati delle barre del grafico specificato in un array e restituisce il numero di barre copiate.
intArrayCopyRates(
MqlRates&rates_array[],// array MqlRates passato dal riferimento
stringasymbol=NULL,// lo strumento
inttimeframe=0// timeframe
);
Dove non è chiaro?
Non riesco a capire la connessione
Vede 323 mesi che è da qualche parte vicino a 27 anni, 1403 settimane, 7015 giorni
Storia di AUDUSD dal 1993, 2020-1993= 27
Nessuna idea in ciò che può essere misurato o determinato. Prima misuriamo la portata e sappiamo.
Se scriviamo tutti gli estremi nei dati giornalieri su 27 anni e identifichiamo quelli uguali, saranno troppi. Il compito è simile all'identificazione delle copie su un disco, solo più semplice.