Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 618
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
Può dirmi perché questo potrebbe essere il caso? :
Fun_1() e Fun_2() sono simili.
Potete dirmi per favore cosa potrebbe essere la causa di questo? :
Fun_1() e Fun_2() sono simili.
accademicamente - le funzioni non sono pure e cambiano lo stato globale.
brevemente - entrambe le funzioni leggono e scrivono una variabile globale o un file.
accademicamente - le funzioni non sono pure e cambiano lo stato globale.
in breve - entrambe le funzioni leggono e scrivono una variabile globale o un file.
Sì, ognuno di loro scrive un file. Quindi?
e non lavorano insieme :-)
PS. è impossibile dire con più precisione la fonte dei colpi sotterranei senza fonti. Da qualche parte c'è un errore - correggilo
Per risparmiare spazio e migliorare la percezione - in una sola funzione. Ancora non funziona.
per il futuro - se avete bisogno del risultato della funzione (almeno lavorato/non lavorato), non rendetelo nullo. Ad uno sguardo superficiale è difficile determinare che c'è un criterio di "innescato" - è vuoto, non importa come si lancia tutto è buono.
sui diritti del debugger:
Hai un mucchio di variabili globali Count_XXX, Range_XXX, che converti (più gli array dSSxx[]), li usi per decidere se registrare o meno e poi li passi da qualche parte, o per riferimento o per valore...
c'è ovviamente qualcosa di sbagliato nel loro ricalcolo - Count_dSS ottiene 0 quando lo chiami di nuovo. La stampa può aiutare a capirlo o i punti di rottura e guardare.
per il futuro - se avete bisogno del risultato della funzione (almeno ha funzionato o no), non rendetelo nullo. A colpo d'occhio, è difficile determinare quale sia il criterio di "innescato" - è vuoto, non importa come lo lanci, tutto è buono.
sui diritti del debugger:
avete un mucchio di variabili globali Count_XXX, Range_XXX, che convertite (più gli array dSSxx[]), in base ad esse decidete se registrare o meno e poi passate da qualche parte o per riferimento o per valore...
c'è ovviamente qualcosa di sbagliato nel loro ricalcolo - Count_dSS ottiene 0 quando lo chiami di nuovo. La stampa può aiutare a capirlo o i punti di rottura e guardare.
Una versione semplificata:
// Ci sono due array dinamici A[][2] e B[][2]
// stiamo cercando delle corrispondenze per l'indice della prima dimensione "0".
// Matrice A Matrice B
// 31 25 19 66
// 44 15 62 30
// 62 47 54 71
// 31 94
// Vogliamo ottenere:
// Array dSSd[][4] Array dSSw[][4]
// 31 25 31 94 31 94 31 25
// 62 47 62 30 62 30 62 47
Quale richiamo ha in mente?
Una versione semplificata:
Mi riferisco a una funzione simile alla prima (che può essere diversa nei dettagli). Hai fatto la stessa domanda - perché queste funzioni funzionano separatamente, ma una dopo l'altra (indipendentemente dall'ordine) no. Più precisamente, solo la prima funzione funziona e registra qualcosa.
bene - scopa lo stato globale, cioè la prima chiamata della prima di queste funzioni ha cambiato o le variabili globali o il contenuto degli array. Perché? Dovresti saperlo meglio, perché dovrebbe cambiare quando si scrive su un file:-) Onestamente - sfondare
Io, per esempio, lo trovo difficile e riluttante. Procuratevi un debugger o mettete già delle stampanti in tutti i posti sospetti. Capite la logica dei nomi e avete un'idea di come dovrebbe funzionare (non coincide con la realtà però :-) ).
PS/ dalla spiegazione di cosa c'è in ingresso e cosa in uscita, vedo che invece di due array dSSx[][4] è sufficiente e uno dSS[][3] :-)
Mi riferisco a una funzione simile alla prima (che può essere diversa nei dettagli). Hai fatto la stessa domanda - perché queste funzioni funzionano individualmente, ma una dopo l'altra (indipendentemente dall'ordine) no. Più precisamente, solo la prima funzione funziona e registra qualcosa.
Quindi - lo stato globale è fottuto, cioè la prima chiamata della prima di queste funzioni ha cambiato le variabili globali o il contenuto degli array. Forse tu sai meglio perché dovrebbero cambiarlo quando scrivono sul file:-). Onestamente - sfondare
Io, per esempio, lo trovo difficile e riluttante. Procuratevi un debugger o mettete già delle stampanti in tutti i posti sospetti. Capite la logica dei nomi e avete un'idea di come dovrebbe funzionare (che non coincide con la realtà :-) )
PS/ dalla spiegazione di cosa c'è in ingresso e cosa in uscita, vedo che invece di due array dSSx[][4] è sufficiente e uno dSS[][3] :-)