Argomento interessante per molti: cosa c'è di nuovo in MetaTrader 4 e MQL4 - grandi cambiamenti in arrivo - pagina 57

 

Questo è il compito di un algotrader adeguato, non di un tester. Nel MT5-tester non ci sono dati sulle peculiarità del TS testato e la stessa Level2-history per creare una Execution-history per il tuo TS.

Ilritardo casuale è la prima cosa che viene in mente quando si scrive il tester. Ruvido - sì, ma con senso. A volte tale ruvidezza è fatta anche per i limitatori - Random Reject.

Non si tratta di super precisione, si tratta sempre della media aurea tra precisione e velocità. Solo in situazioni molto specifiche ha senso fare le finezze.

Quindi per MT5 l'idea di una modalità di ritardo arbitraria (non ho visto l'implementazione) è abbastanza adeguata.

 
hrenfx:

Questo è il compito di un algotrader adeguato, non di un tester.

bene)) Cioè se voglio testare con un lotto più grande, o un altro metodo di entrata/uscita, devo generare manualmente una nuova cronologia personalizzata))

Un esempio approssimativo di una storia personalizzata è rappresentato dalle diverse modalità di test in MT4. Per i prezzi di apertura - viene preparato un array di storia (prezzi di apertura), in altri modi - altri.

Gli indicatori vengono utilizzati e viene creato un array con un valore calcolato per ogni barra (se ottimizzato, allora diversi).

Dovremmo considerare la liquidità e il tipo di ordini utilizzati e la storia può essere costruita/preelaborata automaticamente di conseguenza. La cosa più importante è la materia prima iniziale.

 
Avals:

bene)) Cioè se voglio testare con un lotto più grande, o un altro metodo di entrata/uscita, devo generare manualmente una nuova storia personalizzata))

Esattamente! Si noti che non stiamo parlando della storia indicativa, che è vista dal robot da battaglia, ma di una storia personalizzata per l'esecuzione nel tester. Ovviamente, il cambiamento dei volumi in TS porta a un cambiamento nella Execution-history. O, per esempio, un cambiamento di ping - allo stesso modo.

Generare la Execution-history durante i test è assurdo. Per questo motivo, dobbiamo stimare correttamente il risultato con Reinvest-TC. Perché quando il volume aumenta al volo, anche la Execution-history cambia (si deteriora). E poiché è impossibile prevedere in anticipo la dinamica dei cambiamenti dei volumi con cui opera, è anche problematico raccogliere la storia dell'esecuzione in anticipo. Ma a causa di questa particolare sfumatura, nessuno sano di mente genererebbe la Execution-history in un tester in tempo reale.

Di nuovo, la media aurea è importante.

Voi, naturalmente, non avete bisogno di una tale danza con tamburello, come tutti praticamente. Ma ci sono TC in cui non si può fare a meno di ballare.

Per spremere il massimo dal loro TC (qualsiasi), bisogna sforzarsi molto. Quasi nessuno lo fa, accontentandosi di ciò che ottiene.

 
hrenfx:

Esattamente! Si noti che non stiamo parlando della storia indicativa vista dal robot da battaglia, ma della storia personalizzata per l'esecuzione nel tester. Ovviamente, cambiare i volumi nel TS porta a un cambiamento nella storia dell'esecuzione. O, per esempio, un cambiamento di ping - allo stesso modo.

Generare la Execution-history durante i test è assurdo. Per questo motivo, dobbiamo stimare correttamente il risultato con reinvest-TC. Perché quando il volume aumenta al volo, anche la Execution-history cambia (si deteriora). E poiché è impossibile prevedere in anticipo la dinamica dei cambiamenti dei volumi con cui opera, è anche problematico raccogliere la storia dell'esecuzione in anticipo. Ma a causa di questa particolare sfumatura, nessuno sano di mente genererebbe la Execution-history in un tester in tempo reale.

Di nuovo, la media aurea è importante.

Voi, naturalmente, non avete bisogno di una tale danza con tamburello, come tutti praticamente. Ma ci sono TC in cui non si può fare a meno di ballare.

Per spremere il massimo dal loro TC (qualsiasi), bisogna sforzarsi molto. Quasi nessuno lo fa, accontentandosi di ciò che ottiene.

E non c'è bisogno di testare con il reinvestimento)) queste cose solo con Level2 senza alcuna pre-elaborazione (sia manualmente che automaticamente). In altri casi, il volume di esecuzione può essere preso in considerazione abbastanza accuratamente. Naturalmente, questo può essere stimato solo nel trading reale senza l'influenza sul mercato dei propri ordini.

Ci sono 2 modi globali per utilizzare le zecche reali:

1. il terminale memorizza i tick e li pre-elabora prima del test per risparmiare risorse.

2. l'utente memorizza le zecche, le comprime lui stesso (ma secondo le istruzioni del tester) e le dà al tester. Per esempio, come ora in mt5, ma tf<1min. Allora potete costruire con le vostre esigenze in mente.

Penso che la maggior parte sarà soddisfatta di una qualsiasi di queste opzioni.

P.S. Ma MQ non guadagna da coloro che testano le loro strategie in MT5, ma dai broker e dai DC. Questi ultimi si preoccupano di commerciare attraverso di loro e non importa per loro chi e come testano. Cioè, si preoccupano del terminale di trading, non del tester. Ma, la popolarità della piattaforma dipende dal tester, e quindi dalla scelta del broker) Il dilemma - storia personalizzata e test più accurati staccheranno leggermente gli utenti dal DC/broker (cosa che non farà piacere a quest'ultimo), ma aumenterà in qualche modo la popolarità della piattaforma. Quale sia più redditizio dipende da MQ)

 

Semplicemente non hai familiarità con il ritratto dell'utente medio del terminale, ed è per questo che hai una visione così distorta di ciò che influenza la popolarità della piattaforma.

Renat sta facendo quasi tutto bene per diffondere il prodotto di massa tra i commercianti. Sì, ci sono molte restrizioni, ma l'utente medio non le sente nemmeno.

Il broker medio è anche una creatura stupida. E si rivolge all'utente medio nel migliore dei casi.

Il grande denaro nel FOREX è dietro piattaforme indipendenti dalla piattaforma con approcci avanzati all'aggregazione. Abbiamo bisogno di migliorare le condizioni di trading per costruire il volume.

Confrontate semplicemente quale schema ha potenzialmente più soldi:

  1. Raccogliere una tassa di sottoscrizione dai broker per l'utilizzo della loro piattaforma.
  2. Raccogliere una commissione (dal fatturato) da eventuali broker + istituzioni, per l'utilizzo della piattaforma.

Non a parità di condizioni, la stessa LMAX sta abbandonando i clienti al dettaglio per passare al secondo schema: essere il miglior LP, in competizione con EBS e altri. Spostando il retail verso i loro IB con MT4/5 e altre piattaforme.

Chi è serio nell'algotrading non dipende dalle piattaforme di trading.

 

Forum sul trading, sistemi di trading automatico e test di strategie di trading

Chi supporta MT5

MetaDriver, 2013.08.13 01:36

Se l'aumento dei clienti è maggiore della perdita di implementazione, si tratta chiaramente di un affitto. Se la crescita dei clienti è maggiore della perdita di implementazione - è già chiaramente redditizia.

Al contrario.
 
hrenfx:

Semplicemente non hai familiarità con il ritratto dell'utente medio del terminale, ed è per questo che hai una visione così distorta di ciò che influenza la popolarità della piattaforma.

Renat sta facendo quasi tutto bene per diffondere il prodotto di massa tra i commercianti. Sì, ci sono molte restrizioni, ma l'utente medio non le sente nemmeno.

Il broker medio è anche una creatura stupida. E si rivolge all'utente medio nel migliore dei casi.

Il grande denaro nel FOREX è dietro piattaforme indipendenti dalla piattaforma con approcci avanzati all'aggregazione. Abbiamo bisogno di migliorare le condizioni di trading per costruire il volume.

Confrontate semplicemente quale schema ha potenzialmente più soldi:

  1. Raccogliere una tassa di sottoscrizione dai broker per l'utilizzo della loro piattaforma.
  2. Raccogliere una commissione (dal fatturato) da eventuali broker + istituzioni, per l'utilizzo della piattaforma.

Non a parità di condizioni, la stessa LMAX sta abbandonando i clienti al dettaglio per passare al secondo schema: essere il miglior LP, in competizione con EBS e altri. Spostando il retail verso i loro IB con MT4/5 e altre piattaforme.

Chi è serio sull'algotrading non dipende dalle piattaforme di trading.

Le due opzioni sono ben illustrate da due visioni del mondo.

Uno dice di attivare l'ambiente, l'altro dice di congelare tutto com'è. Democratici e repubblicani, liberali e conservatori.

La prima opzione (con un canone di abbonamento) costringe il broker ad aggiornare i suoi clienti e incoraggiarli a fare trading (il canone di abbonamento deve essere ripagato), altrimenti il broker subisce delle perdite e se rimanere parte del mercato è discutibile.

La seconda opzione non ha importanza, anche se non c'è un solo scambio in un mese, il broker sarà ancora un utente della piattaforma (nessuna transazione, nessuna spesa).

Quale sia meglio è una domanda perenne, ci sono momenti in cui è meglio uno e momenti in cui è meglio l'altro.

 

Avevo bisogno di migliorare il mio tester per un nuovo commercio. Capire il codice di quello vecchio è stato più tempo sprecato (ho ucciso diverse settimane - approcci occasionali), che scrivere uno nuovo.

Così, ho impiegato 5 ore (con il debug) per scrivere un nuovo tester da zero. Le sue caratteristiche (mi soddisfa come inizio):

  • Funziona con il modello di scommessa M1 HighBid + LowAsk (i risultati sono più accurati del tester MT5).
  • Un simbolo.
  • Velocità (i7 2700K) circa 100.000.000 di barre al secondo (277 anni di FOREX al secondo) sul TS di prova - non vuoto, molte cose calcolate. Costantemente sul mercato.
  • Niente MM - niente lotti.
  • Profitto solo in pip.
  • Il trader ha la possibilità di controllare lo slippage e la commissione.
  • Ottimizzatore con i propri criteri di ottimizzazione - per ognuno di essi apre il proprio file (può richiedere molti GB) con stringhe ordinate di trade.
  • Non ci sono controlli degli errori nel tester - conosco tutte le sfumature del mio tester, quindi non lo permetto.
  • TS è scritto in un MQL4 leggermente abbreviato - tutte le cose inutili sono state rimosse. Ma potete usare tutta la potenza del C++.
  • Il tester è scritto senza OOP - non so come farlo in modo competente. Quindi è praticamente un linguaggio C puro.
  • Codice sorgente in C++ libero~ 20Kb.
  • Le fermate e i mercati sono stati buttati via (OrderClose è rimasto) - non è necessario.
  • Ogni esecuzione (a scelta - specificare il numero di esecuzione) può essere visualizzata e studiata nel pacchetto matematico - il file delle modifiche di Equity and Balance è scritto semplicemente.
  • Nessuna genetica.
  • No OpenCL - non può farlo.
  • A thread singolo. Carica tutti i core stupidi - ottimizzatori multipli eseguiti manualmente.
  • Applicazione console.
  • I parametri di ingresso TC, le impostazioni del tester e gli intervalli di ottimizzazione sono impostati nel file.
  • TC è compilato insieme al tester in un file EXE.
  • Prima dell'inizio ci sono solo tre file: EXE, storia, impostazioni.
  • L'ottimizzatore ha un'interruzione della corsa, se lo stato attuale della corsa non soddisfa le condizioni (per esempio, la subsidenza è troppo alta).
  • Lo script MQL4 prepara la storia per il tester, è stato scritto molto tempo fa.
  • Nessuna allocazione dinamica della memoria per la tabella degli ordini - una volta allocata la memoria e dimenticata.
  • Nessun registro - non li guardo.
  • Nessuna storia di ordini - allo stesso modo.
  • Non c'è nessuna idea sugli indicatori e tutto ciò che ha a che fare con loro - non ne abbiamo bisogno per il TS.
  • I prezzi sono interi (long int).

Se la stessa assurdità è implementata in MQL5, possiamo usare Cloud nella modalità di ottimizzazione della matrice. Solo la storia deve essere inviata ogni volta - la compressione incorporata di tali informazioni è necessaria.

Teoricamente, la velocità di ~ 100 Bb/s (al test TS) può essere teoricamente raggiunta. Mi chiedo quale sia la performance di MT5-tester su tutta la nuvola negli stessi pappagalli?

100 miliardi di barre al secondo è una buona velocità per ogni tipo di ricerca. Se convertito in altre unità, questa velocità dice che un anno di un minuto di storia del FOREX viene eseguito ~300.000 volte al secondo su un simbolo.

La maggior parte del tempo è stata spesa per imparare la sintassi del linguaggio - semplicemente googlando. Non un programmatore.

Ve lo dico subito, è un'enorme perdita di tempo scrivere un framework universale per le vostre modeste esigenze. Meglio esplorare. Se qualcosa deve essere preso in considerazione - basta aggiungerlo.

Questo è solo un nucleo, ora avete bisogno di un toolkit astuto per l'ottimizzatore. Qui ci vorrà molto più tempo - bisogna pensare.

The Dev-C++ Resource Site
  • Hongli Lai
  • www.bloodshed.net
Dev-C++ is Free Software distributed under the GNU General Public License. This means you are free to distribute and modify Dev-C++, unlike most Windows software! Be sure the read the license. Donations Please support Dev-C++ by making a donation ! The money will be shared between the active developers and the support manager in order to...
 
hrenfx:
  • Velocità (i7 2700K) circa 100.000.000 di barre al secondo (277 anni di FOREX al secondo) sul test TS - non niente, molte cose sono calcolate. Costantemente sul mercato.

Soprattutto, non dimenticate di aggiungere al tempo la lettura dal disco.

Il numero di 100.000.000 di barre è molto piacevole, soprattutto con la precisazione che c'è HighBid + LowAsk (cioè no). O ci sono solo 100.000 barre?

Analizzare i risultati dei test in Excel? Calcolare in un secondo e guardare Excel per un'ora?


Per confronto, il tester di MetaTrader 5 su M1 su Openbar, senza indicatori, ma con tutto il bagaglio e i servizi (di cui non ti sei preoccupato), compresa l'animazione della GUI e il sollevamento dell'intero database dal disco:

  • EURUSD,M1: 19.538.553 tick (5.180.083 barre) generati in 7906 ms

che dà circa 2,4 milioni di tick al secondo su un i7 simile.

 
Renat:

La cosa principale è non dimenticare di aggiungere la lettura dal disco al tempo.

Questo è un tempo inutile, poiché non ha alcun effetto sull'ottimizzazione. Ora che hai l'SSD, puoi organizzare anche il RAM-Drive. In breve, questo tempo non serve a niente.

Il numero di 100 000 000 barre è molto piacevole, soprattutto quando si specifica che c'è HighBid + LowAsk(cioè no). O ci sono solo 100 000 barre?

Perché pensa che non ci sia? Ho usato solo alcune centinaia di migliaia di barre per il test TS. Cioè 100 milioni di barre al secondo è la velocità di ottimizzazione. Quindi la durata della storia iniziale non è importante per questo parametro.

Per esempio, la storia iniziale di 100 000 barre viene eseguita 1000 volte al secondo nell'ottimizzatore - significa la velocità di 100 milioni di barre al secondo.

Analizzare i risultati dei test in Excel? Calcolare in un secondo e guardare Excel per un'ora?

Excel è una merda (non lo so semplicemente). Nei pacchetti di matrici è elementare torcere e girare il risultato di una corsa. Non c'è bisogno di cambiare il documento della matrice stessa. Quasi tutte le caratteristiche di TC danno sul posto. Questo è molto più avanzato ed efficiente dell'analisi in un MT5-tester o in qualsiasi altro tester.

A proposito, il MT5-tester non ha filtri di risultati di ottimizzazione. L'ho fatto immediatamente (senza GUI, ma è efficace al 100%). Per esempio, ho ordinato le corse per profitto. Ho impostato il filtro per drawdown, e tutto è chiaro: la riga sotto è sempre una corsa con meno drawdown di quella sopra. Metodo molto efficace - vi consiglio di implementarlo nel vostro tester.

Per confronto, MetaTrader 5 tester su M1 su Openbar, senza indicatori, ma con tutto il bagaglio e i servizi (di cui non ti sei preoccupato), compresa l'animazione della GUI e il sollevamento dell'intera base dal disco:

  • EURUSD,M1: 19.538.553 tick (5.180.083 barre) generati in 7906 ms

che dà circa 2,4 mln di tick al secondo su un i7 simile.

Meglio citare la velocità di ottimizzazione (scritta sopra) - in teoria dovrebbe essere più alta per voi. Non sono sicuro del perché i tic sono stati generati in modalità openbar?

A proposito, MT4 batte ancora (e se prendo in considerazione l'accelerazione del codice MQL4?) la velocità di MT5 in modalità openbar in ottimizzazione o no?