Un po' sorpreso :) Ho pensato di condividere e fare una domanda NON retorica. - pagina 6

 
hrenfx:

Supponiamo che tu abbia due EAs identici nei risultati nel Tester, uno sugli indicatori e l'altro all-in-one. Il secondo funziona un ordine di grandezza più veloce.

Non ci sarà un aumento di velocità di un ordine di grandezza , solo del 10-30%. Controllato. Il grande guadagno di velocità ci rende ingombrante scrivere due Expert Advisors, mentre quello "tutto in uno" è praticamente inutile per il debug e solo per combattere gli errori.

 
Integer:

Evidentemente hai qualche antipatia personale nei miei confronti. Oh, merda su di me. Cosa sono io, il centro della terra, che stai esagerando?

Perché non ti mando una mia foto così puoi pulirti con essa? Non me ne frega niente delle tue esplosioni nervose. Non sprecare il tuo tempo e la tua energia con loro.

Vi invito ad essere costruttivi, siete adulti.

 
Integer:

Non ci sarà un aumento di velocità di un ordine di grandezza , solo del 10-30%. Provata. A causa di questo grande guadagno di velocità vale la pena di preoccuparsi di scrivere due Expert Advisors, mentre quello all-in-one non è praticamente fattibile per il debug, solo per combattere gli errori.

Il guadagno di velocità dipende molto dal caso. Nessuno ha cancellato l'ottimizzazione algoritmica. Se è una specie di EMA primitiva, il guadagno è minimo. Ma se si tratta di qualcosa di più complesso, potrebbe essere un ordine di grandezza. Dipende dalla propria abilità di ottimizzazione algoritmica. Dovreste sapere dove possono avvenire i ricalcoli e così via.

Aiuta molto scrivere il proprio ottimizzatore in questo senso. Per esempio, senza ottimizzazione algoritmica, la variante all-in-one era 10 volte più veloce (grazie al compilatore del linguaggio di programmazione) nel mio tester rispetto alla stessa variante all-in-one nel tester MT4. Dopo l'ottimizzazione algoritmica il vantaggio è aumentato di un altro ordine di grandezza.

Non mi preoccuperei di farlo per il 10-30% in questo caso.

 

hrenfx:

1. Il guadagno di velocità varia molto da caso a caso. L'ottimizzazione algoritmica non è mai stata cancellata. Se è una specie di EMA primitiva, il guadagno sarà minimo. Ma se si tratta di qualcosa di più complesso, potrebbe essere un ordine di grandezza. Dipende dalla propria abilità di ottimizzazione algoritmica. Sapere dove ci possono essere calcoli ripetuti, ecc. 2.

2. Scrivere il proprio ottimizzatore aiuta molto in questo senso. Per esempio, senza ottimizzazione algoritmica la variante all-in-one era circa 10 volte più veloce nel mio tester che nel tester MT4. Dopo l'ottimizzazione algoritmica il vantaggio è aumentato di un altro ordine di grandezza.

In questo caso, non mi preoccuperei di preoccuparmene per il 10-30%.

1) Dipende dalla propria abilità di scrivere indicatori.

2. Se confrontate accuratamente le prestazioni del tester MT e del vostro calcolatore per una strategia, sarete sorpresi dall'ottimalità dell'algoritmo del tester (incluso quello fornito da Academician).

 
Integer:

2. Se siete in grado di confrontare correttamente le prestazioni del tester MT e del vostro calcolatore per la stessa strategia, sarete molto sorpresi dall'ottimalità dell'algoritmo del tester.

Cosa intende per corretto? La mia calcolatrice è >100 volte più veloce del tester MT4, e ha un errore <1%. È giustificato o no?

MT4-tester ha algoritmi normali, ma è progettato per l'universalità e tenendo conto di un numero enorme di fattori che fanno sì che la mia calcolatrice abbia un errore insignificante (per la stima dei risultati).

Un semplice esempio: se non considero profondamente la storia degli ordini nel mio EA, perché ne ho bisogno nell'ottimizzatore? Perché ho bisogno dell'emulazione di una barra zero nell'ottimizzatore? Non abbiamo bisogno di tutto questo, quindi tutto si riduce a uno stupido ciclo for. Si ottiene una velocità multipla al costo di <1% di errore.

Siamo nel forum MQL5, ma non sto discutendo le prestazioni del tester MT5 in questa discussione. Mi piacerebbe vedere un confronto ufficiale dei due tester.

Эффективность многопотокового тестера стратегий MetaTrader 5 - MQL4 форум
  • www.mql5.com
Эффективность многопотокового тестера стратегий MetaTrader 5 - MQL4 форум
 
hrenfx:

1. Cosa intende per corretto? La mia calcolatrice è >100 volte più veloce del tester MT4, con un errore di <1%. Questo è giustificato o no?

MT4-tester ha algoritmi normali, ma è progettato per essere universale e prendere in considerazione un numero enorme di fattori, a causa del quale la mia calcolatrice dà un errore insignificante (per la stima dei risultati).

2. Un semplice esempio, se non guardo in profondità la storia degli ordini nel mio EA, perché ne ho bisogno nell'ottimizzatore? Perché ho bisogno dell'emulazione di una barra zero nell'ottimizzatore? Non abbiamo bisogno di tutto questo, quindi tutto si riduce a uno stupido ciclo for. Si ottiene una velocità multipla al costo di <1% di errore.

Siamo nel forum MQL5, ma non sto discutendo le prestazioni del tester MT5 in questa discussione. Mi piacerebbe vedere un confronto ufficiale di due tester.

Voglio vedere un confronto delle prestazioni dei due tester in modo da poter capire quale numero minimo di manipolazioni nel tester viene utilizzato per dividere tutti i timeframe in barre, per sincronizzare i diversi simboli e per eseguire gli ordini.

2. Spero che questo non sia nel contesto di "posso scrivere un tester di strategia migliore di MQ".

 
Integer:

1. in modo che si possa capire il numero minimo di manipolazioni nel tester per assicurare la divisione in barre di tutti i timeframe, la sincronizzazione dei diversi simboli e l'esecuzione degli ordini.

Sono sicuro che gli algoritmi del tester sono eccellenti. Gli sviluppatori non perdono tempo a ottimizzarlo al massimo - 100%. Ma hanno reso tutto universale - per tutte le varianti. Tutte le varianti non sono necessarie quando consideriamo un caso particolare di MTS. Questo è il motivo per cui ottengono vittorie di un ordine di grandezza nei loro calcoli sul tipo di DUPLEX per.

2. Spero che questo non sia nel contesto di "posso scrivere un tester di strategia migliore di MQ".

Lei ha un'idea preconcetta di me come se io cagassi addosso a tutti ovunque. In questo thread sono completamente dalla parte degli sviluppatori. Capisco perfettamente gli argomenti del topicstarter sulla differenza fondamentale tra i compiti di un tester e di un ottimizzatore, ma non condivido le sue affermazioni contro gli sviluppatori. La mia opinione - se necessario, puoi sempre creare il tuo tester-ottimizzatore (non super-versatile, ma veloce) per te stesso.
 
Renat:

Un indicatore parsimonioso scritto correttamente è meglio usarlo internamente, piuttosto che metterlo nel codice di Expert Advisor.

Trasferirlo nel codice dell'Expert Advisor di solito significa che verrà implementato un metodo estremamente personalizzato di ottimizzazione dei calcoli, quando la quantità principale di calcoli viene scartata e rimangono 300 barre di storia (per esempio). Nella maggior parte dei casi, introdurrà degli errori, ma l'autore di solito non ci fa caso. Inaspettatamente, nel lavoro reale può accadere che l'indicatore di base e la sua copia ridotta nell'Expert Advisor non coincidano.

Sarei d'accordo con questo, ma c'è un problema, che in alcuni casi mette una croce in grassetto.

È l'assenza di una normale realizzazione di IndicatorCounted() - in qualsiasi momento viene azzerato, lo sapete molto bene.

Ho seguito un altro modo - ho fatto il mio fornitore di dati (algoritmo abbastanza ottimizzato con indirizzamento circolare dei dati), ho fatto la mia funzione IndicatorCounted().

Questo approccio si è pienamente giustificato in condizioni reali.

Inoltre, gli indicatori vengono trasferiti praticamente 1:1, e non ci sono problemi con il loro debugging, ecc.

Implementazione degli indicatori come classi sull'esempio di Zigzag e ATR

C'è anche qualche confronto di algoritmi e approccio nel tester:

P.S. Per quanto riguarda l'errore, dipende dall'algoritmo dell'indicatore. Nella maggior parte dei casi è sufficiente ignorare le prime battute, e il resto coinciderà 1:1.

Ho scritto appositamente dei modelli di test per questo scopo.


P.S.2 Per ZigZag questo è semplicemente un modo indispensabile per uscire dalla situazione.

Lo chiamo ricalcolare solo quando ne ho bisogno, e può restituire il risultato espanso, che solo l'ultimo punto è stato ridisegnato.

Permette di ottimizzare altri algoritmi di un Expert Advisor.


P.S. 3 Per quanto riguarda la MT5, voglio dire che è una grande piattaforma. Ma ci sono alcuni bug seri:

- bug critici (ovviamente saranno risolti in tempo)

- approccio discutibile a TERMINALMaxBar (ho scritto che la situazione è un vicolo cieco)

- mancanza di un'adeguata funzione IndicatorCounted() (ma ora non ne ho affatto bisogno)


P.S.4 Non posso dire nulla sul tester, perché non gioco all'ottimizzazione.

 
AlexSTAL:

Sarei d'accordo, ma c'è un ma che in alcuni casi mette una fine grassa.

...

Che senso ha se, secondo i vostri test, la classe incorporata in Expert Advisor è più lenta della chiamata tramite iCustom()?

Un'altra domanda, sei pronto a riscrivere tutti gli indicatori in questo stile?

 
Integer:

Che senso ha se, secondo i vostri test, la classe integrata nell'Expert Advisor è più lenta della chiamata tramite iCustom()?

Un'altra domanda, sei pronto a riscrivere tutti gli indicatori in questo stile?

Il punto non è nel tester, di nuovo! Non nel tester, ma in condizioni reali, dove la storia viene scaricata e si verificano errori di connessione

A proposito di tutti gli indicatori - qual è il problema?

Motivazione: