domenica 17 ottobre 2010

Guida ai settaggi della linea del cuore

Durante la creazione dell'expert advisor "Linea del Cuore" ho deciso di rendere completamente customizzabile il sistema dall'esterno inserendo tutte le possibili variabili utilizzate all'interno del codice.

Se da un lato questo permette all'utente di avere il pieno controllo del trading system dall'altro introduce una complessità e può spaventare chi non conosce tanto bene gli indicatori di metatrader e su come sia possibile personalizzarli.

Un topic di guida sulle variabili esterne di questo consigliere esperto si rende quindi necessario, se provate ad aprire il sorgente troverete questo pezzo di codice (ho omesso le righe con gli asterischi che vengono utilizzate solo per una miglior presentazione nell'interfaccia di metatrader, nei valori di input dell'expert):

//Settaggi Stocastico
extern   int      e_Kperiod_Stochastic       = 8;
extern   int      e_Dperiod_Stochastic       = 2;
extern   int      e_slowing_Stochastic       = 1;
extern   int      e_method_Stochastic        = MODE_SMA;
extern   int      e_price_field_Stochastic   = 0;
extern   int      e_mode_Stochastic          = MODE_MAIN;
extern   int      e_shift_Stochastic         = 0;
extern   double   e_heart_Stochastic         = 60;
extern   double   e_Stochastic_tollerance    = 1;


In questo caso un'immagine vale più di mille parole:


Stocastico: valori di input




I nomi delle variabili sono quindi molto simili a quelli che trovate nella maschera degli indicatori di metatrader. 


//Settaggi W%R
extern   int      e_period_WPR               = 5;
extern   int      e_shift_WPR                = 0;
extern   double   e_heart_WPR                = -40;
extern   double   e_WPR_tollerance           = 1;


WPR: valori di input




//Settaggi RSI
extern   int      e_period_RSI               = 14;
extern   int      e_applied_price_RSI        = PRICE_CLOSE;
extern   int      e_shift_RSI                = 0;
extern   double   e_heart_RSI                = 60;
extern   double   e_RSI_tollerance           = 1;


RSI: valori di input




//Settaggi ADX
extern   int      e_period_ADX               = 14;
extern   int      e_applied_price_ADX        = PRICE_CLOSE;
extern   int      e_shift_ADX                = 0;
extern   double   e_ADX_tollerance           = 1;


ADX: valori di input




//Settaggi Ordini
extern   double   e_TakeProfit = 50;
extern   double   e_Lots = 0.1;
extern   double   e_Stoploss = 35;
extern   double   e_MagicID = 12345;


Le variabili che contengono il nome heart al loro interno non sono altro che i valori della famosa linea del cuore. Giocano un ruolo fondamentale anche le variabili che finiscono per _tollerance, queste sono il parametro discrezionale per decidere quando un segnale è ancora valido o meno.


Un esempio chiarirà meglio la situazione: facciamo finta che lo stocastico abbia superato il valore 60 dal basso all'alto e quindi abbia generato un segnale long, gli altri indicatori però non hanno ancora superato la soglia critica della linea del cuore e quindi l'ordine non viene inviato a mercato.
Dopo un paio d'ore anche gli altri indicatori si decidono a dare il segnale long, a questo punto però lo stocastico ha già raggiunto il valore 62. Se la variabile tollerance dello stocastico è impostata ad un numero maggiore di 2 il segnale sarà considerato valido e l'expert aprirà una posizione long, nel caso in cui la tolleranza sia invece impostata ad 1 non ci sarà alcun segnale di buy e non verranno inviati ordini a mercato.


Spendo le ultime parole per la variabile e_MagicID che non è altro che il famoso magic number degli expert advisor. Questo numero serve al programma per riconoscere le operazioni aperte da se stesso e non interferire quindi su ordini aperti manualmente o da altri expert advisor (ammesso che anche questi ultimi utilizzino il magic number e che il numero impostato non sia lo stesso).


Modificando questi valori di input si può quindi modificare radicalmente il comportamento dell'ea, al momento non ci sono controlli sui valori ammessi per queste variabili e una modifica non razionale può compromettere il funzionamento del programma restituendo nel migliore dei casi errori bloccanti o, addirittura adottando un'operatività "impazzita". Il consiglio, per i meno esperti, è quindi quello di testare il software con i valori di default.




 

5 commenti:

carlo10 ha detto...

Mi sono accorto di un errore, avevo impostato come valore di default per la variabile e_Stochastic_tollerance il valore 60, ho corretto mettendolo ad 1...Questo deve aver sballato anche il backtest

Anonimo ha detto...

Scusami ma nell'ea che ho importato io il parametro:

e_Method_Stochastic è uguale a 0 e non a MODE_SMA così come altri..da me sempre uguali a zero mentre sopra indicano PRICE CLOSE...

tutto normale?

Scusa ma cerco di guardare tutto pur capendo poco!

carlo10 ha detto...

In realtà per i seguenti parametri non so quale sia il valore consigliato dalll trading system:

e_method_Stochastic
e_mode_Stochastic
e_applied_price_RSI
e_applied_price_ADX

In seguito darò la lista di tutti i parametri possibili per queste variabili ma per ora il comportamento non dovrebbe cambiare di molto con un'impostazione piuttosto che un'altra

Anonimo ha detto...

Io modificato i parametri dei vari grafici spostando il Williams a 7 periodi, ADX a 5, lo stocastico su 7-3 e l'ho fatto dalla mascherina dei settaggi che compare su Metatrader quando uno va sulle proprietà dell'ea. Pensi che questo abbia causato qualche danno? Adesso mi sono reso conto che se i diversi grafici sono >60 (ADX escluso) lui continua ad andare in buy anche con valori dei grafici molto al di sopra della soglia richiesta...forse non dovevo customizzarlo?

carlo10 ha detto...

no le tue prove sono corrette, il motivo per cui apre posizioni sballate è douto ad errori che ho commesso sul codice (vedi l'ultimo post che ho pubblicato).

E' meglio se attendi la prossima release per continuare i test.

Posta un commento