[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 656
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
Cosa può causare lo stack overflow? Quando aprite una posizione con una grande presa (la presa è calcolata dalla volatilità e moltiplicata per 100, la dimensione è 41*100), allora uno stack overflow viene scritto nel log e... ...prendilo e basta. Non si aprono altre posizioni finché questa non si chiude, e questa, ovviamente, non si chiuderà a causa dell'enorme TP... E l'EA non funziona affatto correttamente, perché dovrebbe chiudere tutte le posizioni quando viene raggiunto il profitto totale predefinito delle posizioni aperte... Ma non succede, anche se questa posizione è stata in enorme profitto per molto tempo, circa duemila punti... Come posso combatterlo? Beh, non si può essere sicuri contro la situazione in cui tutte le posizioni aperte traboccheranno nello stack, e tutto andrà sottosopra...
lo stack non può traboccare solo con un numero che è fuori dall'intervallo del tipo - ci sarà un altro errore
i dati passati in una funzione o una chiamata ricorsiva a una funzione senza uscire possono far traboccare lo stack.
start() è anche una funzione - forse hai molte variabili lì.
lo stack è una regione di memoria dove sono memorizzati i valori intermedi (variabili locali) di una funzione; potreste rompere lo stack se state usando array dinamici e non avete controllato correttamente lo scopo dell'array, cioè, state scrivendo dati non in un array, ma in una regione di memoria che viene subito dopo l'array
provare a spostare alcuni degli array in variabili globali - metterli in cima alla scheda
ZS: almeno è lo stesso in tutti i linguaggi di programmazione - penso che sia lo stesso in mql
lo stack non può traboccare solo con un numero che è fuori dall'intervallo del tipo - ci sarà un altro errore
i dati passati in una funzione o una chiamata ricorsiva a una funzione senza uscire possono far traboccare lo stack.
start() è anche una funzione - forse hai molte variabili lì.
lo stack è una regione di memoria dove sono memorizzati i valori intermedi (variabili locali) di una funzione; potreste rompere lo stack se state usando array dinamici e non avete controllato correttamente lo scopo dell'array, cioè, state scrivendo dati non in un array, ma in una regione di memoria che viene subito dopo l'array
provare a spostare alcuni degli array in variabili globali - metterli in cima alla scheda
ZS: almeno è lo stesso in tutti i linguaggi di programmazione - penso che sia lo stesso in mql
Igor, sai che finora ho evitato di usare gli array... Ho solo un paio di array nel mio codice - un array di ordini prima del tick e un array di ordini dopo il tick. Li ho definiti nell'area delle variabili globali. La cosa divertente è che ho spostato il codice per aprire queste posizioni altrove nell'EA e l'errore è scomparso. Sembra che ci fosse una chiamata ricorsiva per aprire gli ordini, anche se non me ne sono preoccupato. Ho semplicemente deciso che non sarebbe stato opportuno mettere l'apertura immediatamente dopo la chiusura di tutte le posizioni nel codice per controllare se il profitto totale era stato raggiunto e tutte le posizioni erano chiuse... Ho fatto un casino... :)
Ho fatto un modello per la creazione di un EA - quando viene piazzato un ordine, il flag di tale ordine è immediatamente impostato e dopo, prima di aprire un nuovo ordine di questo tipo, controllo sempre il flag - se l'ordine esiste, ma sto scrivendo EA con un solo ordine
Ho fatto da tempo un modello per creare un EA - quando piazzo un ordine, imposto immediatamente un segno (flag) che tale ordine esiste, e poi prima di aprire un nuovo ordine di questo tipo controllo sempre il flag - se tale ordine esiste, ma scrivo EA con un solo ordine
Sì, ho ottenuto "0", ma cosa dovrei fare? Non posso farlo in entrambi i modi (ho anche provato periodi uguali), ho provato sia Print("NormalizeDouble(c1b_1..."), ma ho ottenuto degli zeri (solo c1b[i] mostra il valore, tutti gli altri compresi c1s[i] sono zeri), può aiutarmi a portare uno di loro a una condizione di lavoro o condividere un suggerimento, se si nota qualche difetto?
Nuovo:
Vecchio:
Intero:
Yuri, in futuro, se il codice viene ripetuto almeno due volte, dovrebbe essere assegnato a un metodo, e non avrai bisogno di cumuli di array che ingombrano il codice.
Ecco un metodo per voi:
Penso che tutto sia chiaro con i parametri, inserite i dati e variando il parametro ma_shift ottenete lo spostamento di cui avete bisogno. Si noti che questo metodo può essere utilizzato come modello, basta cambiare i metodi di accesso per gli indicatori i...(...) o iCustom(...). Ora il tuo blocco di decisioni di trading appare come dovrebbe essere:
Di conseguenza non c'è più bisogno di varianti "vecchie" e "nuove", i trade vengono aperti in base a determinati criteri (per quanto ho capito hai un modello a tre barre di top/troughs lisciato iCC). C'è una variante corretta nel file.
Salve.
Potete per favore darmi il codice per scrivere i prezzi da quando l'ordine è stato aperto nell'array.
Come fare in modo che ogni nuovo prezzo sia aggiunto all'array.
Salve.
Potete per favore darmi il codice per scrivere i prezzi da quando l'ordine è stato aperto nell'array.
Come fare in modo che ogni nuovo prezzo sia aggiunto all'array.
Per favore, sii più specifico nella tua domanda
Se siete interessati al prezzo corrente al momento dell'ordine, potete aggiungere una chiamata al codice che sarà responsabile della memorizzazione del prezzo corrente nell'array globale con la modifica del contatore dell'indice dell'array, che potrete visualizzare in seguito da qualsiasi punto del codice.
come controllare le prestazioni di un EA - vorrei solo visualizzare il tempo di esecuzione del codice in millisecondi
quanto è migliore la performance di MT5 rispetto a MT4
come controllare le prestazioni di un EA - vorrei solo visualizzare il tempo di esecuzione del codice in millisecondi
quanto è migliore la performance di MT5 rispetto a MT4
GetTickCount aiuterebbe https://docs.mql4.com/ru/common/GetTickCount
GetTickCount aiuterà https://docs.mql4.com/ru/common/GetTickCount
grazie sì, è quello che stavo cercando, qualcuno ha misurato la velocità dello stesso tipo di codice per mt4 e mt5?