![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Ci potrebbe essere un numero qualsiasi di ragioni... I più noti sono la divisione per zero, lasciando l'array.
Grazie.
Cos'è l'output al di fuori dell'array? Mi scuso per la mia ignoranza.
Ho solo 3 divisioni:
Qui è dove la divisione per zero potrebbe potenzialmente verificarsi:
È necessario un controllo di base.
È quando, per esempio:
All'ultima iterazione ci sarà un'uscita fuori dall'array.
Qui è dove la divisione per zero potrebbe potenzialmente verificarsi:
È necessario un controllo di base.
Questo è quando, per esempio:
All'ultima iterazione ci sarà un'uscita fuori dall'array.
Bene, dobbiamo controllare se la funzione funziona correttamente?
Non ci sono problemi con un contatore come questo?
Bene, cosa succede quando il saldo va a zero e la funzione funziona correttamente? :)
L'istruzione for non ha il tipo di variabile i definito. La variabile Magic non è definita. Nella linea.
La funzione OrderSelect() non è necessaria. Non ho notato altro.problema con l'errore (Error CopyBuffer - numero di errore: 4806) - lo rimuovo, lo curo conSleep(1000); - lo attribuisco all'indicatore che non ha abbastanza tempo per creare.
Il problema dell'errore (4194304 byte non disponibili) rimane.
Molto probabilmente verrà creato. Ma prima di copiare i dati, dobbiamo controllare se i dati che vogliamo ricevere (l'indicatore ha avuto il tempo di calcolare?). La funzione BarsCalculated dovrebbe aiutare.
Poi richiedete tutti i timeframe per simbolo. Se questi dati sono pronti - vengono scaricati dal disco nella memoria, se non lo sono - si comincia a costruire (si consuma anche la memoria) + 100 indicatori con un periodo diverso per ogni TF, e tutto questo nella memoria. I dati non sono immediatamente scaricati dalla memoria (nel caso si voglia richiederli di nuovo)...
Riduci il numero di barre sul grafico.
L'istruzione for non ha il tipo di variabile i definito. La variabile Magic non è definita. Nella linea
OrderSelect() è ridondante. Non ho notato altro.Ce n'è uno fuori dall'operatore.
È probabile che sia stato creato. Solo prima di copiare i dati, dovreste controllare se i dati sono disponibili (l'indicatore si è stabilizzato?). La funzione BarsCalculated dovrebbe aiutare.
Poi richiedete tutti i timeframe per simbolo. Se i dati sono pronti - vengono scaricati dal disco nella memoria, se non lo sono - si comincia a costruire (si consuma anche la memoria) + 100 indicatori con un periodo diverso per ogni TF, e tutto questo nella memoria. I dati non vengono immediatamente scaricati dalla memoria (nel caso si voglia richiederli di nuovo)...
Riduci il numero di barre sul grafico.
Il numero di barre non cambia nulla,
Il problema è nascosto nei periodi, per le varianti
non funziona, 19-5=14 - periodi diversi,
Se sono ridotti a 4, allora tutto funziona, per esempio:
Anche se foru IndicatorRelease(m_handle) - è effettivamente utilizzato in modo errato.
Penso che anche se non rilasciate le maniglie con la funzione IndicatorRelease, dovrebbe funzionare comunque,
Quindi, il problema è nel numero di periodi diversi.
Oppure...