stratégie Stochastique DAX 1 hour
Forums › ProRealTime forum Français › Support ProOrder › stratégie Stochastique DAX 1 hour
- This topic has 3 replies, 2 voices, and was last updated 7 years ago by Master_Code.
-
-
11/25/2016 at 3:48 PM #17182
CFD : DAX mini 1€ ou 5€ (dans une 2ème étape), pas horaire.
Ma méthode et ma philosophie :
Réaliser un algorithme réactif aux mouvements de marché, robustes aux cracks boursiers, et se protégeant contre les faux signaux, tout en favorisant le nombre de gains, plutôt que la performance pure. En effet, dans un investissement à fort effet de levier, il vaut mieux avoir des petits gains réguliers plutôt que des gros gains de temps en temps, car une perte inhabituelle non prévue par le backtest peut vous faire perdre beaucoup d’argent. Et de plus c’est très mauvais pour le moral !
Le rapport nb gain/nb perte = 2.23. Sur 3 trades, on gagne 2 fois et on perd 1 fois.
La performance est tout de même de 1520% sur 11 mois.
Ainsi, pour un investissement de 1000€, au premier janvier 2016, aurait rapporté 15 203€ en 24 novembre 2016.
En conditions réelles, je le teste que depuis 1 mois. J’ai eu un gain de quelques centaines d’euros, car la mise au point de ce code est constituée d’améliorations successives depuis février 2016, dont je présente ici la version la plus aboutie.
Merci de vos retours et suggestions d’améliorations.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105//-------------------------------------------------------------------------// Code principal : 7_STO_H1_4_3_9// Le cœur du programme est basé sur le STOCHASTIQUE qui// est très réactif aux mouvements de marché, notamment aux crack boursier// Les autres lignes de code corrigent les faux signaux.//-------------------------------------------------------------------------DEFPARAM CumulateOrders=False// STOCHASTIC LISSE SystemMONTANT=1//DEFINITION MACDindMACD0 = MACD[12,26,9](close[0])//PIVOTPIVOT = ( DHigh(1) + DLow(1) +DClose(1) ) /3RE2 = PIVOT + ( DHigh(1) - DLow(1))//DEFINITION MOYENNE MOBILEn=42AVGn = ExponentialAverage[n](Close)//DEFINITION SuperTrendSTC =SuperTrend[1,4]//Definition STOCHASTIQUEa=17b=16c=5Indicator1 =SmoothedStochastic[a,b](MedianPrice) //%K STOCHASTIQUEIndicator2 =ExponentialAverage[c](Indicator1) //%D MOYENNE SUR LE STOCHASTIQUE//CONDITIONScondAchatSTO = (Indicator1 CROSSES OVER Indicator2) OR (Indicator1 CROSSES OVER 20)condVenteSTO = (Indicator1 CROSSES UNDER Indicator2) OR (Indicator1 CROSSES UNDER 80)//ENTRÉE POSITION LONGUEIF NOT LONGONMARKET AND condAchatSTO AND indMACD0>0 AND Close > STC THENBUY MONTANT LOT AT MARKETENDIF// SORTIE POSITION LONGUEIF LONGONMARKET AND (Close < STC OR indMACD0<0) THENSELL AT RE2 LIMITELSIF Open = STC AND Close > STC THENSELL AT STC LIMITELSIF condVenteSTO THENSELL AT MARKETENDIF//ENTREE POSITION COURTEIF NOT SHORTONMARKET AND (Open < AVGn AND indMACD0<0) THENSELL AT MAX(RE2,AVGn) LIMITELSIF Close < AVGn THENSELLSHORT AT MIN(RE2,AVGn) LIMITELSIF condVenteSTO THENSELLSHORT AT MARKETENDIF//ENTRY 2 POSITION SHORTIF condVenteSTO THENSELLSHORT MONTANT LOT AT MARKETENDIF//SORTIE SI BAISSE SOUS LA MMIF SHORTONMARKET AND low crosses under STC THENexitshort AT MARKETENDIF//AMELIORATION DANS LA V9IF SHORTONMARKET AND low crosses over STC THENexitshort AT MARKETENDIF//AMELIORATION DANS LA V9IF LONGONMARKET AND close crosses under STC THENSELL AT MARKETENDIF//SORTIE POSITION COURTEIF SHORTONMARKET AND (condAchatSTO) THENBUY AT MARKETENDIF// SORTIE D'URGENCE// 1- EXITLONG Si CONTRESENSy=0.07IF Close < ((0.9+y)*TradePrice(1)) THENSELL AT MARKETENDIF//2- EXITSHORT Si CONTRESENSx=0.011IF ShortonMarket AND (Close > (1+x)*Tradeprice(1)) THENExitshort AT LOW LIMITENDIFSET STOP PLOSS 13SET TARGET PPROFIT 1311/25/2016 at 3:57 PM #17185Bonjour Master_Code,
Merci pour le partage dans la bibliothèque de code pour prorealtime du site. Comme tu peux le constater, j’ai volontairement déplacé ton post ici sur le forum pour en discuter.
Malheureusement, je vois 2 gros problèmes liés à la stratégie et même si celle-ci semble avoir donné satisfaction en temps réel, le backtest parle de lui même. Plus de 80% des trades sont fermés en gains sur la barre sur laquelle ils se sont ouverts, naturellement si tu n’es pas encore au fait du comportement du moteur de backtest actuel de prorealtime, tu ne peux pas savoir que cela ne sera pas forcément le cas en temps réel et que le stoploss aurait pu être tapé avant le takeprofit (voir ma vidéo sur le nouveau moteur de backtest en tick par tick de prorealtime). En backtest, c’est le takeprofit qui est toujours testé en premier, dans la version actuelle de probacktest.
Ensuite, il semble que tu es sur-évalué les périodes de la stochastique sur le passé, le 1er problème mis à part, cela tend à prouver que la stratégie est sur-optimisé (phénomène de ‘overfit’ ou ‘equity curve fitting’).
Désolé si cela est contrariant vis à vis de ton travail que je respecte, encore une fois j’apprécie le partage! N’hésite pas si tu es des questions.
11/26/2016 at 4:57 PM #17253Bonjour Nicolas,
Merci, pour ton analyse. Tes remarques ne sont pas désobligeantes. Au contraire, c’est une forme de challenge qui ne peut me faire que progresser. Je reste toutefois confiant dans mon script, car il est robuste au pas de temps, c’est à dire, si je change un autre pas de temps, la stratégie continue d’être gagnante.
Je pense que si 80% des trades sont fermés sur la première barre, en raison du seuil posé sur les stop loss et take profit. C’est aussi le cas du script ALEX AutotradingBot Index. C’est une amélioration que j’ai mis récemment.
Oui, je suis au courant des limites du backtest, c’est pourquoi j’attends avec impatience son implantation sur le site Prorealtime CFD. Mais j’ai appris sur le site de Prorealcode qu’il était possible de le tester. Je suis aller sur le site de Prorealtime, mais là je n’ai pas vu l’option “Simulation tick by tick”, sans doute en raison du pas journalier, en effet, je ne peux pas descendre en pas intraday, je n’ai pas pris d’abonnement. Est-ce bien cela ?
Comment résoudre le problème que tu évoques de la sur-optimisation ? Comment désoptimiser ? En prenant des paramètres par défaut de l’indicateur ?
Merci
A bientôt.
11/27/2016 at 9:09 AM #17295Juste une précision, pour le changement de pas de temps, ne pas en tenir compte.
-
AuthorPosts
Find exclusive trading pro-tools on