Domande dai principianti MQL4 MT4 MetaTrader 4 - pagina 125

 
novichok2018:

E non dovrebbe essere visualizzato alcun messaggio di errore? Probabilmente non sarebbe male sapere perché un ordine non viene trovato e come evitarlo?

Secondo me, non è necessario. Fondamentalmente, OrderSelect terminerà con un errore solo se l'indice della stringa della lista non è corretto. Se l'indice è esatto, non si verificherà alcun errore. Quindi, l'errore di OrderSelect è un errore del programmatore, non un errore di runtime.

 
Ihor Herasko:

L'unico libro di testo MQL4 che conosco è quello di Sergei Kovalev.

Non so, forse non so come usare il libro di testo, ma non ho trovato nulla in esso sugli array o le strutture, specialmente come usarli e per quale scopo.

Il tuo codice sembra capire tutto, ma non capisco come usarlo nell'analisi della posizione.

Allo stesso tempo non riesco a risolvere la mia situazione senza gli array. Mi sembra di aver usato tutte le opzioni - bandiere, contatori di posizione, apertura di acquisto e vendita con funzioni separate, così come la chiusura. Nessuno di loro aiuta. Non appena si apre il buy e si chiude il sell, il terminale non vede le condizioni di chiusura finché non si apre un nuovo sell. Se non ci sono baie durante questo periodo, tutto funziona bene. Sarà abbastanza frustrante se gli array non aiutano.

Comunque, non vedo l'ora di ricevere altre raccomandazioni da parte tua. Grazie.

22.02 13.00 Penso di aver capito il motivo della mia situazione: per far chiudere le posizioni alle mie condizioni a seconda delle condizioni della loro apertura, assegno ad ognuna una magia diversa. Ma per fare questo, uso prima OrderSelect() dopo aver aperto una posizione. Così, ogni posizione crea una nuova magia quando OrderSelect() viene applicata e la precedente viene distrutta. Questo è il motivo per cui le condizioni sono ricercate dall'ultima magagna e se più baie (vendite) sono state aperte da condizioni diverse, saranno tutte chiuse dall'ultima posizione aperta (si può vedere nello Strategy Tester). Così, quando si apre una posizione di acquisto quando si apre una vendita, cambia il suo numero magico e il terminale non può trovare le condizioni per chiudere la vendita. Ho trovato la conferma di questo tramite le stampe. Ora resta da trovare come evitare una tale situazione. Chi può aiutare?

 
Qualcuno può aiutare ad adattare un EA da mettere sul mercato. Non riesco a capire i controlli (
 
novichok2018:

Non so, forse non so usare il libro di testo, ma non vi ho trovato nessuna parola sugli array o sulle strutture, figuriamoci come usarli e per cosa.

Il tuo codice sembra capire tutto, ma non capisco come usarlo nell'analisi della posizione.

Allo stesso tempo non riesco a risolvere la mia situazione senza gli array. Mi sembra di aver usato tutte le opzioni - bandiere, contatori di posizione, apertura di acquisto e vendita con funzioni separate, così come la chiusura. Nessuno di loro aiuta. Non appena si apre il buy e si chiude il sell, il terminale non vede le condizioni di chiusura finché non si apre un nuovo sell. Se non ci sono baie durante questo periodo, tutto funziona bene. Sarà abbastanza frustrante se gli array non aiutano.

Comunque, non vedo l'ora di ricevere altre raccomandazioni da parte tua. Grazie.

Questo tutorial è antico, è stato scritto per versioni di MT4 < 600, cioè per il vecchio MQL4, non aveva strutture. Gli array erano.

 
Alexey Volchanskiy:

Il tutorial è antico, scritto per versioni di MT4 < 600, cioè per il vecchio MQL4, non c'erano strutture. C'erano delle matrici.

La Guida contiene anche degli array, ma a cosa serve: non è chiaro come utilizzare gli array creati per chiudere/aprire le posizioni.

 
novichok2018:

Ci sono anche degli array nell'aiuto, ma a cosa serve: come usare gli array creati per chiudere/aprire posizioni non è chiaro.

))))))))) mi fa ridere. Perché avete bisogno degli array per aprire/chiudere le posizioni?

 
Alexey Volchanskiy:

))))))))) mi ha fatto ridere. Perché avete bisogno degli array per aprire/chiudere?

Se c'è una serie di scambi, e per ogni passo ci sono diversi parametri - lotto/sl/tp/distanza, allora è più facile passarli tutti in un array

 
Taras Slobodyanik:

Se c'è una serie di scambi, e per ogni passo ci sono diversi parametri lotto/sl/tp/distanza, allora è più facile passare tutto in un array

La situazione è descritta nel post 1243. Forse potresti essere in grado di aiutare? Grazie.

 

novichok2018:

Chi può aiutare?

Logica) Scrivere a parole un piano di ciò che l'EA dovrebbe fare, in quale sequenza, in quali condizioni (diagramma di flusso). Scrivere codice sarà molto più facile.

 
Aleksey Lebedev:

Logica) Scrivi un piano a parole, cosa dovrebbe fare l'Expert Advisor, in quale sequenza, in quali condizioni (diagramma di flusso). Scrivere codice sarà molto più facile.

Grazie a tutti. Penso di aver risolto il problema da solo: ho semplicemente rimosso tutte le magie e applicato delle bandiere per identificare le posizioni, per ogni condizione diversa. Semplice ed efficace. E senza array.

Se qualcuno degli esperti vede le insidie di questa soluzione, che non si sono ancora manifestate - sarebbe molto grato per un chiarimento.

Motivazione: