Programmazione Metatrader Overfitting_II (per principianti) (1 Viewer)

Tolomeo

Perdo pelo, non il vizio
:ciao:

Da anni cerco saltuariamente di approcciarmi al fenomenale 3D di GiuliaP, senza mai riuscire a cogliere l'essenza delle discussioni che ivi albergano. :bow:
Io non conosco la matematica e la statistica a quei livelli e quindi il linguaggio che viene utilizzato da GiuliaP e dagli altri frequentatori e' per me incomprensibile. :(
E' impensabile, per un trader come me, rileggere tutto il thread Overfitting (l'originale) alla ricerca di spunti o riferimenti bibliografici o affrontare da autodidatta le teorie, le regole e i metodi che li vengono citati.
Non basterebbe una nuova vita. :nnoo:
Ovviamente non mi azzardo a scivere su Overfitting, perche' il livello di un qualunque mio contributo o ragionamente risulterebbe palesemente al di sotto della competenza media di chi interviene in quel thread. :ciuchino:

PERO' L'ARGOMENTO MI INTERESSA, ECCOME ! :mumble:

Propongo allora questo "Overfitting per principianti" per vedere se esistono altri forumer che, come il sottoscritto, si trovano quotidianamente di fronte alle difficoltà nella ottimizzazione di TS automatici e intendono socializzare le loro esperienze.
Vorrei capire se c'e' qualcun altro che sia alla ricerca di consigli e regolette pratiche per uscire dalle frequenti pastoie. :titanic:
Vorrei soprattutto capire se l'overfitting e' una sorta di condanna eterna e inappellabile o se esiste uno spiraglio, un qualsiasi percorso che possa condurre alla meta, che e':

fare funzionare un TS anche domani e dopodomani e dopodomani ancora e non solo sull'archivio delle quotazioni passate. :specchio:

Nel prossimo intervento vi raccontero' la mia (abbastanza lunga) e insoddisfacente esperienza. :wall:
 

Tolomeo

Perdo pelo, non il vizio
Dunque non conosco la matematica e la statistica a livello avanzato e non uso Mathlab e altri sofisticati programmi di statistica.
So pero' programmare con i linguaggi tradizionali (Vbasic, C++ ecc), so lavorare con Excel e soprattutto utilizzo pesantemente la piatta MT4 e il linguaggio Metaquotes associato.
Negli anni ho scritto qualche centinaio di EA, traducendo in TS ogni indicatore tradizionale, ogni figura o pattern di inversione, ogni metodo price-action, ogni tecnica di analisi ciclica e qualunque altra cosa si trovi comunemente in letteratura e nei forum.
Ho importato altre decine e decine di EA scritti da altri e pubblicati sul sito ufficiale di MT4 o su altri siti.
Su ciascuno di questi programmi ho effettuato l'ottimizzazione dei parametri, utilizzando serie lunghissime di dati storici e impegnando per giorni e giorni i miei (numerosi) pc nelle elaborazioni.
Non soddisfatto della procedura "Strategy Tester" di MT4, ho studiato gli algoritmi delle reti neurali e li ho adottati in miei programmini vbasic.
Dispongo pertanto di una grande quantità di TS automatici apparentemente fantastici, che utiizzando i parametri ottimizzati esprimono equity line fenomenali sui dati passati, ma che ...

POI NON FUNZIONANO MAI SULLE QUOTAZIONI FUTURE !

Il lato positivo di questa mia (insoddisfacente) esperienza e' che ho imparato i fondamentali dell'analisi tecnica e dell'analisi ciclica e quindi riesco a tradare con buoni risultati in modo discrezionale ma non sono ancora riuscito a raggiungere il mio grande obiettivo che e' la creazione di (almeno) un efficente e affidabile TS automatico, che lavori al posto mio.
Dovendo fare altro nella vita e non volendo diventare un trader full-time, costantemente paralizzato davanti a una serie di monitor, continuero' a inseguire la mia chimera, anche perche' si tratta di un gioco che comunque mi diverte e lo vivo come una sfida esistenziale.

Nel prossimo post, descriverò con maggiore dettaglio i problemi pratici che mi si presentano continuamente nella attività di ottimizzazione dei TS automatici.
 

Tolomeo

Perdo pelo, non il vizio
Senza entrare, per ora, in argomenti e dettagli piu' complessi, riassumo i fattori principali che entrano in gioco quando si cerca di ottimizzare un TS automatico (ovvero EA = Expert Advisor nella piatta MT4).

1) STRUMENTO - la prima scelta da fare e' lo strumento su cui effettuare l'ottimizzazione; se si dispone di molto tempo e di molti computers si ripeterà l'ottimizzazione su altri strumenti, avendo a disposizione una gamma pressochè infinita di azioni, indici, valute, comodities, bond ecc;

2) TIME FRAME - poi si sceglie il timeframe dell'archivio su cui operare; anche in questo caso si tratterà di ripetere successivamente l'ottimizzazione su altri TF, alla ricerca delle migliori performances.

3) PARAMETRI - ogni TS sfrutta uno o piu' tool di analisi tecnica (indicatori, oscillatori, figure ecc) e pertanto deve essere configurato con dei parametri che modificano la risposta del tool stesso; per esempio se si vuole usare una media mobile si dovranno quantomeno testare vari valori del periodo di mediazione; alcuni tool richiedono solo uno o due parametri, altri possono averne parecchi; di solito piu' sono i parametri da ottimizzare e più crescono i problemi di affidabilità e di overfitting.

4) PROFONDITA' DELLA BASE DATI STORICA - secondo la mia esperienza, l'ampiezza del database utilizzato nella ottimizzazione e' direttamente proporzionale alla significatività dell'ottimizzazione stessa ma anche del rischio di overfitting ed e' inversamente proporzionale al rendimento medio del TS (pendenza della equity line).

4) STOPP LOSS e TAKE PROFIT - oltre ai parametri del tool che sta alla base del TS, normalmente si cerca di ottimizzare l'efficienza del metodo anche ricercando i valori ottimali di SL e TP; questi parametri sono spesso calcolati con algoritmi basati sull'andamento del profitto nel corso di ogni singolo trade.

A questo punto ritengo che qualche forumer possa avere argomenti per integrare o contestare quanto sopra.
Ogni intervento sarà comunque benedetto, perchè darà vita al 3D. :benedizione:

Se poi volessero cominciare a darci consigli i big di "Overfitting" ... :clap:
 

Tolomeo

Perdo pelo, non il vizio
Continuo, sulla falsariga del post precedente, a elencare gioie e dolori della mia esperienza di ottimizzatore di TS automatici.

1) Per quanto riguarda gli STRUMENTI, tempo e risorse hardware, mi hanno obbligato a ridurre il numero di strumenti testati a:
EURUSD
SP500
EUROSTOX50
GOLD
CRUDE OIL
Questi strumenti offrono una buona o ottima vitalità e quindi consentono di tradare continuamente.

2) Normalmente, dato un TS, testo tutti i TF dal minuto al giorno (M1, M5, M15, M30, H1, H4 e D1); la ricerca del TF piu' efficace consiste nel fissare una finestra temporale comune (solitamente uno o due mesi) e ottimizzare il TS per ciascun TF.
Si otterranno diverse equity line, con diversi balance, payoff, drowdown e rapporti vincite/perdite; la scelta del TF ottimale dipenderà dai gusti personali; io do importanza decrescente a drowdown, rapporto vincite/perdite, balance, payoff.
Il piu' delle volte i TF migliori risultano quelli centrali (M15, M30, H1 e H4).

3) Il tool di analisi tecnica ideale e' quello che richiede pochi (max 3) parametri.
Qualche (apparentemente) buon TS potrebbe utilizzare più tools contemporaneamente o un tool con molti parametri; in genere trovo difficilissimo ottimizzare TS con molti parametri (anche perche' si richede molto piu' tempo) e in tali casi cerco di "bloccare" qualche parametro su valori centrali e ottimizzare i rimanenti due o tre parametri.

4) Credo che l'ampiezza della serie storica su cui ottimizzare sia la croce e la delizia dell'ottimizzatore di TS.
Quando un TS ottimizzato produce una equity regolarmente crescente su tutta la serie sono contento e invogliato ad approfondire lo studio.
Per contro, su serie lunghe, l'ottimizzazione produce di solito dei payoff e dei rapporti vincite/perdite peggiori rispetto a quelli che si ottengono ottimizzando su serie corte.
Sulla base della mia ormai consistente esperienza, ho purtroppo notato che i parametri ottimizzati anche su serie lunghissime di dati storici, NON GARANTISCONO AFFATTO L'EFFICIENZA FUTURA DEL TS.
Se anche il buon esito dell'ottimizzazione lunga da credibilità al TS, i parametri risultanti non sono affatto i migliori da passare al trading futuro, in quanto sono probabilmente affetti dall'OVERFITTING.
Allo stato della (mia) arte, a volte utilizzo, SORVEGLIANDOLI, dei TS automatici ottimizzati rapidamente solo su uno o due giorni e fino alla precedente quotazione, aggiornando i parametri una o due volte al giorno.
In ogni caso le performances real-time non eguagliano mai le simulazioni ottenute sui dati pregressi.

5) L'ottimizzazione di SL e TP rappresenta un'altra fase fondamentale per configurare un TS automatico.
In fase preliminare ottimizzo il TS senza fissare alcun SL e TP, per vedere quale sia la sua dinamica naturale e soprattutto il suo massimo drawdown.
Qualunque SL inferiore al drawdown ridurrà il profitto del TS.
Non volendo e non potendo permettermi dei drowdown esagerati, a volte rinuncio volontariamente a ottimizzare il balance, fissando lo SL su valori inferiori al drawdown.
Successivamente cerco di incrementare il profitto, ottimizzando il TP in modo da catturare le escursioni piu' vantaggiose dello strumento.
Nel tempo ho imparato ad utilizzare un algoritmo a percentuale crescente sul profitto massimo raggiunto (es. 10 % fino a 20 pips a crescere fino a 90% oltre 200 pips).
Anche su SL e TP vale comunque la regola che i valori ottimizzati non risulteranno affatti i valori ottimi anche nel futuro.

Per ora mi fermo qui, in attesa di vedere se quanto vi ho raccontato sia di interesse per qualcuno.

:ciao:
 

GiuliaP

The Dark Side
Caro Tolomeo, per partecipare al tuo thread finirei per:

1) ripetere tutto quanto già detto in "overfitting".

2) attirare un certo numero di troll che non so quanto tu possa e voglia tollerare.

3) risultare la solita rompiscatole sfasciasogni tuttateorianientepratica.

Ci tengo comunque a dirti che il thread "overfitting" non è mio, in nessun senso, e che tu puoi e devi sentirti libero di scriverci quanto e quando ti pare.

Giusto per mettere subito i puntini sulle i, ti posso anticipare che "secondo me" la tua strada è sbagliata, e che devi rimettere in gioco le tue metodologie dalle basi.

Non può essere così facile.

Un caro saluto ed in bocca al lupo con il thread (io resto a disposizione per domande dirette, specifiche e circostanziate).
 

tex65

Forumer storico
.
Dio sia Lodato!

Finalmente qualcuno che dopo anni torna a parlare di Trading System....
nella sezione Trading System :up:

Condivido tutto quanto scritto nel msg 1

anche io sono un lettore silente del 3d originale

Qualche consiglio, anche se non richiesto?
- non scendere sotto il frame orario, così ti avanza tempo per leggere qualcosa di basilare sui t.s.
- il discrezionale induce al peccato, stiamo gareggiando contro il "noi stessi a mercato chiuso" ed alla lunga vince sempre lui (che siamo sempre noi)
- amare appassionatamente le fasi Flat, entrando per poco tempo ed a botta sicura: i piccoli rendimenti fanno i grandi rendimenti, il nostro benchmark è sempre il btp a 10 anni, e non è difficile batterlo ;)
Un Saluto e buona continuazione

Simply the Best :up:

https://www.youtube.com/watch?v=mNU3aIJs88g
 

Tolomeo

Perdo pelo, non il vizio
Un grazie di cuore a Giulia e a Tex che mi hanno restituito i loro feedback in modo cosi' rapido. :up:

I consigli di Tex sono preziosi non perche' costituiscano qualcosa di cui non ero cosciente ma per l'esperienza da cui scaturiscano.
Spero che vorra intervenire ancora, su aspetti pratici, come quelli che sottopongo qui.

A Giulia, che spero possa aiutarmi a "rimettere in gioco le metodologie", con interventi diretti o con segnalazione di suoi precedenti interventi, cerco di porre subito una "domanda diretta, specifica e circostanziata", approfittando della sua disponibilità.

Ecco dunque un caso concreto di TS che mettero' in azione a partire da stasera, alla riapertura delle quotazioni dell 'EURUSD, previa attesa di qualche minuto per far sfogare le reazioni smodate al voto greco.

E un TS semplicissimo basato sul verificarsi di un pattern di uscita da una fase flat, ovvero sulla variazione attuale del prezzo rispetto a una precedente chiusura di candela ; il programma calcola un indice in questo modo :


//+------------------------------------------------------------------+
//| Index calculation |
//+------------------------------------------------------------------+
int Index_Calc()
{
diff = Close[0] - Close[Shift];

myind = 0;
if (diff >= Limit) myind = 1;
if (diff <= -Limit) myind = -1;

return(myind);
}

se "myind" vale 1 aprirà una posizione long, se vale -1 aprira' una posizione short.
I parametri fondamentali sono due :

- "Shift", ovvero la posizione della candela pregressa rispetto a quella attuale, e
- "Limit", ovvero la differenza in pips tra il prezzo attuale e la chiusura pregressa.

Il TS e' semplice ma carino perche' entra sul mercato in concomitanza dei movimenti di mercato piu' ampi (anche se io non sono al computer) e poi cerca di catturare un profitto, se la direzione e' quella giusta.
Se la direzione e' sbagliata, scatterà lo stop.
Nella gestione del trade entrano in gioco altri due parametri, che andranno anch'essi ottimizzati:

- "Inistplss", ovvero il valore iniziale dello SL che verra' progressivamente innalzato se il profitto risulterà positivo.
- "MaxDelay", ovvero il numero di candele durante il quale il TS rimarra' congelato, in attesa di nuovi eventi, dopo ogni uscita in SL o TP.

Il TP e' gestito con un algoritmo fisso, non ottimizzabile, che man mano che il profitto segna nuovi massimi, dapprima innalza lo SL fino a eliminarlo e poi calcola il TP con percentuali variabili crescenti all'aumentare del profitto massimo.

Ottimizzando questo TS si ottengono sempre risultati positivi anche su periodi temporali lunghissimi.
Per le ragioni che ho spiegato nei primi interventi, non uso i parametri ottimizzati su lunghi periodi, ma quelli ottenuti da ottimizzazioni brevi e frequenti, su quotazioni "fresche di giornata".
I parametri che usero' stasera sono quelli dell'ottimizzazione effettuata sui prezzi di giovedi e venerdi scorsi.

Ecco i "fantastici" risultati di questa ottimizzazione, investendo (solamente) 2 microlotti (2000 euro):

Strategy Tester Report

SimboloEURUSD (Euro vs US Dollar)
Periodo 30 Minuti (M30) 2015.01.22 00:00 - 2015.01.23 22:30 (2015.01.22 - 2015.01.24)
Modello Ogni tick (il metodo precissimo sulla base di tutti gli intervalli di tempo minimi)

Parametri : Shift=6; Limit=0.0013; MaxDelay=6; IniStplss=7;

Lotti 0.02
Profitto totale netto 43.52
Profitto lordo 44.06
Perdita lorda -0.54
Fattore di profitto (profit factor) 81.59
Ricompensa attesa 3.35
Drawdown assoluto 2.24
Drawdown massimo 6.82 (0.07%)
Drawdown relativo 0.07% (6.82)

Operazioni totali 13
Posizioni al ribasso (vincite %) 9 (88.89%)
Posizioni al rialzo (vincite %) 4 (100.00%)
Operazioni con profitto (% del totale) 12 (92.31%)
Operazioni in perdita (% del totale) 1 (7.69%)
Il piu' grande operazione con profito 12.30
Il piu' grande operazione in perdita -0.54
Media operazione con profito 3.67
Media operazione operazione in perdita -0.54
Massimo vincite consecutive (profitto in denaro) 12 (44.06)
Massimo perdite consecutive (perdita in denaro) 1 (-0.54)

Il TS avrebbe reso piu' del 2% in due giorni, con 12 trade vincenti e uno solo in perdita, per uscita in SL gia' parzialmente ridotto.
I valori dei parametri che utilizzero' stanotte sono dunque:

Shift=6;
Limit=0.0013;
MaxDelay=6;
IniStplss=7;

Naturalmente sono sicuro che il TS non avrà piu' le stesse prestazioni di giovedi e venerdi scorsi e che potrebbe comportarsi peggio o forse anche meglio; staro' a vedere, in senso letterale, cosa farà.
Non potendomi fidare a lasciarlo solo mentre io dormo, ho inserito un allarme sonoro che scatterà, svegliandomi nel cuore della notte, qualora dovessi perdere piu' dell' 1% (ovvero il -50% della vincita promessa dall'ultima ottimizazione).
Se questo avverrà, decidero' se interrompere il TS o lasciarlo girare ancora fino a domani.

Tex, che ne pensi ?
Giulia, ti prego, dimmi dove sto metodologicamente sbagliando (anche se stanotte dovessi guadagnare il 4% :lol:).

:ciao:
 

tex65

Forumer storico
Seppur non seguo il cambio, ne mi intenda di programmazione (a proposito non vedo la durata della candela, se è stato omesso di proposito, non c'è problema, poiché non mi interessa).
Svicolo la risposta parlando piu' in generale, e sollevando qualche dubbio.

- Ho sempre sentito parlar male del forex e dei giochi loschi delle sim, per cui non ne ho mai voluto sentirne parlare, anche se so che il cambio E' il mercato VERO, quello piu' razionale e che rispecchia fedelmente i fondamentali, senza le esuberanze irrazionali dell'azionario
- Siamo sicuri che fare tante operazioni ed operando con frame piccoli sia piu' producente che seguire lunghi movimenti di tendenza?
. I concorrenti per tali frame sono MOLTO organizzati e professionali
. Considera che i dati potrebbero arrivarti in ritardo rispetto ad i professionisti
- Sei sicuro che gli stop automatici non saltino, che la tua macchina non si inceppi?
- L'idea di operare di notte mentre si dorme, mi sembra piu' adatta ad un condannato ai lavori forzati
- il periodo (domani) di alta volatilità potrebbe durare poco
- Il profit factor da te mostrato è troppo stellare da poter essere vero
Ma pero':
- Lavorare sulla ricopertura dei gap si dice sia producente, c'è addirittura chi si è specializzato solo sui gap iniziali del fib (lavorando 15' al giorno) e ci vive.
Ed esiste una strategia apposita sui gap iniziali (+ m.m. o RSI) di un noto trader americano.
- Alla lunga potrebbe essere producente, ma con un numero alto di stop loss
- per sentito dire so che esistono degli orari e dei cicli ripetitivi giornalieri nel forex
immagino già le risposte di GiuliaP che non credo saranno attinenti alle formule da te mostrate :D
lei non ama la velocità, ma attendere attendere attendere ......:lol:
 

smodato 2

Nuovo forumer
La prima domanda che mi viene spontanea è "ma perché usate quella porcheria di MT4???"
Fammi capire, lavori a barre di 30 minuti e se la barra chiude più di 13 pip sopra la barra di 3 ore prima tu entri long?
Un test su un periodo di tempo più lunghetto no?
Mi sa che PGP ti asfalta...
ciao
Smodato
 

GiuliaP

The Dark Side
...Giulia, ti prego, dimmi dove sto metodologicamente sbagliando (anche se stanotte dovessi guadagnare il 4% :lol:)...

1) Overfitting

2) Non può essere così facile

3) Se non vuoi girare una vita in tondo come quel provolone di tex, rimboccati le maniche e studia il thread principale, che pappe pronte non ne prepariamo, neanche fossi Cren!!! :-o

...Mi sa che PGP ti asfalta...

:lol:

Schiacciasassi.jpg
 

Users who are viewing this thread

Alto