Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 76
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
problema risolto confrontando i prezzi
In questo contesto, il mio punto è questo:
Per questo motivo, sarebbe meglio avere degli array globali - per gli ordini e le posizioni chiuse e aperte. Una volta su un nuovo tick, passiamo la quantità necessaria di ordini/posizioni una volta, riempiendo i due array con essi. E poi riceviamo da loro tutti i dati necessari nello stesso tick. Si noti che non solo l'ultimo ordine/posizione chiuso/aperto e tutti i suoi dati sono calcolati, ma anche tutti i tick genitori e figli di tutte le posizioni sono cercati in caso di chiusura parziale. Di conseguenza, in qualsiasi momento posso vedere quale biglietto ha avuto origine da una o un'altra posizione, se è stato chiuso parzialmente più di una volta - tutto questo funziona già in una classe che gira in un timer. Ho molti altri dati di cui ho bisogno con un piccolo numero totale di cicli. La profondità di storia necessaria per gli array è impostata per il tester.
E così via...
Mi dispiace. Un'altra aggiunta (non per controbilanciare, ma come aggiunta), vorrei aggiungere che gli array locali constatic non sono persi. Cioè, se le condizioni vi permettono di farlo senza dichiararle globalmente.
Ora lo sto lentamente riscrivendo per 5. Voglio dire che il prezzo può cambiare molto rapidamente e il livello può essere inferiore al valore dello stop-loss, il che porterà ad un errore. Voglio dire che il prezzo può cambiare molto rapidamente e il livello sarà inferiore al livello di stop consentito, il che porterà ad un errore.
Ho capito che questa cosa"SymbolInfoTick" è necessaria per ottenere il prezzo corrente?
Quindi, per ottenere gli attuali Ask e Bid in mql4, il refresh avrebbe dovuto essere chiamato comunque. E si scopre che è improbabile che il carico cambi rispetto alla chiamata di SymbolInfoTick().
Ma ecco un'altra aggiunta: scrivo SymbolInfoTick() nel seguente ciclo per ottenere prezzi accurati
while(!SymbolInfoTick(_Symbol, mqlTick));
Se otteniamo prezzi normali dalla prima volta, questo ciclo non aumenterà il tempo di esecuzione. E se c'è qualche fallimento, è meglio ripetere che ottenere lo stesso prezzo al posto di quello attuale.
Quindi, per ottenere gli effettivi Ask e Bid in mql4, devi comunque chiamare refresh. E si scopre che è improbabile che il carico cambi rispetto alla chiamata di SymbolInfoTick().
Ma ecco un'altra aggiunta: per ottenere senza errori i prezzi reali, ho messo SymbolInfoTick() in questo ciclo
while(!SymbolInfoTick(_Symbol, mqlTick));
Se otteniamo prezzi normali dalla prima volta, questo ciclo non aumenterà il tempo di esecuzione. E se c'è qualche fallimento, è meglio ripetere che ottenere lo stesso prezzo al posto di quello attuale.
Capisco, ma dove dovrei metterlo, dentro il ciclo o prima?
Quindi, per ottenere gli effettivi Ask e Bid in mql4, devi comunque chiamare refresh. E si scopre che è improbabile che il carico cambi rispetto alla chiamata di SymbolInfoTick().
Ma ecco un'altra aggiunta: per ottenere senza errori i prezzi reali, ho messo SymbolInfoTick() in questo ciclo
while(!SymbolInfoTick(_Symbol, mqlTick));
Se otteniamo prezzi normali dalla prima volta, questo ciclo non aumenterà il tempo di esecuzione. E se c'è qualche fallimento, è meglio ripetere che ottenere lo stesso prezzo al posto di quello attuale.
E se non riceve affatto? Come si fa a rallentare il ciclo?
Sì, logicamente potrebbe essere, per esempio, il terminale ha perso la connessione - ci sono molte ragioni per questo, l'ho avuto 50 volte al giorno.
Qual è il modo migliore per ottenere prezzi aggiornati, pur essendo meno dispendioso in termini di risorse, si badi bene - per la rete a strascico.
Sì, logicamente potrebbe essere, per esempio, il terminale ha perso la connessione - ci sono molte ragioni per questo, l'ho avuto 50 volte al giorno.
Qual è il modo migliore per ottenere prezzi aggiornati, pur essendo meno dispendioso in termini di risorse, ricorda - per la rete a strascico.
Controlla indietro di 10 pagine, c'è uno schema abbastanza buono lì.