Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1453

 
ANDREY:

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à.

 
ANDREY:

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.

 
Aleksei Stepanenko:

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.

 
Aleksei Stepanenko:

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.

 
Aleksei Stepanenko:

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

 
Ciao! Non sapevo dove scrivere un po 'off-topic, ho bisogno di un indicatore per l'applicazione Binance, c'è un "indicatore configurabile" aggiunto da immissione diretta di un codice. Se puoi aiutare, ecco il compito:
"Identificare la candela d'impulso"

1. Confrontando la dimensione del corpo di una candela appena chiusa con le candele precedenti (numero di candele precedenti X (dovrebbe essere cambiato nella finestra dei parametri dell'indicatore o nel codice stesso?)

2. la candela deve essere più grande delle candele precedenti di Y% (possibilità di cambiare Y nella finestra dei parametri dell'indicatore o nel codice)

3. l'ombra di una candela non fa più di Z% del corpo della candela (dovrebbe anche cambiare)

Quando tutte e tre le condizioni sono soddisfatte, è auspicabile inviare una notifica all'e-mail.
Ne ho già uno in formato luac, ma mi serve su Binance.

 
ANDREY:

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.

 
Aleksei Stepanenko:

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.

 
Ciao, puoi aiutarmi a capire perché PrintFormat() ha bisogno del segno %, se senza di esso i valori vengono registrati come in Print()?
PrintFormat("%s %d: spalla = 1:%I64d",
server,login,leva);