Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1453
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
E cosa fa esattamente il tester con ogni tick , se non c'è un solo simbolo nel programma che sta eseguendo, che darebbe al tester un comando?
Bene, il tester crea una simulazione del mercato. Invia un nuovo prezzo al tuo EA ad ogni tick. E poiché ci sono 53 mila zecche, ha bisogno di un tempo considerevole per inviarle tutte. Tutto questo avviene prima che il codice EA venga eseguito. Cosa scrivere nell'EA è affare del programmatore e non ha niente a che vedere con il lavoro del tester.
Il tempo totale include il tempo di esecuzione del tester e il tempo di preparazione del tester. Il tempo di esecuzione del vostro tester è minimo (elaborato in) in entrambe le modalità. Il tempo di preparazione è standard indipendentemente dalla modalità.
Quando si prova a prezzi di apertura - su 160 ordini che sono stati aperti a OGNI TICK, solo 120 sono stati aperti, e inoltre non a prezzi intra-minuti (come richiede il codice).
Qui tutto è nelle mani del programmatore: come costruire la logica, come funzionerà, cercare gli errori di comprensione del programma.
Lavorare sulle zecche su una lunga storia richiede molto tempo. E dato che ci sarà un gran numero di corse dei tester, il tempo di calcolo deve essere ridotto. Pertanto, è meglio sviluppare un Expert Advisor con il controllo di apertura di una nuova barra e utilizzare la modalità - dai prezzi di apertura. E poi studiare e analizzare ciò che è sbagliato.
Bene, il tester crea un'operazione di mercato simulata. Invia un nuovo prezzo al tuo EA ad ogni tick. E dato che ci sono 53 mila zecche, ci vuole una quantità significativa di tempo per inviarle tutte. Tutto questo avviene prima che il codice EA venga eseguito. Cosa scrivere nell'EA è affare del programmatore e non ha niente a che vedere con il lavoro del tester.
Grazie per le informazioni, ma le frasi gialle e grigie sembrano contraddirsi a vicenda. Sembra che il tester invii TUTTI i tick con i prezzi al mio Expert Advisor nel momento in cui la funzione OnTick() inizia a funzionare. Ma, quando OnTick( ) inizia a funzionare , il tester non invia tick con prezzi all' Expert Advisor. In questo caso, cosa succede se non sono i tick a elaborare le linee di programma del mio EA? Mi dispiace di averti frainteso.
Tutto qui è nelle mani del programmatore: che tipo di logica costruire, come funzionerà, cercare errori nel capire come funziona il programma.
Lavorare sulle zecche su una lunga storia richiede molto tempo. E poiché il tester verrà eseguito un gran numero di volte, il tempo di calcolo deve essere ridotto. Pertanto, è meglio sviluppare un Expert Advisor con il controllo di apertura di una nuova barra e utilizzare la modalità - dai prezzi di apertura. E poi studiare e analizzare ciò che è sbagliato.
Siete d'accordo che se gli ordini sono aperti all'interno di una candela minuto su tick, il modello BAR OPENING PRICES non aprirà ordini a prezzi di tick all'interno di una candela minuto? Anche se controlliamo l'apertura di ogni candela minuto.
Il tempo totale include il tempo di esecuzione del tester e il tempo di preparazione del tester. Il tempo di esecuzione del vostro tester è minimo (elaborato) in entrambe le modalità. La preparazione richiede il tempo standard indipendentemente dalla modalità.
Questo significa che si può salvare il tempo di esecuzione del tester solo su elaborati in
Risulta che il tester invia TUTTI i tick con i prezzi al mio Expert Advisor nel momento in cui la funzione OnTick() inizia a lavorare.
OnTick() è la funzione di cattura degli eventi, dove l'evento è l'arrivo di un tick al terminale, o l'imitazione di tale arrivo nel tester. I tick arrivano uno dopo l'altro e attivano la funzione. Se c'è un codice in OnTick(), verrà eseguito ogni tick. Se un nuovo tick arriva nel momento in cui si elabora il vecchio tick, il nuovo tick non viene messo in coda ma saltato (nella modalità di trading). Se non c'è codice in OnTick(), il tick attiva anche questa funzione, ma il codice non c'è, quindi non c'è niente da eseguire.
OnTick() è una funzione di cattura di eventi, dove l'evento è l'arrivo di un tick nel terminale, o un arrivo simulato nel tester. I tick arrivano uno dopo l'altro e attivano la funzione. Se c'è del codice in OnTick(), allora processa ogni tick che arriva. Se un nuovo tick arriva mentre il vecchio viene elaborato, il nuovo tick viene saltato e non messo in coda. Se non c'è codice in OnTick(), il tick attiva anche questa funzione, ma non c'è codice lì, quindi non c'è niente da risolvere.
Capito, grazie.
server,login,leva);