Programmazione Metatrader Overfitting_II (per principianti)

Proviamo infine il DAX, a partire dal minimo del 15 gennaio, inizio del penultimo T+3, con questa configurazione gia' ottimizzata:

StrtTime = "2015.01.15 11:00"; // data inizio calcolo cicli
minCycledays = 5; // num. minimo sedute giornaliere per ciclo T (o T+1)
dayBars = 14; // numero barre H1 nella seduta
backDays = 2; // numero sedute precedenti per valutare soglie min e max

IniStplss = 500; // stoploss
ProfTrgt = 450; // target profitto per innesco trailing
ProfFctr = 0.5; // percentuale ritracciamento trailing stop da massimo profitto

Risultati ed equity :

Deposito iniziale 10000.00
Profitto totale netto 2230.00
Drawdown assoluto 55.00
Drawdown massimo 2213.75 (17.29%)
Operazioni totali 20
Operazioni con profitto (% del totale) 10 (50.00%)
Operazioni in perdita (% del totale) 10 (50.00%)

Anche con DAX il risultato e' positivo, anche se lo strumento propone tradate da cardiopalmo e quindi si dovrebbe provare con puntate piu' piccole.
 

Allegati

  • TesterGraph.gif
    TesterGraph.gif
    13 KB · Visite: 221
Dopo questi rapidi test comparativi, che ovviamente non esauriscono l'argomento perche' eseguiti sui cicli T di un solo T+3, si possono tuttavia gia' ricavare delle prime conclusioni che, direi, sono le seguenti:

- il metodo Torino che (credo) sia stato sviluppato inizialmente per il FtseMib, puo' essere utilizzato anche per altri strumenti (EurUsd, Dax, ....altri ancora da individuare)

- su altri strumenti (Eurostox, Sp500,... altri ancora da individuare) il metodo sembra fallire; si tratta di capire se questo esito sia casuale o sistematico, ovvero dovuto alle caratteristiche di tali strumenti (es. volatilità).

- vale la pena di continuare i test su altri strumenti e su un numero elevato di periodi ciclici superiori.

Per ora chiudo la parentesi sul TS_Cicli_TO.

Da domani parliamo di TS_Shadow (metodo Dan Gramza).
 
Files del TS_Shadow (metodo Dan Gramza)

Avevo presentato in anteprima l'idea di questo TS in questo post :

http://www.investireoggi.it/forum/overfitting_ii-per-principianti-vt84491-59.html#post4261730

a cui vi rimando per la teoria.

Come preannunciato, adesso pubblico i files relativi, che sono :

- Indicatore_Shadow
- Segnali_Shadow
- TS_Shadow

Il primo programma disegna sul grafico principale le curve dei trailing stop, a seguito dell'entrata nei trade.
Il secondo programa evidenzia i segnali long e short in una finestra separata, sotto il grafico principale.
Il risultato e' quello mostrato nel seguente grafico M15, relativo al DAX.

Il terzo file e' il TS vero e proprio (expert advisor) che gestisce gli ordini in automatico, sulla base dei segnali.

Nel prossimo post vi parlero' dei primi risultati che ho ottenuto e delle mie impressioni su questo TS.

(continua ...)
 

Allegati

  • Ger30Jun15M15.png
    Ger30Jun15M15.png
    36,2 KB · Visite: 287
  • TS_Shadow.zip
    TS_Shadow.zip
    48,1 KB · Visite: 215
Prima di entrare nella discussione sulle performances del TS, devo aggiungere alcune note tecniche.

Dopo l'occorrenza di una barra con ombra lunga (prerequisito), i segnali scattano in questi casi :

- segnale long quando una barra successiva a quella con ombra lunga bassa supera di N pips il massimo della candela con ombra lunga;
- segnale short quando una barra successiva a quella con ombra lunga alta scende di N pips sotto il minimo della candela con ombra lunga.

Una volta entrati si innesca un trailing stop basato sul breakout del prezzo corrispondente a M pips sotto il minimo (per il long) o sopra il massimo (per lo short) della barra precedente.

Nei programmi, per semplicità, ho preferito esprimere il numero N di pips direttamente in punti dello stumento; il numero M di pips viene invece calcolato come multiplo di N.

I valori in input sono pertanto :

Delta = 10.0; // punti sopra/sotto Max/Min che stabiliscono livelli di entrata
TrailFctr = 1.0; // fattore moltiplicativo per Delta per calcolo trailing stop

Nel TS (expert advisor), oltre a questi input, sono previsti i soliti ulteriori input riguardanti la gestione degli ordini:

MyMagic = 888888; // num. assegnato dal Ts al proprio ordine
MyLts = 0.1; // num. lotti
MaxDelay = 1; // num. barre stand-by dopo entrate e uscite dai trade
IniStplss = 999; // stoploss
ProfTrgt = 999; // target profitto per innesco trailing
ProfFctr = 1.0; // percentuale ritracciamento trailing stop da massimo profitto

(continua...)
 
Nella conferenza di Dan Gramza, organizzata da un noto broker che opera in italia, venivano presentate delle equity su medio-lungo periodo con rendimenti crescenti e costanti.
Vi dico subito che io, provando sui soliti principali strumenti, non sono mai riuscito ad ottenere delle equity simili a quelle.

Lungi da me l'intento di voler "smontare" la validità del metodo.

Probabilmente il TS messo a punto dal broker e fornito ai clienti sara' molto piu' perfezionato e "intelligente" di quello che ho scritto io.
Io ho semplicemente applicato alla lettera le teoria illustrata da Dan Gramza.
In questa maniera il TS fa molte operazioni con ingresso e uscita nel corso di una unica barra, quasi tutte in loss.
I gain si ottengono solo se si manifestano almeno tre o quattro barre in trend marcato.

Nel complesso il metodo, in questa prima versione, ha un rapporto vincite/perdite non molto alto e drawdown piuttosto fastidiosi.
Oltre una certa lunghezza temporale, i backtes non producono alcun profitto, ma questa e' una caratteristica comune di tutti i TS (su questo si potrebbe discutere all'infinito).

Un'altra conclusione, a cui sono arrivato dopo un certo numero di test preliminari su diversi strumenti, e' che il TS sembra lavorare meglio sul TF 15 minuti.
Su altri TF i rendimenti si possono ancora avere, ma piu' bassi in assoluto e con drawdown piu' alti.

Questa volta, a meno che non mi vengano poste richieste specifiche, non vi tediero' con molte equity e ve ne mostrerò solo una, molto significativa, relativa al DAX M15.

Ottimizzando sugli ultimi tre mesi di barre M15, considerando ogni M1 all'interno della barra M15, i risultati migliori si ottengono con :

Delta = 2;
TrailFctr = 3.5;

Risultati ed equity :

Deposito iniziale 10000.00
Profitto totale netto 983.75
Fattore di profitto (profit factor) 1.11
Ricompensa attesa 2.96
Drawdown assoluto 556.25
Drawdown massimo 1301.25 (11.81%)
Operazioni totali 332
Operazioni con profitto (% del totale) 130 (39.16%)
Operazioni in perdita (% del totale) 202 (60.84%)
Il piu' grande
operazione con profito 397.50
operazione in perdita -136.25
Media
operazione con profito 78.80
operazione in perdita -45.84
Massimo
vincite consecutive (profitto in denaro) 7 (728.75)
perdite consecutive (perdita in denaro) 10 (-272.50)

Come si vede il profitto viene ottenuto al prezzo di notevoli drawdown e con un rapporto vincite/perdite piuttosto scadente.
Di positivo rimane il fatto che mediamente i gain sono piu' sostanziosi dei loss.

Provando a riottimizzare durante i sottoperiodi che generano drawdown, non si ottiene mai alcun profitto, come dire : in certe condizioni di mercato il TS non funziona proprio.
 

Allegati

  • TesterGraph.gif
    TesterGraph.gif
    16,1 KB · Visite: 192
Concludo, per il momento, il capitolo relativo a questo TS ribadendo che, quasi certamente in questa prima versione ho "mischiato il loglio al grano".
La teoria di fondo sembra attraente ma sarà necessario stabilire dei filtri per evitare le troppe brevissime operazioni in loss.
Il primo filtro che mi viene in mente riguarda la dimensione della barra con ombra lunga.
Per ridurre le operazioni fake, nei periodi laterali e di bassa volatilità, proverò a considerare solo le barre piu' lunghe di una certa soglia.
Si potrebbe inoltre filtrare l'operatività long o short in funzione di qualche indicatore/oscillatore che evidenzia il trend in atto.

Come al solito, spero che qualcuno provi il TS e mi dia il suo parere su come si potrebbe migliorare il l funzionamento di questo metodo.

:ciao:
 
...
invece bisognerebbe prenderle quando sono in zona reverse...

:up:
infatti sto provandon due strade:

- considerare solo candele di una certa ampiezza
- usare indicatori/oscillatori per capire quando siamo in esaurimento del trend.

Proverò anche con l'envelopes e altre bande simili.
Appena ho novità, vi faccio sapere.
 
Shaff trend oscillator

Dall' inizio di questo thread abbiamo proposto una manciata di TS, basati su vari algoritmi e metodi, per ciascuno dei quali abbiamo tentato di evidenziare i lati positivi e negativi.
In tutti i casi siamo arrivati alla conclusione che la profittabilità di questi metodi sarebbe presumibilmente migliorata introducendo dei criteri di filtazione delle operazioni, basati sul trend in essere e sulla volatilità.
Da qui in avanti intendo proporre la ulteriore revisione dei TS, abbinando ai vari metodi un tool per la individuazione del trend.
Tra tutti gli indicatori e oscillatori che ho provato, tradizionali e innovativi, quello che mi sembra offrire la migliore performance, in termini di segnale/rumore, e' l'oscillatore di Shaff.
Da alcuni anni uso questo attrezzo a supporto della mia operatività discrezionale, basata sulla ciclicità dell'andamento dei prezzi.
Col tempo sono arrivato a scegliere UNA E UNA SOLA configurazione dell'oscillatore, che uso per ogni timeframe e su ogni strumento di mercato; questo mi consente di GENERALIZZARE la risposta dell'oscillatore e di sganciarmi dal rischio di overfittare.
Per avere un responso pulito dall'oscillatore, che di suo e' già noise-free, utilizzo normalmente il suo momentum, introducendo una soglia minima di variazione al fine di eliminare i piccoli falsi segnali.
Come esempio, per mostrare di cosa sto parlando, allego questo grafico H4 del FtseMib, dove sono evidenziate le fasi cicliche ascendenti/discendenti del prezzo, descritte in modo egregio dall'oscillatore di Shaff.
Da qui in avanti rivedremo i TS gia' proposti in passato, nelle loro nuove versioni che implementano l'oscillatore di Shaff come criterio di filtrazione delle operazioni.
 

Allegati

  • Ita40Sep15H4.png
    Ita40Sep15H4.png
    52 KB · Visite: 504
Adoro lo Shaff trend cycle :up:
che parametri usi?

io uso i valori standard 23.50.10
oppure più veloci 7.13.9

Ciao Conte...
Usando lo Shaff come segnalatore dei cambi di trend, spesso abbinato ad altri tools (pattern, breakout ecc.), dopo varie combinazioni, mi sono assestato su un set molto veloce : 5,8,5.
E' una configurazione un po' piu' rumorosa ma la trovo ideale per i miei scopi.
In altre situazioni uso anche un set un po' piu' tranquillo; 8,13,8.
 

Users who are viewing this thread

Back
Alto