![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Questo è GBPAUD H4 3.12.2018 giorno intero! E non ho saltato alla fine questa volta.
Può la funzione di stampa perdere alcuni rapporti quando ha troppo da stampare?
Immagino che un altro problema potrebbe essere perché i tick di questi 3 strumenti escono in diversi millisecondi, quindi quando usiamo la funzione start/OnTick su GBPAUD, fa solo la funzione start ogni volta che il tick GBPAUD esce. E immagino che il tuo codice potrebbe dire di restituire tutti i prezzi di queste 3 coppie quando nessuno di loro è 0. Se è così, restituisce ogni volta che tutti i prezzi ask/bid di tutti gli strumenti escono allo stesso tempo esatto.
I dati sembrano a posto...
Hai ragione sulla funzione di stampa... Anch'io vedo molte linee mancanti nei miei test. Ma quando stampo tutto su file, non manca nulla.
Ecco alcune informazioni sul codice: il tempo di ogni tick GBPAUD sarà usato per ottenere i tick più recenti delle altre coppie (fino allo stesso tempo), quindi restituirà sempre qualcosa, non sarà zero.
Ho deciso di mettere la funzione in una classe, che dovrebbe essere più ordinata. Vedi allegato. Mettetela nella vostra cartella expert, insieme al vostro EA. Sentiti libero di modificarla.
Il seguente esempio mostra un modo di usarla (le linee evidenziate sono essenziali):
Quindi la chiave in realtà, è solo questa linea:ticksInfo.getTick(<SYMBOL String>,<MqlTick Struct>). Se restituisce false, dovrai controllare il diario per il messaggio di errore.
I dati sembrano a posto...
Hai ragione sulla funzione di stampa... Anch'io vedo molte linee mancanti nei miei test. Ma quando stampo tutto su file, non manca nulla.
Ecco alcune informazioni sul codice: il tempo di ogni tick GBPAUD sarà usato per ottenere i tick più recenti delle altre coppie (fino allo stesso tempo), quindi restituirà sempre qualcosa, non sarà zero.
Ho deciso di mettere la funzione in una classe, che dovrebbe essere più ordinata. Vedi allegato. Mettetela nella vostra cartella expert, insieme al vostro EA. Sentiti libero di modificarla.
Il seguente esempio mostra un modo di usarla (le linee evidenziate sono essenziali):
Quindi la chiave in realtà, è solo questa linea:ticksInfo.getTick(<SYMBOL String>,<MqlTick Struct>). Se restituisce false, dovrai controllare il diario per il messaggio di errore.
Grazie per il vostro aiuto,
Ho copiato tutte queste linee in tutte le aree appropriate. Ma siccome non capisco il codice, per favore consigliatemi come mettere l'Ask e il Bid di SecondPair in Ask2,Bid2 e la stessa cosa per ThirdPair.
Ecco la mia area globale:
Questa parte restituisce 2 errori durante la compilazione. Cosa dovrei fare con loro?
'SecondPair' - espressione costante richiesta MyEA!.mq4
ThirdPair' - espressione costante richiesta MyEA!.mq4
Grazie per il vostro aiuto,
Ho copiato tutte queste linee in tutte le aree appropriate. Ma siccome non capisco il codice, per favore consigliatemi come mettere l'Ask e il Bid di SecondPair in Ask2,Bid2 e la stessa cosa per ThirdPair.
Ecco la mia area globale:
Questa parte restituisce 2 errori durante la compilazione. Cosa dovrei fare con loro?
'SecondPair' - espressione costante richiesta MyEA!.mq4
ThirdPair' - espressione costante richiesta MyEA!.mq4
Allora dichiarate le vostre otherPairs allo stesso modo di allPairs. E in OnInit, fai così:
E per assegnare i valori in Ask2, Bid2, Ask3, Bid3, fai questo in OnTick:
Poi dichiarate le vostre otherPairs allo stesso modo di allPairs. E in OnInit, fate così:
E per assegnare i valori in Ask2, Bid2, Ask3, Bid3, fate così in OnTick:
Mi dà di nuovo 00 :(
La mia area globale:
OnInit:
OnDeinit:
OnTick:
Journal:
2019.05.14 17:37:14.686 2018.01.03 23:36:58 MyEA! GBPAUD,H4: Errore GBPCAD
2019.05.14 17:37:14.686 2018.01.03 23:36:58 MyEA! GBPAUD,H4: Errore GBPUSD
2019.05.14 17:37:14.686 2018.01.03 23:36:58 MyEA! GBPAUD,H4: GBPAUD tick numero 221179, al 2018.01.03 23:36:58 000 Ask = 1.72479 Bid = 1.72459
2019.05.14 17:37:14.686 2018.01.03 23:36:58 MyEA! GBPAUD,H4: === Ora processa il tick 221179
Dove mi sbaglio?
Mi dispiace per la mia abilità di livello zero :D
Mi dà di nuovo 00 :(
La mia area globale:
OnInit:
OnDeinit:
OnTick:
Dove mi sbaglio?
Mi dispiace per la mia abilità di livello zero :D
Mi dispiace per la mia abilità di livello zero :D
OnInit - le 3 nuove linee dovrebbero andare prima di tutto.
L'ho fatto. Ma è molto strano: il timer per quelle due coppie extra non funziona...
L'ho fatto. Ma è molto strano: il timer per quelle due coppie extra non funziona...
Cronologia di download in MQL4 EA - MQL4 e MetaTrader 4 - Forum di programmazione MQL4
Corretto
La funzione collegata apre un grafico nascosto per il simbolo/TF in questione (se non è già aperto,) aggiornando così la cronologia, e mettendo temporaneamente il simbolo su Market Watch (se non c'è già,) così SymbolInfoDouble(symbol, SYMBOL_BID ) o MarketInfo(symbol, MODE_BID ) non restituiscono zero anche alla prima chiamata.
Cronologia di download in MQL4 EA - MQL4 e MetaTrader 4 - Forum di programmazione MQL4
Corretto
La funzione collegata apre un grafico nascosto per il simbolo/TF in questione (se non è già aperto,) aggiornando così la cronologia, e mettendo temporaneamente il simbolo su Market Watch (se non c'è già,) in modo che SymbolInfoDouble(symbol, SYMBOL_BID ) o MarketInfo(symbol, MODE_BID ) non restituiscano zero anche alla prima chiamata.
Hai ragione. Non preoccuparti però, perché le uniche cose che facciamo in OnInit, qui, sono inizializzare gli array per memorizzare i nomi dei simboli, e preparare alcuni handle di file per leggere i nostri file di dati. Per quanto riguarda i prezzi di domanda e offerta (cioè i dati di 'tick'), vi accediamo solo in OnTick, e per lo più dai nostri file di dati, poiché MT4 strategy tester restituisce sempre degli zeri quando viene interrogato su tali dati di altri simboli (si noti che questo comportamento differisce dal recupero dei dati OHLC, che le persone hanno più familiarità con).