Comment prévoir une très grosse tendance?
Est-il possible de prédire une très grosse tendance, et si oui avec quoi?
Suite à une question posée sur le chat o-bo.com, j’ai lancé un test géant sur des tonnes d’indicateurs et de paramétrages, sur plusieurs paires, pour ne conserver que l’indicateur qui pourrait permettre non pas de prédire les grosses tendances (impossible à mon avis), mais qui pourrait au moins nous permettre de nous en rapprocher et de maximiser nos chances de l’attraper.
Alors, est-il possible de prédire une grosse tendance?
Pour cela, j’ai créé un petit robot dont le rôle essentiel est de rentrer sur un signal D1, de conserver pendant X pips le trade, puis d’en sortir, d’attendre le prochain signal, etc… Je lui ai ajouté un stoploss et un breakeven, pour éviter les pertes en cas de faiblesse. J’avais donc mon outil de test.
En effet, si en utilisant ce principe, sans même suivre le trend sur toute sa longueur, ce robot est profitable avec assez peu de pertes, alors si on utilise une stratégie de pyramidage, de trend following, avec un bon money management, alors il deviendrait ultra rentable.
J’ai lui ai donc tout fait tester sur diverses grosses paires pendant 2 jours.
Puis un indicateur est sorti du lot.
Puis en optimisant, j’ai trouvé un paramétrage qui lui permet d’être quasiment utilisé sur toutes les paires et toutes les UT possibles avec très peu de pertes.
Le voici en action sur une des paires testées sur une période de 3 années:
On voit donc qu’en entrant sur un signal, puis en conservant le trade un moment et en sortant sans même attendre la fin de la tendance, il est profitable, puisqu’avec cette stratégie toute simple, sur EURUSD, il est capable de faire x10 sur le capital en presque 3 ans.
Si on programme donc ensuite notre systême avec pyramidage, suivi de tendance, prises de profits régulières, on a un robot de trading exceptionnel, et cet indicateur peut lui servir de base.
Alors, quel est donc cet indicateur?
Cet indicateur est le Commodity Chanel Index, appelé communément CCI que l’on applique sur du D1.
Essayez-le sur un graph, même avec d’autres UT, vous verrez son efficacité (ici sur EURGBP par exemple) en H1:
On voit bien qu’il colle aux tendances.
Mais quel est donc son paramétrage optimal?
Sur tous les tests que j’ai réalisés, il s’avère que c’est le CCI avec une période de 38 appliquée sur un graph D1 qui donne les meilleurs résultats.
En cherchant un peu plus, j’ai remarqué que le FX Snipper CCI T3, qui est un CCI auquel on applique une équation polynomiale de 3e degré est encore plus efficace, car il lisse la courbe du CCI. Cela crée un léger retard, mais moins de faux signaux.
Où trouver ces indicateurs pour Metatrader 4?
Vous trouverez le CCI par défaut dans les indicateurs de base de MT4, comme sur beaucoup d’autres plateformes.
Et vous trouverez le FX Snipper’s T3 CCI à cette adresse.
N’oubliez pas de leur appliquer une période de 38 !
Bien entendu, je ne vous demande pas de me croire sur parole. Il est important que vous testiez cela par vous-même, car on ne peut utiliser un indicateur ou une stratégie juste comme ça en faisant confiance. Cet article montre également l’importance des backtests, qui peuvent faire gagner un temps incroyables sur nos recherches, et donc l’importance d’apprendre à coder nos robots.
Bons Trades.
Si vous avez apprécié cet article, s'il vous plait, prenez le temps de laisser un commentaire ou de souscrire au flux afin de recevoir les futurs articles directement dans votre lecteur de flux.
Commentaires
Bonjour
Toujours tres attentif a vos programmations et idée de traiding je suis un convaincu de l’indicateur CCI pouvez vous me fournir la programmation pour Pro real time de votre mail posté le 21 octobre 2009
Merci d’avance
Merci Chris,
Cela tourne toujours autour des fondements du MagicTrend.
Aurais-tu la gentillesse de nous traduire en PROREALTIME le fameux FX Snipper’s T3 CCI : son lissage semble fort appréciable.
MERCI !!!
malheureusement, là, ca dépasse mes compétences sur prorealtime…
si quelqu’un a le courage de s’y attaquer, n’hésitez pas à poster l’indic ici
Bonjour,
Vos tests sont réalisés sur la totalité de la période?
Si tel est le cas, cela se rapporte plus à du curve fitting et cela me parait dangereux à l’usage.
Néanmoins, l’approche est très intéressante surtout en multisupport.
Est-il possible de générer une equity curve pour plusieurs supports à la fois avec metatrader?
Merci.
tout à fait, les tests sont réalisés sur les 3 années, sur toutes les grosses paires, et uniquement sur les début de grosses tendances.
plus long serait trop fastidieux en terme de temps de calcul pour moi.
rappelons que le but n’est pas d’en faire un EA de trading, mais de l’utiliser comme un moyen de tester des prises de grosses tendances. pourquoi ? pour prendre une tendance naissante, dans l’idée d’ajouter ensuite des pyramidages successifs.
si quelqu’un veut tester sur plus longtemps, c’est avec plaisir que je publierais les résultats ici… car pour tester sur 3 ans, ca m’a pris 2 jours de calculs.
Pour des courtils,
Il existe de nombreuses façons de programmer la T3 de Tillson, je te propose la suivante :
//====================================================
//Lissage du CCI(38) avec la T3 de Tillson
p=5 //période de calcul du lissage de Tillson
facteur=.7 //facteur du lissage de Tillson
a=(exponentialaverage[p](CCI))*(1+facteur)
b=(exponentialaverage[p](exponentialaverage[p](CCI)))*facteur
M1=a-b
a1=(exponentialaverage[p2](M1))*(1+facteur)
b1=(exponentialaverage[p2](exponentialaverage[p2](M1)))*facteur
M2=a1-b1
a2=(exponentialaverage[p2](M2))*(1+facteur)
b2=(exponentialaverage[p2](exponentialaverage[p2](M2)))*facteur
CCIT3=a2-b2
Return CCIT3
//====================================================
Bien cordialement.
voila j’ai essayé de faire l’expert , mais il bug ….
qui pourrais m’aider a le mettre au point ??
//+——————————————————————+
//| Expert PM1.mq4 |
//| Copyright © 2009, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+——————————————————————+
#property copyright “Copyright © 2009, MetaQuotes Software Corp.”
#property link “http://www.metaquotes.net”
//—- input parameters
extern bool EachTickMode = True;
extern int Slippage=30;
//—- parametres pour l’ordre passé suivant le site d’ O BO
extern int StopLoss= 25;
extern int BreakEven=15;
extern bool Pyramidage=false;
extern int TakeProfit=50;
datetime PreviousBar; // record the candle/bar time
int Current;
int BarCount;
static int myDigits = 4;
static double thisAsk;
static double thisBid;
int Magic=123456;
double Lots=1;
int MAPeriode;
int CapitalInitial;
//+——————————————————————+
//| expert initialization function |
//+——————————————————————+
int init()
{
//—-
CapitalInitial=AccountBalance();
BarCount = Bars;
if (EachTickMode) Current = 0; else Current = 1;
if ( Point == 0.01 ) { myDigits = 2;
}
else
if ( Point == 0.001 ) { myDigits = 3;
}
else
if ( Point == 0.00001 ) {myDigits = 5;
}
return(0);
}
//+——————————————————————+
//| expert deinitialization function |
//+——————————————————————+
int deinit()
{
//—-
//—-
return(0);
}
//+——————————————————————+
// This function return the value true if the current bar/candle was just formed
//+——————————————————————+
bool NewBar()
{
if(PreviousBar0)OrdersList();
//—-
if(OrdersTotal() 0 && fx_cci_precedent<0)
{
// On affiche une Alerte
{
Alert(”Alerte à la Hausse “,Symbol());
OrderSend( Symbol(), OP_BUY, Lots, NormalizeDouble(Ask,myDigits), Slippage, 0,0, “Expert PM1″, Magic, Blue);
}
// ——————————————
// Test de signal baissier
// Franchissement à la baisse du seuil des 0
// ——————————————
if (fx_cci_actuel 0)
{
// On affiche une Alerte
{
Alert(”Alerte à la Baisse “,Symbol());
OrderSend(Symbol(),OP_SELL,Lots, NormalizeDouble(Bid,myDigits),Slippage, 0,0, “Expert PM1″, Magic,Red);
}
}
}
return(0);
}
//+——————————————————————+
}
void OrdersList()
{
for (int cnt=0;cntPoint*BreakEven&&OrderStopLoss()Point*BreakEven&&OrderStopLoss()>OrderOpenPrice())
{
if(Pyramidage==true)
{OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-StopLoss,OrderTakeProfit(),0,LightGreen);
OrderSend(Symbol(),OP_SELL,0.1,Bid,30,0,0,NULL,123456,Red);}
else
{OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,Yellow);
}
return(0);
}
}
}
}
}
Bonjour,
Comme Chris j’ai fait un EA tres simple. prise de position des qu’un signal arrive, j’ai teste sur 1 an.
pas de break even(SL fixe) et profit sur X pips. et cela fonctionne
par contre ma courbe ne ressemble pas du tout à la tienne elle est beaucoup plus reguliere, j’ai teste sur des lots fixe. j’ai effectué cela sur eur/usd. aujourd hui j’ai lancé sur 2 dernieres année.
par contre j’ai une question. comment utilisez vous le T3? le signal est declenché au passage du niveau 0? ou vous l’utilisez comme le CCI standard signaux declenche a +100 et -100?
autre point tres surprenant. lorsque j’analyse les resultats je vois des signaux achat ou vente qui ont été declenché alors qu’a ce meme moment on ne les voit pas sur la courbe. pourquoi? la courbe ne laisse pas tout transparaitre? ou les sources utilisé pour les backtest sont differentes de celle du cours reel?
Merci
Mat
magnifique!
ca fait plaisir de voir qu’une personne se sert de ce qui est ici pour chercher encore plus loin
je me souviens plus exactement quel script j’avais fait pour les besoins de cet article, mais de mémoire, il blindait coté gestion des lots, ce qui explique peut etre l’irrégularité de la courbe.
Quel est le profit final sur 3 ans et le drawdown?
Salut,
J’ai lancé sur 2 ans et je posterais le resultat. apres je lancerais sur 3 ans mais ca risque de prendre du temps en calcul. j’etudie la posibilité de faire du calcul partagé. car les backtest sont tres gourmand en CPU.
Chris dans ton script tu as utilisé les entrées sur alertes au franchissement du 0 ou tu utilise comme en cci standard au passage de +100 et -100?
quelqu un a t’il une reponse sur le fait que j’ai des entrées en backtest que je ne vois pas visuellement sur le graph?
les données du backtest sont bien les meme qu’en reel? ou viennent elle d’une autre source metaquote par exemple?
je pense qu’il faut exploiter cet indicateur pour l’utiliser sur les grosses tendances afin d’optimiser les mouvements journaliers ou de la semaine. Car il me semble que l’orsque l’on a un script qui rentre en journalier il est plus efficace s’il à la connaissance de la tendance. cela evite les pertes inutiles qui parasites les gros gain.
a bientot
resalut
j ai les resultats sur 2 ans de janvier 2008 a maintenant
59% de benefice. compte standars et lot de 0.01. surtout realise sur 2009
un break even s’impose.
je vais essayer de rajouter des trucs avant de lancer sur 3 ans ou plus
Merci pour ce programme smallcaps90, mais je ne comprends pas comment on paramètre les 38? J’ai du louper un truc peut être?
Salut Chris,
Peux tu préciser à quel niveau tu places ton stop loss et ton take profit dans cette stratégie ?
Merci pour ton site vraiment interessant
j’ai commencé ce site en détaillant certains indicateurs utiles.
puis on me demandait comment les utiliser dans une stratégie.
alors j’ai développé des stratégies.
puis on m’a demandé comment les programmer.
alors j’ai développé des scripts d’EA.
puis aujourd’hui il faudrait que je donne les paramètres que j’utilise.
ca ne marche pas comme cela. il faut un minimum de travail perso de la part de chacun.
si je commence à donner mes optis, finalement je donne un package complet prêt à l’utilisation…
Bonjour fredo,
J’avais tracé, à des fins de comparaison comme l’a fait chris, un CCI[38] sous les cours si bien que le CCI lissé avec le T3 de Tillson prenait le même paramètre.
Tu peux aussi définir une variable :
MonCCI=CCI[38](typicalPrice)
et l’utiliser ensuite comme ci-dessous :
//============================
//Prévoir une très grosse tendance
//Par Lissage de Tillson du CCI[38]
//============================
p=5 //période de calcul du lissage de Tillson
facteur=.7 //facteur du lissage de Tillson
MonCCI=CCI[38](typicalPrice)
a=(exponentialaverage[p](MonCCI))*(1+facteur)
b=(exponentialaverage[p](exponentialaverage[p](MonCCI)))*facteur
M1=a-b
a1=(exponentialaverage[p](M1))*(1+facteur)
b1=(exponentialaverage[p](exponentialaverage[p](M1)))*facteur
M2=a1-b1
a2=(exponentialaverage[p](M2))*(1+facteur)
b2=(exponentialaverage[p](exponentialaverage[p](M2)))*facteur
CCIT3=a2-b2
Return CCIT3
//fin du code
Cordialement.
Bonjour,
Merci pour cette article… Cela marche peut-être bien en intraday mais j’ai fais une simulation sur prorealtime en daily sur le CAC sur 18 ans et le résultat est vraiment pas top!
Je comprends pas pourquoi une telle différence… Des idées?
Franck
Salut Chris,
J’ai programmé un petit EA à partir des infos que tu nous donnes dans tes différents articles.
Par contre, je bute sur la fonction I custom pour appeller le FX Sniper’s T3 CCI dans cet EA. J’ai beau la triturer dans tous les sens, je n’y arrive pas.
Si quelqu’un pouvait donner un coup de main (juste pour la fonction) celà m’aiderait grandement.
Merçi d’avance et merçi Chris pour ton blog.
ssirr57, c’est peut être le guillement dans le nom de l’indicateur “FX Sniper’s T3 CCI” qui peut poser problème avec iCustom. J’ai renommé l’indicateur et l’appel fonctionne bien.







C’est d’ailleurs ainsi qu’est calculé le magic trend.
J’utilisais, avant de découvrir le magic trend, un CCI 50 (bizarre le hasard :D) >0 <0, et j’ai adopté le magic étant donné qu’il incluait à mon sens un petit plus (volatilité directionnelle).
A quand un forum?