PROREALTIME - PROBACKTEST

SISTEMI CON I CANALI DI DONCHIAN


 

Questi sistemi basati sui canali di Donchian con i quali vedremo sia sistemi con apertura alla sessione successiva che a breakout di prezzo (questi solo per simulazioni probacktest).

 

Come esempio utilizzeremo ancora il cambio forex EUR/USD.

Anche in questi sistemi, per la grandezza della posizione potete decidere se utilizzare il comando CASH, determinando l'ammontare dei contratti in base ad un dato capitale.

Oppure potete utilizzare SHARES, per il forex defininendo la grandezza del contratto, per commodities, indici ed azioni anche nell'opzione della % di rischio che abbiamo già visto più volte con la formula:

rischio/(entry-stop loss) nelle posizioni long o

rischio/(stop loss - entry) nelle posizioni short.

Questa ovviamente solo nei sistemi con i canali di donchian poichè viene definito un entry ed uno stop loss.

 

In questi sistemi definisco il contratto di compravendita con 1 shares come default.

Inoltre, le variabili (segnate in blu) sono da impostare con i range dei valori ed i passi che potete scegliere a vostro piacimento.

 


1 - 1 CANALE DI DONCHIAN

 

Questo sistema rappresenta il più semplice sistema di trading riguardante il famosissimo Canale di Donchian.

Le linee del canale rappresentano resistenze e supporti di un dato periodo "a".

Esso prevede che una volta che il massimo corrente perfora la resistenza si apra una posizione long od esca da una posizione short;

al contrario, quando un minimo perfora il supporto viene aperta una posizione short o esce da una posizione long.

 

In pratica il backtest restituisce i periodi più probabili di resistenze e supporti.

Ho proposto 2 versioni, quella normale che apre e chiude le posizioni alla barra successiva e la versione a breakout.

In questo caso, entra in posizione non appena il prezzo rompe la resistenza od il supporto.

La variabile da inserire è ovviamente il periodo del canale.

 

Si possono anche impostare due variabili, una per la resistenza ed una per il supporto:

Highest[a](High)

Lowest[b](Low)

 

Parametri delle variabili:

a= 5 - 200 passo 5

 

_________________________________________________________________________________

 

 

VERSIONE CLASSICA (NEXTBAR OPEN)

 

DEFPARAM CUMULATEORDERS=false

// definizione indicatori
resistenza= Highest[a](High)
supporto=Lowest[a](Low)
massimo=high
minimo=low

// definizione condizioni
C1=massimo>=resistenza[1]
C2=minimo<=supporto[1]

// apertura long
If C1 then
BUY 1 shares AT MARKET
ENDIF

// chiusura long
If C2 and LONGONMARKET THEN
SELL AT MARKET
ENDIF

// apertura short
If C2 THEN
SELLSHORT 1 shares AT MARKET
ENDIF

// chiusura short
If C1 and SHORTONMARKET THEN
EXITSHORT AT MARKET
ENDIF

 

Il risultato è stato 85 con un profitto pari al 62,60 % del conto.

 

Per impostare la % di rischio di compravendita, ossia

vogliamo comprare l'ammontare di lotti con 200 $ di perdita massima (2% sul conto totale di 10.000 $), dobbiamo scrivere i seguenti codici:

 

// apertura long
If C1 then
BUY 200/(close-supporto) SHARES AT MARKET

ENDIF

// apertura short
If C2 then
SELLSHORT 200/(resistenza-close) SHARES AT MARKET

ENDIF

 

 

VERSIONE BREAKOUT DI PREZZO

 

DEFPARAM CUMULATEORDERS=false

// definizione condizioni
C1=Highest[a](High)
C2=Lowest[a](Low)

// acquisto: posizione long

// se il prezzo tocca la resistenza C1 compra 1 contratto con un ordine stop in quel punto

If C1 then
BUY 1 shares AT C1 STOP

ENDIF
// chiusura long
If C2 and LONGONMARKET THEN
SELL AT C2 STOP
ENDIF
// apertura short
If C2 THEN
SELLSHORT 1 shares AT C2 STOP
ENDIF
// chiusura short
If C1 and SHORTONMARKET THEN
EXITSHORT AT C1 STOP
ENDIF

 

Parametri delle variabili:

a= 5 - 200 passo 5

Il risultato è stato 70 con un profitto pari al 73,09 % del conto.

CODICI PER % DI RISCHIO:

 

// apertura long
If C1 then
BUY 200/(C1-C2)SHARES AT C1 STOP

ENDIF

// apertura short
If C2 then
SELLSHORT 200/(C1-C2)SHARES AT C2 STOP

ENDIF

 


2 - DOPPIO CANALE DI DONCHIAN

 

Questo sistema prevede l'utilizzo di due canali di Donchian.

Il primo serve per definire il trend a lungo periodo, mentre il secondo quello a breve periodo.

Una volta che il massimo corrente perfora la resistenza a lungo periodo entra in posizione rialzista e quando il minimo perfora il supporto a breve periodo esce dalla posizione long.

Al contrario, quando il minimo corrente perfora a ribasso il supporto di lungo periodo apre una posizione short e quando il massimo perfora la resistenza a breve periodo esce dalla posizione short.

Le variabili riguardano i periodi in range dei due canali di donchian, quello lungo e quello breve.

Anche in questo caso ho messo le due versioni, quello dell'entrata in posizione all'apertura della barra successiva e quello a breakout delle linee del canale.

Anche in questo caso, come per l'incrocio delle 2 medie mobili, imposto la condizione che il canale lungo sia più grande di 1,5 volte quello breve.

 

Parametri delle variabili:

lungo= 50 - 300 passo 10

breve= 5 - 100 passo 5

 

VERSIONE CLASSICA (NEXTBAR OPEN)

 

DEFPARAM CUMULATEORDERS=false

// definizione indicatori
reslunga= Highest[lungo](High)
supplungo=Lowest[lungo](Low)
resbreve=Highest[breve](High)
suppbreve=Lowest[breve](Low)
massimo= High
minimo=low

// definizione condizioni
c1=massimo>=reslunga[1]

c2=minimo<=suppbreve[1]
c3=minimo<=supplungo[1]
c4=massimo>=resbreve[1]

c5=lungo>(breve*1.5)

// apertura long
If c1 and c5 then
BUY 1 shares AT MARKET
ENDIF

// chiusura long
If c2 and LONGONMARKET THEN
SELL AT MARKET
ENDIF

// apertura short
If c3 and c5 then
SELLSHORT 1 shares AT MARKET
ENDIF
// chiusura short
If c4 and SHORTONMARKET THEN
EXITSHORT AT MARKET
ENDIF

 

Il risultato è stato 100-45 con un profitto pari al 52,74 % del conto.

 

CODICI PER % DI RISCHIO:

 

// apertura long
If c1 and c5 then
BUY 200/(close-suppbreve[1])shares AT MARKET
ENDIF

// apertura short
If c3 and c5 then
SELLSHORT 200/(resbreve[1]-close) shares AT MARKET
ENDIF

 

 

VERSIONE BREAKOUT DI PREZZO

 

DEFPARAM CUMULATEORDERS=false

// definizione condizioni

C1= Highest[lungo](High)
C2=Lowest[lungo](Low)
C3=highest[breve](High)
C4=Lowest[breve](Low)

C5=lungo>(breve*1.5)

// acquisto: posizione long

// se il prezzo tocca la resistenza a lungo termine C1

If C1 and C5 then

// compra 1 contratto con un ordine stop in quel punto

BUY 1 shares AT C1 STOP
ENDIF
// uscita da posizione long (rivendita)

// se il prezzo tocca il supporto a breve termine C4
If C4 AND LONGONMARKET THEN

// liquida la posizione
SELL AT C4 STOP
ENDIF
// vendita: posizione short

// se il prezzo tocca il supporto a lungo termine C2
If C2 and C5 THEN

// vendi short 1 contratto con un ordine stop in quel punto
SELLSHORT 1 shares AT C2 STOP
ENDIF
// uscita da posizione short (riacqusito)

// se il prezzo tocca la resistenza a breve termine C3
If C3 and SHORTONMARKET THEN

// liquida la posizione
EXITSHORT AT C3 STOP
ENDIF

 

Risultato: 100-45 con un profitto pari al 68,70 % del conto, molto di più rispetto al precedente.

 

CODICI PER % DI RISCHIO:

 

// apertura long
If C1 and C5 then
BUY 200/(C1[1]-C4[1])SHARES AT C1 STOP
ENDIF

// apertura short
If c2 and c5 then
SELLSHORT 200/(C3[1]-C2[1]) shares AT C2 STOP
ENDIF

 


3 - 1 CANALE DI DONCHIAN + STOPLOSS/TRAILING PROFIT

 

Questo sistema è una variante dei due precedenti.

Utilizza un canale di Donchian per il trend dominante di lungo periodo mentre il supertrend come stop loss e trailing profit.

Come nei sistemi precedenti, quando il prezzo rompe il canale entra in posizione long o short, mentre il supertrend fa da stop loss iniziale ed in seguito da trailing profit man mano che il prezzo avanza nella direzione giusta e rimane fermo quando il prezzo ritraccia.

A differenza del puro sistema supertrend, la posizione viene chiusa sia qualora il supertrend incrocia il prezzo, sia se il minimo (per un uptrend) od il massimo (per un downtrend) tocca la linea del supertrend.

Questo per cercare di simulare un sistema manuale quando siamo noi a spostare il trailing profit man mano che il prezzo avanza.

 

Le variabili sono il periodo a del canale di Donchian, il moltiplicatore X ed il periodo Y del supertrend.

Al posto del supertrend possono essere richiamate con la funzione MYFUCTION il volatility stop, gli indicatori di Abraham, il parabolic SAR o qualunque altro indicatore lineare simile.

Anche in questo caso, ci sono le due versioni: la classica con apertura e chiusura dei trades all'apertura della sessione successiva e la versione a breakout, che apre chiude quando nel punto di incrocio del prezzo con gli indicatori.

 

Parametri variabili indicatori:

Canale di Donchian: 50-200 passo 5

Supertrend moltiplicatore X: 1-4, passo 0,5

Supertrend periodo Y: 8-30, passo 2

 

VERSIONE CLASSICA (NEXTBAR OPEN)

 

DEFPARAM CUMULATEORDERS=false

// definizione indicatori
resistenza = Highest[a](High)
supporto = Lowest[a](Low)

massimo = high
minimo = low

stoploss= supertrend[x,y]

// definizione condizioni
C1=massimo>=resistenza[1]
C2=minimo<=supporto[1]

C3=close>stoploss
C4=close<stoploss

C5=low<=stoploss

C6=high>=stoploss
// apertura long
If C1 and C3 then
BUY 1 shares AT MARKET
ENDIF

// chiusura long
If C4 or (C3 and C5) AND LONGONMARKET THEN
SELL AT MARKET

ENDIF

// apertura short
If C2 and C4 THEN
SELLSHORT 1 shares AT MARKET
ENDIF

// chiusura short
If C3 or (C4 and C6) and SHORTONMARKET THEN
EXITSHORT AT MARKET
ENDIF

 

Risultato: canale 90,

X: 3,5

Y: 8 con il 58,29% di profitto.

 

 

CODICI PER % DI RISCHIO:

 

// apertura long
If C1 and C3 then
BUY 200/(Close-stoploss)SHARES AT MARKET
ENDIF

// apertura short
If C2 and C4 then
SELLSHORT 200/(stoploss-close) SHARES AT MARKET
ENDIF

 

 

VERSIONE BREAKOUT DI PREZZO

 

DEFPARAM CUMULATEORDERS=false
// definizione indicatori
resistenza = Highest[a](High)
supporto = Lowest[a](Low)
stoploss= supertrend[x,y]
// definizione condizioni
C1=close>stoploss
C2=close<stoploss
// apertura long
If resistenza and C1 then
BUY 1 shares AT resistenza STOP
ENDIF
// chiusura long
If C2  or stoploss and LONGONMARKET THEN
SELL AT STOPLOSS STOP

ENDIF
// apertura short
If supporto and C2 THEN
SELLSHORT 1 shares AT supporto STOP
ENDIF
// chiusura short
If C1 or stoploss and SHORTONMARKET THEN
EXITSHORT AT STOPLOSS STOP
ENDIF

 

Risultato: canale 85,

X: 3,5

Y: 8 con il 59,88% di profitto.

 

 

CODICI PER % DI RISCHIO:

 

// apertura long
If resistenza and C1 then
BUY 200/(resistenza-stoploss) shares AT resistenza STOP
ENDIF

// apertura short
If supporto and C2 THEN
SELLSHORT 200/(stoploss-supporto) shares AT supporto STOP
ENDIF

 



Scrivi commento

Commenti: 0