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
Ho capito che ho usato la nuova descrizione - quelle vecchie
non sono nella descrizione, ma sono comunque evidenziati dall'editorQuando si utilizza questa funzione c'è un errore "2012.11.28 09:58:32 4194304 byte non disponibili", aiutare a capire, aumentato il file di swap a 10GBt.
Yedelkin:
А лог-файл случайно алёртами не забивается?
Controllato, il registro è di 10 kBt, ce ne sono stati altri,
Errore "MemoryException 09:36:12 4194304 bytes not available", si ripete spesso.
Notato (dal codice precedente):
// Selezione del periodo dalla matrice per indice (da PERIOD_M5 (indice - 5) a PERIOD_D1 (indice - 19))
Se vengono presi meno periodi (ad esempio da PERIOD_M5 a PERIOD_M6) per l'enumerazione, non si verifica alcun errore.
// Selezione di un periodo da un array per indice (da PERIOD_M5 (indice - 5) a PERIOD_D1 (indice - 19))
1. di quale tipo di array stiamo parlando?
2. Quale valore è contenuto in questo array sotto l'indice - per esempio 19?
1. di che tipo di array stiamo parlando?
2. Quale valore è contenuto in questa matrice dall'indice, per esempio 19?
Penso che sia più facile farlo, ho scritto la funzione come un esperto separato, puoi eseguirla e vedere da solo.
Se avete tempo e desiderio di aiuto. (L'errore è lo stesso).
Codice duplicato:
Il file è allegato. Parametri del tester (non si sa mai)
EURUSD.e
H1
OHLC
2012.1.1 - 2012.4.1
Aggiornando una domanda, sono interessato a due errori:
1. 2012.11.28 11:45:18 4194304 byte non disponibili
Non posso ancora risolverli, ma se invece di enumerare i periodi m_periodo = PERIOD_INDEX[iperiodo], impostate per esempioPERIOD_H1, non ci sarà alcun errore,
ma ho bisogno di tutti i periodi.
2. 2012.11.28 11:45:49 2012.01.01 00:00:00 Alert: Errore CopyBuffer - numero di errore: 4806
per risolvere questo errore, decommenteròSleep(1000); scomparirà e i dati del buffer saranno copiati normalmente.
domanda: perché? è possibile fare a meno diSleep(1000), per evitare ulteriori perdite di tempo?
Purtroppo non ho un tester a portata di mano.
Un po' di curiosità. Sul lato sinistro della linea avete
c'è una variabile di tipo int a sinistra e un valore di tipo ENUM_TIMEFRAMES a destra. Perché non dichiarate "ENUM_TIMEFRAMES m_period;" proprio nella quinta linea?
2. Avete un triplo ciclo annidato in cui uno stesso indicatore viene chiamato in un tempo piuttosto breve. Solo per un simbolo si verificano circa 1400 chiamate. Gli indicatori usati non hanno il tempo di liberare la memoria. Cerca nelle discussioni del forum sulla funzione IndicatorRelease(). Una volta è stato detto che l'uso di questa funzione nel codice è già un errore.
Un rapido cambio di indicatori nel codice spiega anche la comparsa dell'errore 4806. Il nuovo indicatore semplicemente non ha tempo per caricare i dati necessari.
Puoi dirmi come sbarazzarmi di Abnormal termination?
L'EA smette di funzionare e questo può essere visto solo nel log, è verde sul grafico.
Ho cambiato il codice tenendo conto dei vostri commenti:
(corretto m_periodo = PERIOD_INDEX[iperiodo];, l'errore non è significativo in questo caso - ma grazie, l'ho corretto)
problema con l'errore (Error CopyBuffer - error number: 4806) - rimosso, l'ho curato con Sleep(1000); - l'ho messo giù per non avere abbastanza tempo per creare l'indicatore.
Il problema dell'errore (4194304 byte non disponibili) rimane.
L'osservazione su IndicatorRelease() - presa in considerazione nell'elaborazione.
Se qualcuno ha pensieri, si prega di condividere, grazie.