La decelerazione lineare è un errore di programmazione o una caratteristica di MT4? - pagina 9

 
Serj_Che:

Non ho lamentele contro di voi.

Nemmeno Papaklass .

Lei è il suo avvocato?

Lei è il suo procuratore? Non mi piaceva il fatto che tu pensassi di poterlo dire per lui, ma non per te, e che non puoi dirlo qui, ma puoi dirlo per quell'uomo.

Non mi piaceva, così ho parlato. Nessuna rivendicazione personale, solo in relazione alla situazione.

 

-Aleks-:

Quindi il tasso di elaborazione approssimativo è di 23 passaggi dal 2000 al 2013 su base oraria ai prezzi di apertura:

1. Kamikadze_MA_V_01 - 5 minuti

2. Kamikadze_MA_V_02 - 15 minuti.

3. Kamikadze_MA_V_03 - più di 30 minuti

Un'operazione del genere uccide semplicemente la possibilità di EA fine-tuning in tempo reale.


Quindi 23 passaggi in 30 minuti sono lunghi? Questo è interessante.

Il mio Expert Advisor su M15 da giugno a settembre impiega 24 ore per un passaggio nel tester. È molto tempo. Non parlerò nemmeno dell'ottimizzazione. E non è necessario...

 
decanium:

Il mio EA su M15 da giugno a settembre su tutte le zecche nel tester passa un giorno su un singolo passaggio. Questo è un tempo lungo. Non sto nemmeno parlando dell'ottimizzazione. E non ce n'è bisogno.

E quello multicurrency su M5 sui prezzi di apertura sulla storia di 9 mesi spende 20 minuti per 15000 passaggi della genetica. Ma neanche questo è un indicatore. Molto dipende dal numero di indicatori utilizzati...
 
decanium:

Quindi 23 passaggi in 30 minuti sono lunghi...? Interessante.

Il mio EA su M15 da giugno a settembre su tutte le zecche nel tester passa un giorno per un passaggio. Questo è un tempo lungo. Non voglio nemmeno parlare dell'ottimizzazione. E non ce n'è bisogno.

La cosa più importante è che ho mostrato come la velocità è regredita durante l'evoluzione dell'Expert Advisor. In generale, dubito di un EA che usa i tick perché i tick sono generati e non hanno nulla a che fare con la storia.

micle:
E ho un EA multicurrency su M5 sui prezzi di apertura su una storia di 9 mesi spende 20 minuti su 15000 passaggi genetici. Ma non è nemmeno un indicatore. Molto dipende dal numero di indicatori utilizzati...

Ma è possibile accelerare significativamente le prestazioni dell'EA sulla storia preparando i dati calcolati degli indicatori e salvandoli in un file?

 
-Aleks-:

Soprattutto, ho mostrato come la velocità è regredita con l'evoluzione dell'EA. Un EA che lavora sui tick - dubito del tutto di tali EA, poiché i tick sono generati e non hanno nulla a che fare con la storia.

È possibile accelerare significativamente il lavoro dell'EA sulla storia, preparando i dati calcolati degli indicatori e salvandoli in un file?

È probabile che la velocità di lettura dal disco sia più lenta della velocità di calcolo dell'indicatore ottimizzato. E i calcoli degli agenti remoti? Vuoi inviare loro gli indicatori calcolati? Nel vostro caso ci sono molti modi per ottimizzare la velocità di esecuzione. Dovete evitare i loop inutili. + pensare se è così critico eseguire tutte le azioni su ogni tick, forse sarà sufficiente limitarlo a "nuovo evento barra".

 
micle:

C'è la possibilità che la velocità di lettura dal disco perda rispetto alla velocità di calcolo dell'indicatore ottimizzato. E i calcoli sugli agenti remoti? Vuoi inviare loro gli indicatori calcolati? Nel vostro caso ci sono molti modi per ottimizzare la velocità di esecuzione. Dovete evitare i loop inutili. + pensare se è così critico fare tutto su ogni tick, forse sarà sufficiente limitare con "nuovo evento barra".

Non possiamo leggere i dati una volta e creare un array da essi, e solo allora applicarli?

Per quanto riguarda il mio EA specifico, ricordo che l'ho ottimizzato in base ai prezzi di apertura, cioè senza tick, a quanto pare. E per quanto riguarda il pensiero, sto finalmente pagando all'applicatore/sviluppatore per l'ottimizzazione del mio codice, ma senza controllare gli eventi che si sono verificati nell'azione dell'EA, che promette un aumento significativo della velocità dell'ottimizzatore, spero che sia così.

Lo spero, grazie per il saggio consiglio!

Vorrei fare opportunamente una domanda, se 20 EAs lavorano simultaneamente al momento dell'apertura della barra, non causerà un picco di rallentamento ed errori nell'apertura degli ordini perché il prezzo cambia drasticamente durante la stima dei dati?

 
-Aleks-:

Non possiamo leggere i dati una volta, crearne un array e poi accedervi?

Durante i test, lo facciamo passare attraverso la storia. Emulazione del trading. Quando l'Expert Advisor riceve solo i dati che sono già stati ricevuti ad ogni conteggio successivo (chiamata Expert Advisor). Nel caso del file, avrà a disposizione l'intera storia dell'indicatore, compreso il futuro che lo aspetta nelle chiamate future. A proposito, l'array occuperà molto spazio in memoria in questo caso. Vi assicuro che non è questa la direzione in cui dovremmo andare durante l'ottimizzazione. Almeno, non in questo caso.


-Aleks-:

Ho una domanda pertinente: se 20 EAs lavorano simultaneamente al momento dell'apertura della barra, non causerà un picco di rallentamento ed errori nell'apertura degli ordini, perché il prezzo cambierà notevolmente durante il calcolo dei dati?

Se tutti e 20 gli EA lavorano sullo stesso simbolo, sì. Inizieranno i calcoli quasi simultaneamente. Ma dobbiamo tenerne conto:

- Ognuno di essi sarà eseguito in un thread separato. Nel caso della configurazione di un computer a 4 core, 4 di essi possono essere eseguiti simultaneamente e non hanno quasi nessuna influenza reciproca.

- il tempo richiesto per un singolo calcolo sarà molto probabilmente incomparabilmente breve rispetto al tempo di invio di un ordine di compravendita. Per questo motivo, sarebbe meglio inviare in modo asincrono ordini di compravendita per i prezzi correnti (se si possono generare diversi ordini in 1 passaggio). Questo non dovrà aspettare il risultato del primo ordine prima di inviare il secondo. Ma anche qui ci possono essere diverse opzioni. Tutto dipende dalla strategia di trading.


Nel caso di Expert Advisors che funzionano su diversi simboli, i tick e la nuova barra molto spesso non si verificheranno simultaneamente.

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций - Документация по MQL5
 
micle:

Durante i test, viene eseguita una corsa attraverso la storia. Emulazione del trading. Quando ad ogni prossimo conto alla rovescia (chiamata dell'Expert Advisor) riceve solo i dati che sarebbero già stati ricevuti. Nel caso del file, avrà a disposizione l'intera storia dell'indicatore, compreso il futuro che lo aspetta nelle chiamate future. A proposito, l'array occuperà molto spazio in memoria in questo caso. Vi assicuro che non è questa la direzione in cui dovremmo andare durante l'ottimizzazione. Almeno, non in questo caso.

Nel caso in cui tutti i 20 Expert Advisors siano in esecuzione su uno stesso strumento, sì. Inizieranno i calcoli quasi simultaneamente. Ma dobbiamo tenerne conto:

- Ognuno di essi sarà eseguito in un thread separato. Nel caso di una configurazione di computer a 4 core, 4 possono essere eseguiti simultaneamente senza praticamente alcuna influenza reciproca.

- Il tempo per un singolo calcolo sarà molto probabilmente incomparabilmente breve con il tempo di invio di un ordine di compravendita. Per questo motivo, sarebbe meglio inviare ordini di compravendita a prezzi correnti (se è possibile generarne diversi in 1 passaggio) in modo asincrono. Questo non dovrà aspettare il risultato del primo ordine prima di inviare il secondo. Ma anche qui ci possono essere diverse opzioni. Tutto dipende dalla strategia di trading.

Nel caso di Expert Advisors che operano in diversi simboli, i tick e una nuova barra di solito non si verificano contemporaneamente.

Ho capito bene che dovremmo ritardare artificialmente l'invio degli ordini agli ordini aperti senza aspettare la conferma della loro apertura?

 
-Aleks-:

Ho ragione nel supporre che ci dovrebbe essere un ritardo artificiale quando gli ordini vengono inviati agli ordini aperti, ma senza aspettare la conferma della loro apertura?

Non c'è bisogno di fare ritardi artificiali. Internet e il broker lo faranno per voi...
 

micle:
никаких искусственных задержек делать не нужно. Это за вас сделает интернет и брокер... 

Sto parlando della situazione che si verifica nel trading manuale - si invia una richiesta di apertura di un ordine e si aspetta che venga elaborato, a volte si aspetta un minuto e quando si cerca di inviare un altro ordine si ottiene "channel is busy", come risultato, il primo ordine non viene aperto a causa delle variazioni di prezzo e il secondo non è stato inviato dal terminale (o il broker non lo ha accettato?).Come si comporterà l'EA in questo caso? È necessario prescrivere in qualche modo speciale o sarà in grado di inviare ordini senza aspettare la loro esecuzione?