Backtesting/ottimizzazione - pagina 28

 

Immaginate, ogni giorno alle 00.00 l'ea (durante il suo normale lavoro) inizia un'ottimizzazione (con algoritmi genetici) per una quantità x di dati (1 mese, 2 mesi, 1 anno, 1 giorno), e alla fine dell'ottimizzazione controlla i risultati, e sceglie i valori che hanno dato i migliori risultati (alto profitto, basso drawdown), e modifica il suo valore con quelli nuovi, senza fermare il suo lavoro!

Può essere fatto manualmente, ma se può essere fatto automaticamente può essere anche meglio, no?

 

Le mie esperienze

Supponendo che tu abbia il %90 di qualità delle zecche e che non sia un principiante,

1. Tester è una grande arma. Funziona se sai come usarlo. Altrimenti spendi dalla tua vita per i test EA, almeno 2-3 anni devi aspettare i dati live.

2. Tester non è adatto a sistemi multi-timeframe e multi-valuta. Se il tuo sistema costringe punti complessi, chiedi ai produttori.

3. Non c'è nessun esperto di valore in rete. Quindi questo non è un problema del tester. Ma la gente dice che il tester è cattivo. No, noi siamo cattivi.

4. Le onde del mercato forex cambiano di anno in anno. Se un sistema funziona un anno, l'anno successivo può fallire. Quindi, un esperto deve essere educato per molti anni.

5. L'unica tendenza affidabile è (mensile) anche (5 anni) le tendenze in questo mercato. Ma queste tendenze non sono adatte a una leva elevata. Questo sta riducendo le nostre possibilità per gli EA ad alta leva.

Grazie

Cengiz

 

i piccoli dettagli nell'apprendimento automatico

w4rn1ng:
Immaginate, ogni giorno alle 00.00 l'ea (durante il suo normale lavoro) inizia un'ottimizzazione (con algoritmi genetici) per una quantità x di dati (1 mese, 2 mesi, 1 anno, 1 giorno), e alla fine dell'ottimizzazione controlla i risultati, e sceglie i valori che hanno dato i migliori risultati (alto profitto, basso drawdown), e modifica il suo valore con quelli nuovi, senza fermare il suo lavoro! Può essere fatto manualmente, ma se può essere fatto automaticamente può essere anche meglio, no?

tutto ciò che può essere descritto esattamente, può anche essere programmato. Forse mq4 non è lo strumento più adatto per farlo, ma si può fare.

Un dettaglio pratico: a seconda del tuo EA / dei tuoi indicatori / del tuo intervallo di ottimizzazione, le ottimizzazioni automatiche possono mangiare un sacco di tempo. Voglio dire: per riottimizzare i parametri per il giorno successivo, non servono 5 minuti ma 5 giorni :-(.

Domande:

1.) hai testato la tua idea a mano ? È stato un successo?

2.) Perché 2 mesi di intervallo di riottimizzazione? Perché non 1,5 o 2,5?

3.) Cosa significa esattamente "miglior risultato"? Preferisci 1000$ di profitto dopo 500$ di drawdown, o meglio 600$ di profitto con 100$ di drawdown ? Preferite un sistema che ha fatto 2000 $ (prima settimana a 2200, le successive 7 settimane giù a 2000), O preferite un altro sistema che ha fatto 100..200 $ ogni settimana (totalmente 1300$) ?

 

Penso che sia meglio ottimizzare a mano e trovare i migliori parametri per il 2006 e poi testarli sul 2007. Se entrambi mostrano risultati simili, controllo il periodo 2004-2007. Se questo va bene, mantengo questi parametri.

Se ottimizzi ogni mese, l'EA non sarà in grado di fare trading normalmente - ho già verificato questo. Il miglior risultato di ottimizzazione è stato ottenuto con un'ottimizzazione annuale.

Puoi anche ottimizzare in base alle condizioni di mercato. I periodi di tendenza dovrebbero usare un set di parametri, i periodi di mercato lento/di mercato laterale - un altro set. Ma chi può dire che periodo è ora?

La riottimizzazione giornaliera dà un risultato di merda.

Oh e riguardo a quei dati che hanno fatto funzionare male l'EA - non preoccuparti. Ho avuto lo stesso risultato quando ho caricato dati EUR/USD su dati GBP/USD. Il risultato era un misto di quotazioni. Se cancelli le quotazioni e riavvii MT4 in modalità offline e poi carichi solo un set di quotazioni (quelle corrette), dovrebbe funzionare bene.

Inoltre, per controllare se la modellazione va bene, ho alcune copie sepparate di MT, e controllo gli EA su diversi MT di diversi broker. Dà risultati un po' diversi ma niente di speciale (aiuta a identificare i problemi)

 
autopips:
tutto quello che può essere descritto esattamente, può anche essere programmato. Forse mt4 non è lo strumento più adatto per farlo, ma si può fare.

Un dettaglio pratico: a seconda del tuo EA / dei tuoi indicatori / del tuo intervallo di ottimizzazione, le ottimizzazioni automatiche possono mangiare un sacco di tempo. Voglio dire: per riottimizzare i parametri per il giorno successivo, non hai bisogno di 5 minuti ma di 5 giorni :-(.

Domande:

1.) hai testato la tua idea a mano ? È stato un successo?

2.) Perché 2 mesi di intervallo di riottimizzazione? Perché non 1.5 o 2.5 ?

3.) Cosa significa esattamente "miglior risultato"? Preferisci 1000$ di profitto dopo 500$ di drawdown, o meglio 600$ di profitto con 100$ di drawdown? Preferite un sistema che ha fatto 2000 $ (prima settimana a 2200, le successive 7 settimane giù a 2000), O preferite un altro sistema che ha fatto 100..200 $ ogni settimana (totalmente 1300 $) ?

Sì, probabilmente è necessario codificare un nuovo programma per assistere mt4 in questo processo, comunque sono d'accordo che può essere fatto! L'idea non è male, ma come sapete il mercato cambia continuamente, quindi un buon modo per far sì che un EA sia sempre in gioco è quello di ri-ottimizzare ogni giorno, e qui nasce la necessità di un processo automatico. Il mio ea fa un'operazione ogni 4 ore (o ogni 8 o 12 o 16..ecc.), all'inizio della 4hcandle guarda se è il caso di entrare o uscire dal mercato, e appena presa o uscita la posizione aspetta altre 4 ore o più, quindi non abbiamo bisogno di una qualità modeiling tickbytick 90%, l'ottimizzazione (quella che può richiedere 1giorno di lavoro CPU) richiede 5-10minuti e non di più (e i risultati sono gli stessi della qualità 90% mod o forwardtest), la mia idea è di lasciare che l'EA sia sovraottimizzato ogni giorno, un buon modo può essere quello di far controllare all'EA alle 00.00 (per esempio) un file xml su un server remoto (il server del mio ufficio) e scaricare le impostazioni da quel file (come l'indicatore delle notizie), ovviamente dall'altra parte (il server che darà l'xml all'EA) ci sarò io che faccio l'ottimizzazione ogni giorno, oppure ci può essere un altro programma che insieme a mt4 ottimizza e mette i risultati nel file xml in modo totalmente automatico!

 
mcbalta:

4. Le onde del mercato forex cambiano di anno in anno. Se un sistema funziona un anno, l'anno successivo può fallire. Quindi, un esperto deve essere istruito per molti anni.

Esattamente hai ragione, penso che cambino anche di mese in mese (forse c'è un mese di bassa volatilità e potente downtrend, il mese successivo è di mercato totalmente choppy con alta volatilità, ecc. un EA se ottimizzato al mese precedente, nel mese successivo avrà una mentalità trend-follow, e sprecherà un sacco di soldi nel mese choppy), ma se si guarda, il "cambiamento" da condizione di mercato ad un altro non è qualcosa che accade in 1 minuto, sì il mercato si cambia continuamente ma cambia lentamente, quel trader che è bravo e nota che sta finendo il periodo di tendenza e iniziando il periodo choppy (che può durare un mese o una settimana o un anno, non fa differenza) cambierà la sua strategia e avrà dei profitti, quell'altro trader che non capisce il cambiamento e continua a fare trading con una mentalità trend-following (proprio in questo esempio) perderà molti soldi, e alla fine del mese guarderà il grafico e dirà: "bene, il mercato ha choppato tutto questo mese, l'ultimo mese stava andando in downtrend senza choppy... ora vedo chiaramente, ho scambiato il mese choppy come se fosse un mese di tendenza! che stupido che sono!".

Se ottimizziamo l'ea giorno per giorno, l'ea capirà e cambierà giorno per giorno la sua strategia di trading, da trending a choppy, e avrà profitto nel primo e anche nel secondo mese! (supponendo che tu abbia un buon ea adatto a fare trading sia sul mercato in trend che su quello choppy [ovviamente con impostazioni diverse]).

Questo è quello che voglio dire, il mercato cambia continuamente, è un mercato dinamico, gli ea falliscono perché non sono dinamici. Ma cosa succede se un EA diventa dinamico?

 

Aiuto per unire i dati dei tick

Ciao,

Sto cercando degli sviluppatori Delphi (o Java, o C#) che mi aiutino a unire i dati dei tick che ho raccolto. Ho diversi computer con diversi internet provider che registrano ogni tick da 2 broker. Voglio unire tutti questi tick raccolti dai diversi computer in 2 database (per ognuno dei 2 broker). Lo sviluppatore (o gli sviluppatori) che vuole aiutarmi avrà accesso a tutti i dati di tick che ho raccolto finora - dal 1 gennaio 2007. Per favore PM me o scrivetemi una e-mail: hiller159 [at] yahoo [dot] com

 

Grazie

FX_Babe

holyguy7:
Passo dopo passo, come ottenere migliori risultati di backtesting

1. Vai a scaricare i dati MT4 per la coppia di valute che vuoi fare il backtest che trovi QUI. Assicurati di scaricare i dati M1. Dovrebbe darti i dati per ogni minuto fino al 2004 (circa 1,5 anni di backdata).

2. Dopo aver decompresso i dati sul disco rigido, è necessario importare i dati in Metatrader 4.

3. Aprire Metatrader 4 (lanciare il programma)

4. Devi andare al tuo Centro Storico in Metatrader 4. Premi F2 sulla tua tastiera. Oppure clicca in alto su Metatrader: Strumenti e scegliere Centro Storico

5. Aprire Forex, aprire la coppia di valute da importare e aprire M1

6. Cliccare su Importa e navigare fino alla posizione in cui avete decompresso i dati per la coppia di valute.

7. 7. Assicurarsi che Tipo di file sia su file Metaquote. 8. Cliccare Open e OK. Poi Chiudi.

8. Ora, nella finestra Navigatore sul lato sinistro del tuo programma Metatrader 4, apri Scripts. Dovrebbe essere proprio sotto Indicatori personalizzati.

9. Apri il grafico offline andando su File- Openoffline - SELECT e apri il Pair su M1 Timeframe.

10. Dovresti avere il grafico M1 (offline) aperto della coppia di valute. È necessario fare doppio clic sullo script Period Converter.

10. Cliccate sulla scheda Input e dovreste vedere il valore 3. Dovete cambiare il valore in 5 (M5), 15 (M15), 30 (M30), 60 (H1), 240 (H4), 1440 (D1).

11. 11. Ora, clicca su Strumenti - Opzioni - scheda Grafici e cambia le barre massime nella storia e le barre massime nel grafico a 999999999999 e clicca su OK.

Fondamentalmente, stai convertendo i dati M1 che hai importato nei diversi timeframe che vuoi testare. Puoi farne uno alla volta per farli tutti.

Io di solito inizio e scelgo 5 e poi clicco su OK. Poi faccio doppio clic di nuovo su Period Converter e cambio il valore a 15 poi clicco OK, poi clicco di nuovo e cambio il valore a 30 poi clicco OK, finché non ho completato i timeframe.

NOTA: vi darà un avvertimento: "Vuoi veramente fermare 'period_converter' ed eseguire 'period_converter' sul grafico M1?

Basta cliccare su SÌ e poi fare doppio clic sul period_converter di nuovo per continuare a convertire i dati M1 in tutti i timeframe.

Ho fatto questo con tutte le coppie di valute che posso scaricare su tutti i timeframe. È bene avere questo perché ti dà un'idea se qualcosa funzionerà o meno.

Spero che questo aiuti.
 
w4rn1ng:
Ciao, ecco cosa voglio fare:

Voglio lasciare che il mio EA ottimizzi se stesso (un'ottimizzazione degli ultimi 2 mesi), e deve cambiare le sue variabili automaticamente se ha trovato variabili migliori durante l'ottimizzazione (ottimizzerà 24h/24, tutto il giorno, tutti i giorni).

Pensi che sia possibile codificare qualcosa del genere? forse uno script o qualcosa che non conosco, cosa ne pensi?

Ecco un link a un articolo russo che discute l'auto-ottimizzazione degli EA.

Автоматическая оптимизация торгового робота в процессе реальной торговли - Статьи по MQL4

ed è un link a un sito web per tradurre in inglese.

AltaVista - Traduzione di Babel Fish

Wackena

 
Wackena:
Ecco un link a un articolo russo che parla dell'auto-ottimizzazione degli EA.

Автоматическая оптимизация торгового робота в процессе реальной торговли - Статьи по MQL4

ed è un link a un sito web per tradurre in inglese.

AltaVista - Traduzione di Babel Fish

Wackena

Ciao, grazie per la tua risposta, sì, l'ho già trovato qualche settimana fa, comunque grazie per il tuo aiuto, è una cosa molto buona!