Première approche sur le multi timeframe avec ProRealTime
Forums › ProRealTime forum Français › Support ProOrder › Première approche sur le multi timeframe avec ProRealTime
- This topic has 87 replies, 9 voices, and was last updated 4 months ago by robertogozzi.
-
-
09/04/2021 at 2:13 PM #176786
La seule erreur que vous avez commise est de comparer les résultats entre deux unités de temps différentes!
Cependant, même si vous n’utilisez qu’une seule unité de temps, gardez à l’esprit que sans MTF, la stratégie n’est exécutée qu’une seule fois (par exemple toutes les 4 heures), tandis que si vous utilisez MTF avec la valeur par défaut de 1 minute, la même stratégie est exécutée 240 fois en 4 heures, même si ayant toujours les mêmes conditions d’entrée, cela signifie que si votre profit ou perte se produit dans les mêmes 4 heures, la stratégie réintégrera le marché.
Sans MTF, il n’y aura qu’une seule entrée sur le marché toutes les 4 heures, avec MTF il peut y en avoir 2 ou plus!
Bonjour,
Je rebondis sur le sujet car je rencontre le même problème.
Dans l’exemple précédent je comprends que le code est lu 2 fois en 4H, ce qui est logique.
Par contre ce que je ne comprends pas c’est que le fait d’avoir indiqué un TIMEFRAME(4 heure, Updateonclose) avec les instructions
devraient renvoyer les mêmes infos sur la bougie de 4H concernée puisque que le code récupère sa valeur à sa clôture ?
La bougie de 4H est unique, si on vient lire son état au premier passage (1ere bougie de 2H), l’information ne sera pas disponible puisque elle “closera” dans 2H ?
Comment s’y retrouver si les valeurs renvoyées par le TIMEFRAME 4H est différent de ce que renverrait la même bougie sans l’utilisation de TIMEFRAME ?09/04/2021 at 2:20 PM #1767871 fois toutes les 2 heures, donc 2 fois toutes les 4 heures en effet. Le timeframe default est celui qui rythme les lectures du code.
Si le TIMEFRAME 4H est utilisé avec l’option UPDATEONCLOSE, et comme j’ai pu le comprendre en lisant tes explications diverses, le fait de lire le code en UT 1 minute ou 1 H etc. ne devrait changer la valeur renvoyée par la bougie concernée de 4H puisque cette valeur est sensée être mise à jour au CLOSE de celle-ci ?
Comment s’y retrouver en faisant tourner une stratégie en UT inférieure si on ne retrouve pas le comportement de l’UT supérieure (dans le cas où l’on veuille retrouver le même comportement qu’une version originale sans MTF).
Merci.09/05/2021 at 8:45 AM #176800UPDATEONCLOSE renvoi la dernière valeur connue d’un chandelier clôturé de l’UT spécifié.
Donc exemple, entre 12:00 et 15:59, la valeur du chandelier H4 spécifié avec:
12timeframe(4 hours, updateonclose)valeur = closene changera pas.
Par contre avec :
12345timeframe(4 hours)valeur = closetimeframe(default)valeurh4 = valeuron obtiendra la valeur du chandelier 4 heures à chaque fermeture du chandelier du timeframe ‘default’, donc à chaque lecture du code, puisqu’on n’utilise pas “updateonclose” (une mise à jour unique à chaque fermeture).
Tout dépend de ce que tu veux faire, soit utiliser une valeur clôturée, ce qui est généralement utilisé dans une stratégie de trading, soir récupérer la valeur en temps réel, comme dans ce dernier exemple, où si tu lances ta stratégie en TF 1 minutes, la variable “valeurh4” prendra 4*60 = 240 fois une valeur différente.
1 user thanked author for this post.
09/05/2021 at 2:48 PM #176817Voici un exemple de comparaison entre un graph en 5 minutes qui graph le close de l’UT15 avec TIMEFRAME (15 minutes, UPDATEONCLOSE)
1 ere Bougie
2éme bougie
3ème bougie
On constate que la valeur de la bougie de 15 minutes de 09:45 est disponible sur la première bougie en 5 minutes à partir de 09:55, soit 10 minutes après.
Bougie de 15 minutes
Donc ce qu’il faut comprendre c’est que la valeur renvoyée par TIMEFRAME(UPDATEONCLOSE) dans une UT inférieure est la bougie précédente de l’UT supérieure recherchée,
et que la mise à jour intervient après la dernière bougie de l’UT inférieure + 1 ?J’y vois plus clair, merci.
09/05/2021 at 5:07 PM #17682706/14/2024 at 6:06 PM #233875Bonjour, J’ai un programme qui tourne en daily et je souhaiterai sortir de position avec des conditions dans une unité inférieure (4h,2h,1h,15mn,5mn), mais j’ai un message d’avertissement sur les multiples de timeframe. Comment faut il faire ? Default l’UT dans laquelle on lance la stratégie, ici daily ok, mais alors la sortie si on est en long ou short en timeframe 1 h par exemple ce n’est pas possible ?
Si qq’un a la réponse ? c’est peut etre qq part dans le forum mais ou ? je n’ai pas trouvé.
Merci
06/14/2024 at 8:33 PM #233881Salut.. Vous pourriez le baser sur quelque chose comme ça.
Exécutez le programme sur la plus petite période de temps pour éviter le message d’erreur multiple.
Deux problèmes principaux sont de s’assurer que les indicateurs sont calculés avec les données temporelles correctes, ainsi que la condition pertinente.
Lors du débogage, assurez-vous que les choses se passent aux bons niveaux et au bon moment. Exécutez la démo en tant qu’indicateur indépendant.
12345678910111213141516171819202122232425262728293031323334353637383940414243timeframe(daily,updateOnClose)dy = closetimeframe(4hours,updateonclose)H4 = closetimeframe(2hours,updateonclose)H2 = closetimeframe(1hours,updateonclose)H1 = closetimeframe(15minute,updateonclose)M15 = closetimeframe(default) // 5minuteif dy <> dy[1] thendrawsegment(barindex,0,barindex,8)drawtext("Daily",0,4)anchor(middle,xshift,value)endifif H4 <> H4[1] thendrawsegment(barindex,10,barindex,18)drawtext("4Hour",0,14)anchor(middle,xshift,value)endifif H2 <> H2[1] thendrawsegment(barindex,20,barindex,28)drawtext("2Hour",0,24)anchor(middle,xshift,value)endifif H1 <> H1[1] thendrawsegment(barindex,30,barindex,38)drawtext("1Hour",0,34)anchor(middle,xshift,value)endifif M15 <> M15[1] thendrawsegment(barindex,40,barindex,48)drawtext("15Minute",0,44)anchor(middle,xshift,value)endifdrawsegment(barindex,50,barindex,58)drawtext("5Minute",0,54)anchor(middle,xshift,value)return -1 coloured(0,0,0,0),60 coloured(0,0,0,0)06/14/2024 at 8:53 PM #233883En plus de ci-dessus, j’ai utilisé ‘CLOSE’ comme valeur pour déterminer un changement pour convenance.
Il est probable que ‘CLOSE’ ne change pas et que l’utilisation de ‘BARINDEX’ ou INTRADAYBARINDEX’ serait préférable car ils changent à chaque barre.
Une autre pensée est qu’une composante temporelle serait encore mieux.
06/16/2024 at 7:30 AM #233907Merci Druby. Cependant lorsqu’on veut backtester le code et donc lorsqu’il est lancé dans la petite unité de temps, avec 200k comme quantité d’historique, la période est courte. C’est pas tellement significatif. C’est un inconvénient alors que lancé en daily, on a l”historique sur plusieurs années. Il faudrait pouvoir garder l’historique de la plus grande unité de temps.
06/16/2024 at 10:29 AM #233915Avec la limite de 200000 unités, qui commence à partir de la barre actuelle, une résolution de 5 minutes ne permet qu’un retour en arrière d’environ 2 ans.
Pour conserver plusieurs années à la journée, cela donne une résolution maximale de 20 minutes.
C’est le point de compromis. Actuellement, je ne pense pas qu’il y ait un moyen de contourner cela.
Si les quelques années quotidiennes ne sont que la période de test arrière, alors c’est le compromis, s’ils sont nécessaires pour un calcul, c’est le facteur limitant.
D’un point de vue opérationnel, le nombre de barres historiques requises est limité à ce qui est nécessaire pour calculer les indicateurs qui nécessitent un retour en arrière.
Aller de l’avant ne souffre pas de la limitation de la barre.
06/17/2024 at 8:53 AM #23398606/17/2024 at 10:43 AM #233997Salut Nicolas…
Pouvez-vous confirmer que « Terminé. , est limitée à 200 000 unités. et « Premium » à 1 000 000.Basé sur une estimation de 100 000 unités par an à 5 minutes. Cela signifierait que vous pourriez rétro-tester à environ 10 ans. C’est vrai?
06/17/2024 at 10:59 AM #234002Oui c’est correct. Le seul inconvénient est que le mode tick-by-tick n’est pas pris en charge avec les unités 1M.
1 user thanked author for this post.
-
AuthorPosts
Find exclusive trading pro-tools on