lunedì 29 novembre 2010

Moving Candle EA versione 2: nuova gestione delle uscite e correzioni varie

La seconda versione del Moving Candle EA corregge alcuni errori riscontrati da alberto nella prima release (articolo: Moving Candle EA) ed introduce delle modifiche alla strategia.

errori prima versione moving candle EA

Le novità sono:

  • L'apertura degli ordini viene eseguita solo vicino all'incrocio del prezzo con la media mobile, l'ordine viene aperto esclusivamente nella candela successiva all'incrocio.
  • Aggiunta una nuova modalità di uscita dalle posizioni, ora è possibile scegliere se chiudere l'ordine quando il prezzo torna a toccare la media mobile.
  • Apertura delle posizioni solo quando il prezzo si trova ad una minima distanza dalla media.
  • Aggiunta dell'ADX per impedire l'ingresso durante le fasi laterali del mercato

 

Aprire un solo ordine per candela: funzione isLastOrderCandle

A seconda del trading system che si intende sviluppare il metodo di gestione delle uscite da un trade può essere differente:

  • chiusura dell'ordine per raggiungimento di take profit o stop loss; 
  • chiusura dell'ordine in seguito a determinati eventi, ad esempio l'incorcio di due medie mobili o altre condizioni.

Nel secondo caso in particolare si possono verificare dei casi per cui il segnale di ingresso è ancora valido e l'ordine viene quindi chiuso ripetutamente ogni volta che se ne apre uno nuovo.

A seconda della strategia adottata una possibile soluzione può essere quella di non aprire nuovi ordini su di una candela se esiste già un ordine chiuso nella stessa barra.

 

martedì 23 novembre 2010

Iona Buy & Sell EA

Questo expert advisor è stato realizzato sulle specifiche di iona nella discussione Iona Buy & Sell EA, di seguito un riassunto del trading system:

  1. Apertura posizioni long quando il prezzo è maggiore di EMA 5 HIGH e si trova sopra ad EMA 90 da almeno 7 candele.
  2. Apertura posizioni short quando il prezzo è minore di EMA 5 LOW e si trova sotto ad EMA 90 da almeno 7 candele.
  3. Chisura posizione long quando RSI a 14 è minore uguale a 30
  4. Chisura posizione short quando RSI a 14 è maggiore uguale a 70
  5. Take profit stretto, stop loss assente (le posizioni vengono chiuse in base al valore dell'RSI come specificato nei punti 3 e 4)


iona buy sell trading system


E' possibile personalizzare il comportamento andando a modificare i seguenti valori di input:
 

domenica 21 novembre 2010

Come usare il Magic Number negli expert advisor di metatrader

Il magic number o magic id è un numero che viene utilizzato all'interno di un expert advisor in fase di apertura, chiusura e ricerca degli ordini.

Lo scopo principale di questo numero magico è quello di permettere l'esecuzione di più expert advisor contemporaneamente (o di operazioni manuali) sulla stessa piattaforma senza che gli ordini aperti manualmente, o da un expert, vadano ad interferire con il funzionamento dell'altro.

Provate ad immaginare che cosa succederebbe se le operazioni che aprite venissero chiuse dall'ea in funzione su di un altro grafico di metatrader, sicuramente un disastro incontrollabile.

Non tutti i programmatori però utilizzano il magic number all'interno del loro codice. Quando non si è sicuri,  o non si conosce il funzionamento di un consigliere esperto, l'unica soluzione è quella di farlo girare in modalità stand-alone. Solo in questo caso si è certi che l'ea non interferisca con gli altri ordini.

Andiamo ora a vedere i passi necessari per utilizzare correttamente il magic number:
 

domenica 14 novembre 2010

Kumo Breakout EA: Ichimoku più medie mobili

Il Kumo Breakout EA è un expert advisor realizzato sul seguente trading system:

Condizioni per aprire posizione Long:
  • il prezzo attraversa la nuvola di kumo (ichimoku) dal basso verso l'alto
  • la media mobile veloce è sopra la media mobile lenta
Condizioni per aprire poszione Short:
  • il prezzo attraversa la nuvola di kumo (ichimoku) dall'alto verso il basso
  • la media mobile veloce è sotto la media mobile lenta


kumo breakout trading system


La gestione delle uscite viene al momento effettuata da take profit, stop loss o trailing stop i cui valori vengono impostati tramite variabili esterne:

 

venerdì 12 novembre 2010

Individuare una nuova candela in metatrader: funzione isNewCandle()

Chi programma in mql conosce sicuramente la convenzione per cui la candela attualmente in costruzione è la candela numero 0, la penultima è la candela numero 1, la terzultima la numero 2 e così via.

Se da un lato questo riferimento ci semplifica la vita, dall'altro ci complica un pò le cose. Come possiamo capire quando una nuova barra si è formata? Con il codice ci riferiamo alla candela numero 0 e siamo quindi sempre posizionati sulla barra attualmente in formazione che cambia ogni tot tempo a seconda del timeframe selezionato.

Può sorgere quindi la necessità di individuare una candela non tramite id, ma tramite l'orario di apertura. A questo proposito possiamo sfruttare la funzione built-in di metatrader iBarShift() che ci restituisce l'id della candela in base all'orario passato come parametro.

La funzione isNewCandle(), che riporto in seguito, ha lo scopo di informarci se la candela attualmente in formazione è sempre la stessa rispetto alla quotazione precedente oppure se si è formata una nuova candela nel grafico:

 

Alternate Buy and Sell EA

Questo expert advisor è stato realizzato secondo le seguenti specifiche:
  • una volta lanciato l'EA, si aspetta la nuova candela del time frame su cui viene applicato (esempio: se TF = H1 ed MT4 aperto alle 08.30, aprirà la prima posizione alle 09.00)
  • chiusura della posizione in caso di: stop loss, take profit o all'apertura del nuovo time frame (alle 10.00 in questo caso) 
  • allo stesso tempo, con la nuova candela apre anche una posizione in sell
  • alterna quindi operazioni long ed operazioni short
  • parametri da settare: lotto di partenza, stop loss, take profit
alternate buy and sell trading system

 

mercoledì 10 novembre 2010

Gestire il Trailing Stop con MQL

Il Trailing Stop è una delle tecniche maggiormente utilizzate nel trading perchè permette di spostare lo stop loss in profitto quando una posizione inizia a guadagnare. In poche parole rappresenta la distanza, in pips, a cui deve essere impostato lo stop rispetto all'attuale prezzo del cross.

La piattaforma metatrader permette di attivare rapidamente il trailing stop semplicemente andando a selezionare, con il tasto destro del mouse, un ordine aperto:

Trailing Stop in Metatrader

E se volessimo inserire questa funzionalità all'interno di un expert advisor? Esiste già una funzione built-in di metatrader che si occupa di modificare lo stop loss a nostro piacere?

 

martedì 9 novembre 2010

Moving Candle EA

Il Moving Candle EA è un expert advisor realizzato sul seguente trading system:
  • Media mobile 50, Time Frame 5min 
  • Se il prezzo è sopra la media, alla prima candela chiusa positiva LONG 
  • Se il prezzo è sotto la media, alla prima candela chiusa negativa SHORT 
  • Stop Loss 15, Take Profit 45 
  • Quando si è in guadagno di un certo numero di pips, spostare lo stop loss al Break Even
  • Orario di apertura ordini: dalle 9 o 9 e 30 alle 11 
L'ea utilizza Time Frame e cross del grafico su cui viene applicato ed apre apre una sola posizione alla volta, è possibile personalizzarlo con le seguenti variabili esterne:

 

lunedì 8 novembre 2010

Gestione del BreakEven Stop in metatrader: portare lo stop a BE

Durante lo sviluppo di un expert advisor capita spesso di dover modificare i valori degli ordini aperti in metatrader ed in particolare di dover spostare lo StopLoss.

Le richieste più frequenti nel forex e nel trading in generale riguardano la gestione di:
- trailing stop: spostare lo stop loss in gain man mano che il profitto della posizione aumenta;
- breakeven stop: spostare lo stop allo stesso valore del prezzo di apertura quando si è in profitto di un certo numero di pips. In questo modo si elimina completamente il rischio di chiudere l'operazione in negativo.

Lo scopo di questo articolo non è quello di analizzare vantaggi e svantaggi delle due tecniche di money management ma è quello di mostrare una possibile realizzazione del breakeven stop in mql.
 

sabato 6 novembre 2010

Confrontare le ore in MQL: funzione isTradingTime()

Quando si sviluppa un expert advisor per il forex trading può capitare di avere l'esigenza di aprire ordini solo in determinati momenti della giornata, o nel mio caso, in un intervallo di tempo compreso tra due orari definiti dall'esterno.

Questa richiesta non è complessa da gestire ma se pensate di cavarvela con un semplice confronto tra date in mql probabilmente andrete incontro a qualche grattacapo, nel metaeditor troviamo infatti il seguente esempio:

D'12:30:27' //equal to D'[compilation date] 12:30:27'
 

mercoledì 3 novembre 2010

Indicatore metatrader che visualizza il prezzo di chiusura delle candele

Questo indicatore di metatrader permette di visualizzare, nel grafico su cui viene applicato, il prezzo di chiusura di ogni singola candela:

prezzo chiusura candele

E' possibile possibile personalizzare l'aspetto dell'indicatore andando a modificare i valori di input: