Domande per principianti in MQL5. I professionisti non passano. - pagina 2

 
Figar0:

Il modello "tutti i tick" ha solo 14 volte più tick del modello "prezzo aperto" su H4. O sono pazzo, o uno dei due... Quindi non c'è un modello di "prezzo aperto"?

Date un'occhiata a "Le basi dei test in MetaTrader 5":

Solo prezzi aperti

Nella modalità di test "Solo prezzi aperti", la generazione dei tick è eseguita dallo stesso algoritmo della modalità "1 minuto OHLC". L'unica differenza è che la funzione OnTick() in questa modalità funziona solo sui prezzi aperti del periodo testato.

Per esempio, un Expert Advisor viene testato su EURUSD H1 nella modalità "Solo prezzi aperti". Significa che la quantità totale di tick (punti di controllo) sarà la stessa della modalità "1 minute OHLC", ma il gestore OnTick() viene chiamato solo all'apertura della barra di un'ora. Su altri tick ("nascosti" da un Expert Advisor), hanno luogo i controlli necessari per il test corretto:

  • calcolo dei requisiti di margine;
  • l'attivazione di Stop Loss e Take Profit;
  • l'attivazione di ordini pendenti;
  • Rimozione di ordini pendenti con tempo scaduto.

Se non ci sono posizioni aperte o ordini pendenti, non c'è bisogno in questi controlli di tick nascosti, e l'aumento di velocità può essere significativo. Questa modalità "Solo prezzi aperti" è buona per testare le strategie che eseguono operazioni solo all'apertura della barra e non usano ordini pendenti, così come gli ordini StopLoss, TakeProfit. Tutta la precisione necessaria dei test è mantenuta per la classe di tali strategie.

 
Rosh:

Dia un'occhiata a questo articolo Test di base in MetaTrader 5:

È chiaro il perché, non è chiaro come essere? Come ho detto subito - triste) il tester MT5 nel mio esempio è 70 volte più lento del tester MT4. Dove nel mio MT4 era un giorno qui sarà 10 settimane? Va bene, ho deciso di accelerare) È un bene che ho iniziato in piccolo e non ho convertito tutta la roba buona in MT5 per i test)

Perdona il mio sarcasmo, capisco che il tester MT5 ha un sacco di vantaggi rispetto a MT4, ma questo è superato dalla velocità.

Forse dovremmo introdurre un modello simile ai "prezzi di apertura" di MT4? Che sia impreciso, che sia in grassetto rosso con molti avvertimenti, ma che sia più immediato che in MT4. La precisione della generazione della sequenza di test in MT5, per esempio, è assolutamente inutile per gli Expert Advisors che operano su un'apertura di barra senza TP e SL.

 
Figar0:

È chiaro il perché, non chiaro come essere? Come ho detto subito - triste) il tester MT5 nel mio esempio è 70 volte più lento del tester MT4. Dove nel mio MT4 era un giorno qui sarà 10 settimane? Va bene, ho deciso di accelerare) È un bene che ho iniziato in piccolo e non ho convertito tutta la roba buona in MT5 per i test)

Perdona il mio sarcasmo, capisco che il tester MT5 ha un sacco di vantaggi rispetto a MT4, ma questo è superato dalla velocità.

Forse dovremmo introdurre un modello simile ai"prezzi di apertura" di MT4? Che sia impreciso, che sia in grassetto rosso con molti avvertimenti, ma che sia più immediato che in MT4. La precisione della generazione della sequenza di test in MT5, per esempio, è assolutamente inutile per gli Expert Advisors che operano su un'apertura di barra senza TP e SL.

Se volete prezzi aperti veloci, basta scrivere un filtro nel codice in modo che non venga calcolato a condizione che non ci sia una nuova barra, la generazione stessa dei tick richiede un tempo minimo, in particolare la storia di 3 anni su qualsiasi TF (a prezzi aperti) richiede 7-15 secondi.
 
Urain:
Se vuoi un veloce per i prezzi aperti, basta scrivere un filtro nel codice in modo che non ci sia alcun calcolo sulla condizione fino a quando non appare una nuova barra, la generazione stessa dei tick richiede un tempo minimo, in particolare la storia di 3 anni su qualsiasi TF (per i prezzi aperti) richiede 7-15 secondi.
Che tipo di filtro?) Ho un controllo per una nuova barra all'inizio di Ontick(). Ma anche con questo filtro la mia ottimizzazione di EAs comparabili in MT5 è 70!!! volte più lenta di MT4, e non è una cosa da ridere... Forse ho sbagliato in questo pezzo di codice (nuovo controllo a barre), per favore guardate la pagina del codice prima. O forse sono solo io? Forse dovrei provare a reinstallare mt5 per esempio?
 
Figar0:
Che tipo di filtro?) Il mio Ontick() inizia con un controllo per una nuova barra. Ma anche con questo filtro l'ottimizzazione di EAs comparabili in MT5 è 70!!! volte più lento che in MT4, e non è divertente ... Forse ho fatto un po' di casino in questo pezzo di codice (controlla la nuova barra), per favore guarda la pagina del codice prima. O forse sono solo io? Forse dovrei provare a reinstallare mt5 per esempio?

Creare una variabile su ogni tick, creare un array dinamico su ogni tick, chiamare la funzione di copia, due controlli.

Perché queste complicazioni?

Si dichiara una variabile globale che memorizza il numero di barre nella richiesta precedente e si controlla se il numero di barre è cambiato, tutto qui.

int prevbars;

int OnInit()
  {
   prevbars=-100;// любое число которое не может вернуть Bars()  
   // ...
   return(0);
  }

void OnTick()
  {
   if(prevbars!=Bars(_Symbol,_Period))
     {
      prevbars=Bars(_Symbol,_Period);
      // ...
     }
  }

Se avete bisogno di una maggiore verifica, allora mettete questa verifica all'interno dell'area protetta.

 
Urain:

Creare una variabile su ogni tick, creare un array dinamico su ogni tick, chiamare la funzione di copia, due controlli.

Perché queste complicazioni?

Dichiarare globalmente una variabile che memorizza il numero di barre sulla richiesta precedente, e controllare se il numero di barre è cambiato, questo è tutto.

Se volete controllare se i dati sono caricati, allora mettete questo controllo all'interno della zona protetta.

Grazie. Ma pensate davvero che questo possa cambiare radicalmente la situazione?) Controllato, quindi centesimi, forse solo entro il margine di errore... Si tratta dell'enorme differenza di volume di tick generati del modello "By opening prices" in MT4 2K e MT 1200K, nessun multicore e cloud aiuterà. Non so nemmeno se questo modello ha un "diritto" di essere chiamato dai prezzi di apertura, è come il modello "1 tick su 14" a giudicare dal rapporto. Non capisco di cosa sia colpevole il modello "Opening price" di MT4. C'era sicuramente una domanda per questo, perché non lasciarlo nella sua forma MT4?

Non so perché e per chi questa ridondanza nei test sia così evidente. Dobbiamo usare il tester per estrarre il profitto dalla storia? Penso che il punto principale sia che la precisione del tester non può essere trasferita ad un conto reale.

A proposito, chi sa dove nascondere la mia casella di controllo preferita "Skip useless results"? Non sono riuscito a trovarlo.... È anche caduta in disgrazia?).

 
Figar0:

Era sicuramente richiesto

... è e continuerà ad essere.

Aspettiamo che i file della storia, almeno i file minuti, vengano decifrati.

 
TheXpert:

... usa e continuerà ad usare.

Aspettiamo che i file della storia, almeno i file minuti, vengano decifrati.

Sì, capisco, troveremo una soluzione in qualche modo, volevo solo evitare il crudismo... Gli sviluppatori sembrano essere disposti a fare una piattaforma usabile e funzionale => piattaforma popolare con i commercianti => piattaforma popolare con le società di intermediazione. Ma a volte penso che non lo guardino dall'altro lato). Prima la negazione categorica della possibilità di impostare gli spread (di conseguenza, non si può usare il 4 nel fine settimana senza TakeMySpread), e ora l'introduzione di cloud innovativi, agenti per velocizzare il lavoro e di conseguenza il rallentamento di 70 volte... Non capisco.
 
Gli sviluppatori devono aggiungere un'altra opzione di selezione. Cioè la vecchia opzione" Prezzi di apertura". È sufficiente per molte idee. Ho ottenuto risultati identici in tutte le modalità in MT4. La nuvola diventerà quindi una super nuvola se testata nella vecchia variante)).
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы - Документация по MQL5
 
joo:

Aggiungerei la stessa modalità "per prezzo di apertura" ma con un'opzione per selezionare un sub timeframe. Diciamo che hai scelto il timeframe di test H1, significa che puoi selezionare le modalità di movimento del prezzo su M1, M2, M5, M10 ..... М30. Allora sarà molto flessibile scegliere tra "velocità e precisione" (se non sono pipser, la maggior parte preferirà la "velocità").

Questa è una grande aggiunta! Anche le barre di distanza nel tester... Ma questa è un'altra storia)).
Motivazione: