ExtraTrend – exemples de codage screeners et programmation personnalisee
Forums › ProRealTime forum Français › Support ProScreener › ExtraTrend – exemples de codage screeners et programmation personnalisee
- This topic has 505 replies, 103 voices, and was last updated 2 months ago by Bernard49.
Tagged: extratrend
-
-
06/08/2022 at 11:13 AM #194899
Il s’agit d’une présomption vis à vis de la remarque sur les différences ont l’indicateur sur le graphique et le retour de ProScreener, d’un point de vue “support”, c’est la première chose à laquelle je pense. Seul Christophe pourra confirmer ou non l’utilisation de périodes de calcul importantes qui pourraient engender ce phénomène.
06/08/2022 at 11:15 AM #194900Bonjour,
La plus grosse période utilisée est 250 pour que justement chaque plateforme puisse accéder à l’ensemble de l’historique.
06/08/2022 at 11:55 AM #194901@Nicolas
Bonjour,
En bataillant avec les screeners et extratrend, je me suis aperçu que extratrend fonctionnait en ajustant l’historique des graphiques lors du détachement du dividende.
Et comme sur PRT, je ne coche pas cette option, les résultats des screeners étaient faux et je ne comprenais pas.
Y aurait il un intérêt a ce qu’extratrend puisse fonctionner selon les 2 modes, en ajustant ou non le détachement du dividende ?
J aimerais bien ton avis sur ce point. Le détachement participe t il aux variations de cours et doit on le prendre en compte ou non ?
MerciPS : J espère que cette mésaventure servira a d’autres … 😉
06/08/2022 at 12:10 PM #194903Pour info, j’avais déjà constaté il y a des mois ces problèmes d’écarts.
Le plus flagrant étant sur les volumes car les prix ajustés ou pas d’influencent pas.
Par exemple:
SCREENER[average[200](volume)>300000 and average[200](volume)<500000](average[200](volume) as “volume moy”)
me donne pour OCI une valeur de screener de 476953 alors que la mm200 du volume me donne sur le graph 591462, soit 24% d’écart.
Et je ne fais appel uniquement qu’au volume.
Pour revenir sur MetaScore, si on reprend ce type d’écart, multiplié par une vingtaine de signaux sur différents horizons de temps, cela peut expliquer certains écarts.
Après, il n’y a rien de bien méchant, car il ne faut pas oublier que l’intérêt du screener est d’attirer notre oeil, pas s’en servir pour faire systématiquement une entrée.
06/09/2022 at 8:00 PM #19500006/10/2022 at 2:58 PM #195064Bonjour Manu L
en réponse à ta demande :
12345678910111213141516171819202122232425262728293031323334353637383940414243TIMEFRAME(WEEKLY)// APPEL EXTRENDMYTRENDH, IGNORED, IGNORED, IGNORED, IGNORED = CALL "EXTRATREND"[0,0,0,0,0,0](CLOSE)// COTATION DANS LA ZONE BLEUEIF MYTRENDH>MYTRENDH[1] THENTENDANCEH=1ENDIFIF MYTRENDH<MYTRENDH[1] THENTENDANCEH=0ENDIFHEBDOMADAIRE = (CLOSE>=MYTRENDH AND TENDANCEH)TIMEFRAME(DAILY)// BIBLIOTHEQUEMYMETASCORE, IGNORED, IGNORED = CALL "METASCORE"[0,0,0](CLOSE)MYTREND, IGNORED, IGNORED, IGNORED, MYRECT = CALL "EXTRATREND"[0,0,1,0,0,0](CLOSE)// EXTRATREND HAUSSIER CETTE BOUGIE, MAIS PAS SUR LA PRECEDENTEIF MYTREND>MYTREND[1] THENTENDANCE=1ENDIFIF MYTREND<MYTREND[1] THENTENDANCE=0ENDIF// ECARTER LES TITRES AVEC DES TROUS DE COTATION JUSTE AVANTPASTROUSCOTATION = (HIGH[1] - LOW[1] > 0) AND (HIGH[2] - LOW[2] > 0) AND (HIGH[3] - LOW[3] > 0) AND (HIGH[4] - LOW[4] > 0)// VOLUMEMONTANT = (CLOSE*VOLUME)>=500000//JOUR = (MYTREND<>MYRECT AND TENDANCE AND CLOSE[1]<MYRECT[1] AND CLOSE>MYRECT AND MONTANT AND MYMETASCORE>=70 AND PASTROUSCOTATION)// CRITERE CLASSEMENTCRITERE = AVERAGE[20](HISTORICVOLATILITY[40](CLOSE))SCREENER[JOUR[0] AND HEBDOMADAIRE] (CRITERE AS "CRITERE")06/18/2022 at 11:52 AM #195507Bonjour à tous,
Je lis vos posts avec attention. Merci de nourrir la réflexion.
Quelque chose m’étonne, c’est que je n’ai vu qu’un seul post parler de stratégie à proprement parler. Pourtant Christophe a insisté plusieurs fois sur le fait que l’indicateur seul ne valait rien sans une stratégie dans laquelle il doit servir.
Aussi, je vous propose une stratégie qui est basée sur celle que Christophe présente dans une de ses vidéos. J’y ai rajouté une autre condition d’entrée : il faut que le Métascore soit supérieur à 80 pour rentrer (globalement, cela diminue quand même significativement le nombre d’entrées, et selon les titres, cela augmente le taux de trades gagnants).
Désolé par avance, mais je n’arrive pas à afficher le bouton “insert PRT code”. J’ai beau taper plusieurs fois CTRL+F5, le bouton n’apparait pas, et cela me fait quitter le navigateur en plus.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546DEFPARAM CumulateOrders=Falsecapitalinitial=10000risque=1exitstrategy=1profitfactor=6stopfactor=1.5partialprofit=1partialprofitfactor=3ratchetfactor=7// Appel des valeurs d'ExtraTrend//myTrend, ignored, ignored = CALL "ExtraTrend v2" [0,0,0,0,0](close)myTrend, ignored, ignored, ignored, ignored = CALL "ExtraTrend"[0,0,0,0,0](close)// Tendance ExtraTrendif myTrend>myTrend[1] thentendance=1endifif myTrend<myTrend[1] thentendance=0endif// score MetascoremyScore, ignored, ignored = CALL "MetaScore"[80, 0, 0](close)//strategy of entryif tendance and not tendance[1] and not longonmarket and myscore>80 THEN//if not longonmarket thenpositionsize=round(((capitalinitial+STRATEGYPROFIT)*(risque/100))/(stopfactor*averagetruerange[20]))//positionsize=round(((capitalinitial+STRATEGYPROFIT)/close)BUY positionsize shares AT MARKETset stop loss stopfactor*averagetruerange[20]if exitstrategy=0 thenset target profit profitfactor*averagetruerange[20]endifflag=0endifif longonmarket and close>=myTrend+partialprofitfactor*averagetruerange[20] and flag=0 and partialprofit=1 thensell round(positionsize/2) shares at marketflag=1endifif longonmarket and exitstrategy=1 and close<lowest[30](highest[55](high)-ratchetfactor*averagetruerange[20])thensell at marketendif06/18/2022 at 11:59 AM #195509Je suis extrêmement mauvais pour coder et j’aurai besoin d’aide.
Je cherche à développer une autre stratégie, plus spécifique avec Extratrend.
L’idée est de sélectionner des trades uniquement sur relance de tendance déjà haussière, suite à une figure de consolidation et/ou contraction de la volatilité.
Si quelqu’un veut bien m’aider, je posterai des graphiques d’exemples que j’aimerai prendre en trades, pour mieux visualiser les configurations que je veux attraper.
06/18/2022 at 12:01 PM #195510Bonjour à tous,
Je lis vos posts avec attention. Merci de nourrir la réflexion.
Quelque chose m’étonne, c’est que je n’ai vu qu’un seul post parler de stratégie à proprement parler. Pourtant Christophe a insisté plusieurs fois sur le fait que l’indicateur seul ne valait rien sans une stratégie dans laquelle il doit servir.
Aussi, je vous propose une stratégie qui est basée sur celle que Christophe présente dans une de ses vidéos. J’y ai rajouté une autre condition d’entrée : il faut que le Métascore soit supérieur à 80 pour rentrer (globalement, cela diminue quand même significativement le nombre d’entrées, et selon les titres, cela augmente le taux de trades gagnants).
Désolé par avance, mais je n’arrive pas à afficher le bouton “insert PRT code”. J’ai beau taper plusieurs fois CTRL+F5, le bouton n’apparait pas, et cela me fait quitter le navigateur en plus.
DEFPARAM CumulateOrders=Falsecapitalinitial=10000
risque=1
exitstrategy=1
profitfactor=6
stopfactor=1.5
partialprofit=1
partialprofitfactor=3
ratchetfactor=7
// Appel des valeurs d’ExtraTrend
//myTrend, ignored, ignored = CALL “ExtraTrend v2” [0,0,0,0,0](close)
myTrend, ignored, ignored, ignored, ignored = CALL “ExtraTrend”[0,0,0,0,0](close)
// Tendance ExtraTrend
if myTrend>myTrend[1] then
tendance=1
endif
if myTrend<myTrend[1] then
tendance=0
endif
// score Metascore
myScore, ignored, ignored = CALL “MetaScore”[80, 0, 0](close)
//strategy of entry
if tendance and not tendance[1] and not longonmarket and myscore>80 THEN
//if not longonmarket then
positionsize=round(((capitalinitial+STRATEGYPROFIT)*(risque/100))/(stopfactor*averagetruerange[20]))
//positionsize=round(((capitalinitial+STRATEGYPROFIT)/close)
BUY positionsize shares AT MARKET
set stop loss stopfactor*averagetruerange[20]
if exitstrategy=0 then
set target profit profitfactor*averagetruerange[20]
endif
flag=0
endif
if longonmarket and close>=myTrend+partialprofitfactor*averagetruerange[20] and flag=0 and partialprofit=1 then
sell round(positionsize/2) shares at market
flag=1
endif
if longonmarket and exitstrategy=1 and close<lowest[30](highest[55](high)-ratchetfactor*averagetruerange[20])then
sell at market
endif
Tu as tout compris, bravo 🙂
N’importe quel indicateur ne donne pas un signal d’entrée, mais une condition favorable pour trouver un point d’entrée.
Cela veut donc dire qu’il faut trouver un point d’entrée, car ce soit une bougie cadeau, une cassure d’oblique baissière court terme, une cassure d’un dernier plus haut, etc
06/18/2022 at 5:41 PM #195528Bonjour à tous et particulièrement à Christophe et à HienAlpha
Merci pour les nombreux échanges de Post.
Je suis depuis de nombreuses semaines sur des Backtest avec des stratégies utilisant TrendFrance et maintenant Metascore. Pour estimer la performance d’une de ces stratégies, je fais tourner le même backtest sur les 200 plus importantes valeurs de Euronext Paris (listes fournies par PRT), idem sur le Nasdaq (200 valeurs) sur Nyse (200 valeurs), Euro Bruxelles (50 Valeurs), Euro Amsterdam (50 valeurs), Euro Lisbonne (environ 40 valeurs) et l’Allemagne (50 valeurs) et j’enregistre alors chaque Trade
Le portefeuille de trades est évalué sur les critères suivants
- % de trades >0
- Valeur moyenne des trades
- Taux de transformation (somme de l’Equity positive divisée par Equity Postive + Valeur Absolue (Equity Negative). Important, car si ce rapport est trop faible, on génère beaucoup de frais.
Sur certaines de ces stratégies, je modélise un portefeuille complet sur 10 ans sur Excel (environ 2000 lignes d’Achat Vente dans un tableau que je calcule manuellement (même routine sur chaque ligne, vérification qu’il n’y a pas d’erreurs toutes les 100 lignes). Environ 12 heures pour une simulation complète.
J’ai l’espoir de faire un programme en visual basic pour traiter automatiquement cette partie, mais une telle programmation est un véritable challenge pour moi.
Les résultats à ce jour sur 10 ans ne sont pas encore assez intéressants à mon goût.
Si l’un de vous est intéressé par un échange constructif (je peux bien sur donner mais aimerait bien aussi profiter de l’expérience des autres), il suffit de me répondre. Nous communiquerons sur le site ou autrement.
A vous lire et merci à Christophe et à HienAlpha pour leur contribution.
Bons trades à tous
1 user thanked author for this post.
06/18/2022 at 8:40 PM #195533Hello PL,
Je n’ai pas fait grand chose. Si ce n’est m’interroger sur la question qui est selon moi la plus importante.
Concernant l’échange, je suis absolument pour. Néanmoins, j’ai des compétences de codage qui sont extrêmement limitées. Je peux par contre apporter une autre vue, cela aide souvent.
J’aurai des questions pour ce que tu as fait :
– Qu’est ce que tu entends par “pas assez intéressants” ?
– Quelles stratégies différentes as tu backtesté en faisant appel à Extratrend ?De ce que j’ai pu voir de mon côté avec mes faibles talents pour le codage, Extratrend donne d’assez bons résultats pour le swing et le trend following, en UT assez longues (daily, weekly). Les différents univers que j’ai utilisés :
– les baggers du marché français des 12 dernières années
– les grosses caps américaines qui ont permis de tenir le Nasdaq depuis 2010
– les valeurs les plus baissières du marché français (ici, pas de surprise, les résultats sont très mauvais car ça baisse. Mais on limite grandement la casse.)Globalement, en stratégie swing relativement classique, j’ai du mal à dépasser les 40% de trades gagnants (plutôt 35%). Le ratio gain/risque est entre 3 et 5.
Notes que dans ma stratégie swing, les critères à rentrer pour une entrée sont assez stricts, donc sur une période de 12 ans de backtest, en moyenne la stratégie fait 10 entrées sur un titre (7 échecs et 3 réussites). Cela fait peu je trouve.Après, les questions restent toujours les mêmes :
– quand rentrer ? quand re-rentrer si on souhaite accumuler ?
– où placer le stop d’invalidation du trade ?
– combien rentrer/risquer ?
– quand sortir ?
– combien sortir ? Et combien laisser courir ?Les réponses varieront en fonction du trader et de son horizon de temps. Un day trader n’aura pas les mêmes besoins qu’un swinger comme moi.
J’ai quelques idées de stratégies, mais je suis extrêmement limité par mes connaissances en codage. Si tu es prêt à m’aider, cela serait avec plaisir.
06/19/2022 at 7:50 AM #195538Bonjour PL bourse,
Merci pour le partage des résultats de backtests. Peut être que je peux aider.
A minima, le sujet m’intéresse également beaucoup, j’ai des connaissances en VBA sur excel, j’ai des des mois d’expérience en programmation sur PRT.
Je ne trouve pas le moyen d’envoyer des messages perso sur le site. Quel est le meilleur moyen pour vous contacter ? Merci
1 user thanked author for this post.
06/19/2022 at 9:10 AM #195540Bonjour HienAlpha
Avant de faire des screeners, il est nécessaire de développer une stratégie et de la backtester rigoureusement. Seulement si des backtests honnêtes donnent des résultats positifs, alors il y a une opportuniter pour des trades gagnats (globalement) dans le futur.
Je vais donner plus de détails sur l’une de mes stratégies déployées sur le portefeuille cité (presque 1000 actions sur 10 ans). Voici les principaux éléments de la stratégie développée
- Période du 1/01/2011 au 31/12/2020. Les trades en cours peuvent se terminer dans le 1er trimestre 2021, sinon sortie forcée le 30/06/2021
- Risque 0,6 % de l’équity trades fermés, soit 600 Euros pour le capital de base de 100 000 € et 1200€ lorsque le capital vaut 200k€
- StopLoss suiveur fixe sur le Low de la dernière barre à 4 ATR de la barre de prise de décision (j’ai essayé de mettre un SL plus rapproché mais cela donne des trades qui ne durent q’une journée et des résultats aléatoires
- Conditions d’entrée
- Capital échangé par jour au moins 100k€ pour ne pas influencer les cours
- franchissement de la résistance dynamique d’ExtraTrend
- Volumes d’échanges significativement en hausse au moment de la prise de position (> 2.5*Average[20](Volume)[10])
- ExtraTrend : on doit avoir la dernière barre complète mensuelle ou dernière barre weekly complète en hausse (MyExpansionMonthly > MyTrendMonthly ou MyExpansionWeekly > MyTrendWeekly). Il est très important , à mon sens de ne traiter que des barres complètes dans le passé pour éviter des perturbations lorsque la barre est en cours de construction. On rajoute la même condition sur les barres en cours de construction
- On est sorti de position depuis plus de 20 barres pour éviter de rerentrer juste après s’être fait sortir
- Pas de pyramidage
- Pas d’utilisation de MetaScore dans cette stratégie créee juste avant que Christophe ne communique Metascore
- Gestion du trade
- vente de 50 % de la position à R1, remontée du SL au minimum sur la valeur d’entrée
- on laisse courrir la suite du trade jusqu’à ce que le SL soit tapé
- Résultats du Portefeuille de trades (ensembles des trades pris séparément)
- Pour toutes ces simulations, 1USD = 1 €…. Il est prévu de prendre en compte ultérieurement un taux de change USDEur moyen parmois
- Nb total de trades 3116, % de trades positifs 64,7%
- Somme Théorique des gains 327 408€, avec une somme de trades négatifs de -451 588€, soit ce que j’appelle un taux de transformation de 43,1 % (trop faible à mon goût)
- Valeur moyenne par Trade 105,07 €
- Durée moyenne d’un trade 41 barres, la durée moyenne des trades perdants est de 30 barres
- gain moyen par jour en position 2,56 €
- Simulation de gestion de portefeuille
- frais de transaction 0,1 % calculés à l’achat et à la vente
- Equity finale de 272000€ au 1/07/2021, soit environ 10 % par an
- Max Draw Down 16 % concentré sur les deux premères années (dur, dur), -4 % sur 2013, 2014, 2015, -6% sur 2016-2018, -9,5% sur 2019-2021
- 816 positions à l’achat prises, ce qui montre que l’on est souvent limité à l’acaht par le manque de capitals disponible
Il reste sur cette base de trades à faire encore beaucoup de simulations (l’une d’elle est en cours) et entre autres à se poser la question si la vente partielle à R1 est payante par rapport à laisser tous les trades se faire taper par le SL
A lire vos réactions, vos commentaires et surtout ce que vous pouvez suggérer,
Bonnes simulations
06/19/2022 at 9:13 AM #19554106/19/2022 at 10:16 AM #195550 -
AuthorPosts