Friday, May 29, 2015

Non solo ingressi market

Programmazione ProRealtime
by Marcello Belguardi

Ci sono due principali classi alle quali sembrano appartenere i trading systems:



  • Trend following, che comprende anche la sottoclasse dei breakout.
  • Reversal o controtrend, mean reverting, contrarian: tutti termini per indicare lo stesso concetto.

Analizzandole, le due tipologie di setup sono piuttosto differenti perchè:


  • il segnale di un sistema trend following indica una alta probabilità che la corrente direzione del trend persista. Il segnale arriva infatti dopo un turning point.
  • il segnale di un sistema reversal indica una alta probabilità che la corrente direzione del trend non persista e si esaurisca in fretta. Il segnale arriva infatti prima di un turning point.

Resta inteso ovviamente che quando si è in posizione il trade avrà successo se e solo se dal punto di ingresso al punto di uscita dalla posizione esisterà un trend composto da un numero sufficiente di barre che assecondi la direzione del trade long o short, sia che si sia entrati poco dopo l’inizio del trend (trend following) o prima dell’inizio del trend (reversal).

Senza addentrarci qui di quali specifiche soluzioni logiche si avvalgano le due differenti categorie di sistemi si può dire che oltre agli specifici setup esistono precise tipologie di ingressi o entry che possono confermare o non confermare i setup.


Oltre agli ingressi di tipo market, esistono infatti gli ingressi di tipo stop e limit. Vediamoli:


L’ordine di ingresso di tipo stop viene eseguito solo se almeno un prezzo sulla barra che segue l’ordine supererà un determinato ammontare in $ o euro (per posizioni long) o ne sia inferiore (per posizioni short).


L’ordine di ingresso di tipo limit viene eseguito solo se un prezzo sulla barra che segue l’ordine rimarrà inferiore ad un determinato ammontare (per posizioni long) o superiore ad esso (per posizione short).


Per esempio un sistema breakout che preveda un superamento di un certo prezzo affinchè si entri in posizione può trarre beneficio da un ordine di tipo stop.


Se si decide per esempio in un contesto daily che si entrerà in posizione long solo se l’apertura di domani è maggiore della chiusura di oggi (o del massimo di oggi), sarà sufficiente impostare un ordine stop con il valore della chiusura (o del massimo) di oggi.


Fortunatamente in ProRealtime questo meccanismo è implementabile perchè esiste un apposito comando. 


Analogamente, in un sistema reversal, per coadiuvare l’idea di anticipare il trend che verrà, si può pensare di entrare in posizione solo se il prezzo di domani sarà inferiore al prezzo di oggi, per esempio inferiore alla chiusura o al minimo di oggi. Questo è implementabile con Prorealtime perchè esiste l’apposito comando.


Iniziamo a vedere come funziona il normale ordine market. In questo caso non ci sono particolari condizioni sulla entry. Il nostro setup è un segnale scattato l’11 di marzo in chiusura di barra che dice di entrare il 12 di marzo in apertura a mercato.

Piattaforma ProRealtime

Il codice per la simulazione equivalente è il seguente:

data = Date

goLong = (data = 20150311)


IF  goLong THEN

BUY 1 CONTRACTS AT MARKET
ENDIF

graph goLong as "Long"



Questa volta invece, come anticipato, si vuole seguire una strategia trend following o breakout. Dato il segnale in chiusura di barra l’11 Marzo vorrei entrare sulla barra successiva solo se il prezzo supererà il massimo di oggi. Utilizzo un ordine stop con il seguente effetto:


Piattaforma ProRealtime

Notare nella figura il triangolino con il livello di ingresso. La simulazione ha il seguente codice:

data = Date

goLong = (data = 20150311)


if  goLong then

Buy 1 contracts at high stop
endif

graph goLong as "Long"



Terzo caso: la strategia è reversal e si vuole insistere nell’andare controtrend, per cui dato il segnale il 5 Marzo chiederò al sistema di entrare il 6 Marzo solo se il prezzo scenderà sotto il minimo del 5 marzo, con un ordine di tipo limit. Questo l’effetto:


Piattaforma ProRealtime


E questo il codice equivalente:

data = Date

goLong = (data = 20150305)


if  goLong then

Buy 1 contracts at low limit
endif

graph goLong as "Long"


Gli ordini di tipo stop e limit possono essere anche interpretati come filtri, perchè se il movimento sottostante non è confermato anche dalla entry non si entrerà, evitando così dannosi falsi segnali.

Per ora è tutto. Buon trading!