Addict FX : Forex, Trading, Systèmes et Backtests

Bonjour à tous,

 

Un grand nombre de stratégies de trading sont basées sur des principes de Trend Following. Les règles de base sont simples : identifier un trend haussier pour entrer long et un trend baissier pour entrer short.

 

La plupart des stratégies que l'on trouve dans la littérature s'appuient sur des moyennes mobiles associés à un ADX. L'ADX permet non seulement d'identifier un trend mais il permet de quantifier la force de ce dernier. En général les moyennes mobiles sont simplement là pour identifier le sens du trend. 

 

Afin de compléter l'arsenal de ces méthodes connues nous allons mettre au point un indicateur simple capable de nous fournir de manière réactive le sens et la force d'un trend. Cet indicateur, le HMASlope est directement dérivé d'une moyenne de Hull.

 

Le HMASlope est la mesure de la pente d'une moyenne de Hull. Le chart ci-dessous représente cet indicateur. Pour une meilleure lecture les barres sont colorées en vert lorsque HMASlope est positif et en rouge lorsque HMASlope est négatif.

 

 

 (Cliquer pour agrandir)

 

La pente est exprimée en pips, elle est égale à la différence entre deux points de la moyenne de Hull.

 

Nous allons maintenant créer un système basé exclusivement sur la force du trend. Plus le HMASlope est élevé en valeur absolue, plus le trend est puissant.

 

HMA Slope Variations

 

- HMASlope = pente de la HMA (30) exprimée en pips

- On entre en position uniquement entre 08h00 et 18h00 heure de paris

- On sort chaque soir sur la dernière barre

- Initial Stop Loss à 40 pips

 

- Buy Long if HMASlope > 80

- Sell Short if HMASlope < -80

- Sell if HMASlope < 20

- BuyToCover if HMASlope > -20

 

En clair pour les positions longues :

- On achète lorsque le HMASlope dépasse les 80 : achat sur accélération

- On revend lorsque le HMASlope repasse sous les 20 : vente sur ralentissement

Pour les positions short c'est exactement l'inverse.

 

Le Backtest porte sur EURUSD en 60 minutes sur 3 ans et demi. 

 

Performance Report

 

All Trades 333 Net Profit 26 080.00 Profit Factor 1.67 Winning Trades 52.25% Losing Trades 45.65% Nb. Winning Trades 174 Nb. Losing Trades 152 Avg. Winning Trade 374.48 Avg. Losing Trade -257.11 Largest Winning Trade 1 330.00 Largest Losing Trade -430.00 Max. Consecutive Winning Trade 8 Max Consecutive Losing Trade 6 Payoff Ratio 1.46 Maximum Intraday Drawdown -2 985.00 Expectancy 78.32    

 

 

Equity Curve

 

 

 

 

Le pourcentage de trades gagnants ainsi que l'Expectancy  et surtout le Max Drawdown laissent penser que ce système peut être traité. L'Equity Curve nous le confirme, elle offre une base de travail confortable avec une seule véritable zone de drawdown dont le montant est toutefois limité à $3 000.

 

Avoir de bons résultats pour un système ne suffit pas, encore faut-il qu'il soit tradable. Pour cela deux conditions doivent être réunies :

 

- Des horaires d'entrée et de sortie de position réalistes : la contrainte d'entrée de 08h00 à 18h00 et la sortie en fin de journée sont là pour ça

 

- La présence d'un stop loss initial pour maîtriser son risque maximal par trade : ici il est mis à 40 pips, la taille de position peut alors être adaptée en fonction de ce risque

 

 

AddictFX

Les backtests de cet article sont réalisés sur Tradestation, mais peuvent tous être adaptés à Wealth-Lab ou Amibroker.

 

Attention : les résultats passés ne présagent en rien des résultats futurs. Effectuez vos propres études avant de mener toute opération financière. Le Forex est un marché à haut risque sur lequel vous pouvez perdre plus que votre capital.

 

Dim 19 mar 2006 22 commentaires

Content de te lire Addictfx, je commençais à me demander si tu abandonnais ton blog...


 

jay - le 20/03/2006 à 00h34

Intéressant ce «HMASlope» mais comment est-il calculé ?


Merci


ss

Syl20 - le 20/03/2006 à 02h23
Bonjour,

 

content egalement de ton retour.

 

Ce systeme a l'air vraiment prometeur !

 

Pourquoi le ROA ne figure-t-il pas dans les stats de resultat.

 

merci
Laurent - le 20/03/2006 à 10h34

Tout d'abord bravo pour ce système!


Je n'arrive malheureusement pas à insérer l'indicateur de pente HMASlope sur un chart; en effet, tu livres dans ta newsletter le code de la fonction HMASlope mais pas de l'indicateur qui en découle. Ce qui veut dire que je vusualise très bien la HMA, que j'insère la stratégie sans problème mais que je ne peux pas vérifier les signaux visuellement. Mes connaissances, qui vont en grandissant, ne me permettent malheureusement pas encore de coder cet indicateur. Serait il possible de recevoir le code correspondant de la manière qui t'arranges le mieux.


Encore merci!


Pierre

pierre - le 20/03/2006 à 15h28
Le système semble robuste!

Merci pour ta contribution qui m'est d'une grande aide.
Franck - le 20/03/2006 à 20h40

Je vais répondre à toutes vos questions.


Jay : je n'ai pas abandonné le blog, juste mis en suspend à cause d'une grosse surcharge de travail ces derniers temps.


Syl20 : Voici le calcul en code Easy Langage



inputs: period( numericsimple ), smooth (numericsimple), type (numericsimple) ;


If type = 0 then
 Value1 = AverageFC (Close, period)
else if type = 1 then
 Value1 = HMA (Close, period);


HMASlope = Average (BigPointValue * (Value1 - Value1 [1]), smooth);


Il s'agit donc de la pente ramenée en pips.


Laurent : Je n'utilise simplement jamais le ROA pour évaluer la qualité d'un système.


Pierre :


Voici le code de l'indicateur



Input : period (30), smooth (1), type (1);
Var : upColour(Blue), downColour(Red);


Value1 = FXSlope (period, smooth,type);


Plot1( Value1, "HMA Slope" ) ;
Plot2(0, "ZeroLine");


if (Value1 > 0) then
 SetPlotColor(1, upColour)
else if (Value1 < 0) then
 SetPlotColor(1, downColour);


Voici maintenant le Paint Bar  



Input : period (30), smooth (1), type (1), upColour(Green), downColour(Red);


Value1 = HMASlope (period, smooth, type);


if Value1 > 0 then PlotPaintBar( High, Low, Open, Close, "HMASlope", upColour);
if Value1 < 0 then PlotPaintBar( High, Low, Open, Close, "HMASlope", downColour);


Ne pas oublier à la création de l'indicateur de positionner ses properties avec Scaling/RightAxis et subgraph à 2 pour le voir affiché dans un panel inférieur.


 

AddictFX - le 21/03/2006 à 23h16

Merci pour ces précieuses indications...


Pierre

Pierre - le 22/03/2006 à 11h56
Merci pour ce blog et ses analyses qui sortent de l'ordinaire..
et la disponibilité de son auteur
On ne le dira jamais assez !

:p
rikki - le 30/03/2006 à 18h49

Merci pour cette analyse, mais n'utilisant pas Tradestation, je ne comprends pas comment implémenter cet indicateur sous Excel.


J'ai réussi à programmer le HMA, mais ces lignes sont vraiment obscures pour moi :


inputs: period( numericsimple ), smooth (numericsimple), type (numericsimple) ;
If type = 0 then
 Value1 = AverageFC (Close, period)
else if type = 1 then
 Value1 = HMA (Close, period);


HMASlope = Average (BigPointValue * (Value1 - Value1 [1]), smooth);


 


Que signifie le BigPointValue ? Smooth ? la fonction average ?


 


Merci pour votre aide.

Tark - le 30/04/2006 à 16h55
Bonjour,

je ne comprends pas comment votre HMA slope peut avoir des valeurs allant jusqu\\\'à 80 pips (parfois même bien au-delà de 100).
En effet si le HMA slope est la différence (exprimée en pips) entre 2 valeurs de la HMA, ces valeurs me semblent beaucoup trop importantes.
Cette valeur ne devrait d\\\'après moi que rarement excéder les 20-30 pips, en tout cas en UT 1H.
Les valeurs à prendre en compte pour le calcul de la différence sont pourtant bien les valeurs successives de la HMA ?
Merci
Stic - le 24/01/2008 à 14h56