PRT Bands – l’indicateur de trend following de ProRealTime

Viewing 15 posts - 91 through 105 (of 384 total)
  • Author
    Posts
  • #142360 quote
    patapouf
    Participant
    Average

    PS. Je viens de vérifier (visuellement) en temps réel (sur une crypto-monnaie, qui cote le dimanche – c’est sur PRT-IBRKR, pour lequel j’ai bien l’indicateur PRTBands, mais pas encore les instructions) : la tendance passe de vert à rouge si la bougie passe au-dessus de la bande supérieure, même si la bougie n’est pas encore clôturée. et évidemment, elle repasse au rouge si la bougie repasse en-dessous de la bande supérieure.

    Du coup, je me demandais si le test à faire sur Trend était sur Trend[0] ou Trend[1], et en fait, ce serait peut-être :
    Trend[1]>=10 AND Trend>=0

    #142361 quote
    Nicolas
    Keymaster
    Master

    @patapouf

    On ne peut pas tester avec le marché fermé (Dimanche), mais ça donnerait ceci :

    up = PRTBandsUp
    dn = PRTBandsDown
    
    if close crosses over up and trend<=0 then //le prix casse la bande supérieure
    trend=1 //tendance haussière
    elsif close crosses under dn and trend>=0 then //le prix casse la bande inférieure
    trend=-1 //tendance baissière
    endif
    
    screener[trend[1]=-1 and close>up]


    @Claude06

    Merci d’utiliser le bouton “Insert PRT code” pour poster du code dans le corps d’un message, sinon c’est illisible 🙂

    Ce que tu souhaites faire devrait ressembler au code ci-joint, mais attention comme évoqué plus haut, il y a un bug dans les lignes court terme et moyen terme qui sont inversés dans ProScreener, d’où les 2 versions que je propose ci-dessous :

    up = PRTBandsUp
    dn = PRTBandsDown
    
    if close crosses over up and trend<=0 then //le prix casse la bande supérieure
    trend=1 //tendance haussière
    elsif close crosses under dn and trend>=0 then //le prix casse la bande inférieure
    trend=-1 //tendance baissière
    endif
    
    a = PRTBandsShortTerm
    
    test = a>a[1] and a[1]<a[2] and trend=1 //la ligne fait un crochet de bas en haut en tendance haussière (verte)
    
    screener[test]
    up = PRTBandsUp
    dn = PRTBandsDown
    
    if close crosses over up and trend<=0 then //le prix casse la bande supérieure
    trend=1 //tendance haussière
    elsif close crosses under dn and trend>=0 then //le prix casse la bande inférieure
    trend=-1 //tendance baissière
    endif
    
    a = PRTBandsMediumTerm
    
    test = a>a[1] and a[1]<a[2] and trend=1 //la ligne fait un crochet de bas en haut en tendance haussière (verte)
    
    screener[test]
    #142364 quote
    patapouf
    Participant
    Average

    Merci Nicolas. C’est bien à quelque chose de ce genre que je pensais, mais je n’étais pas certain que ça puisse marcher.
    (désolé pour les fautes de frappe dans le message précédent, je n’avais pas relu !)
    Tant que les instructions ne sont pas disponibles pour IBRKR et IG, je ne peux pas tester en temps réel. Vivement qu’elles soient implémentées (pourquoi ce retard, puisqu’elles sont déjà chez Binck ?)

    #142365 quote
    Nicolas
    Keymaster
    Master

    Oui en effet, c’est peut être Trend[0] qu’il faut utiliser.

    Pas de retard pour IG, c’est juste que les mises à jour se font une à la fois. Mettre à jour une version d’un logiciel (customisée) pour chaque courtier nécessite du temps et des tests préalables pour éviter tout problème et donc du support…

    #142370 quote
    patapouf
    Participant
    Average

    Autre exemple de programmation:

    La tendance baissière est persistante depuis 3 mois en données hebdomadaire et le prix se situe au dessus du retracement de 61.8% des 2 bandes long terme, cela permettant de surveiller de potentiel breakout haussier à venir.

    Pour ce screener, je propose d’ajouter un critère de tri, qui serait la proximité avec la bande haute. On peut par exemple définir le paramètre alpha = 100*(close-dn)/(up-dn), qui varie entre 0 et 100, mais dans ce cas seulement entre 61,8 et 100
    et l’adjoindre à la dernière ligne qui devient alors : screener[longTermBearish and restingAbove618](alpha as “alpha”)

    #142373 quote
    patapouf
    Participant
    Average

    Par ailleurs, étant donné que la largeur de la bande (Bande supérieure – Bande inférieure) peut être très grande, le critère des 61.8 de retracement est sans doute trop large.
    Du coup, je me demande si un autre critère, tel que PRTBANDSSHORTTERM > PRTBANDSMEDIUMTERM  ne serait pas plus intéressant ?
    (Plutôt que CLOSE, je choisis de mettre PRTBANDSSHORTTERM  -en fait, une weightedaverage[4](close)- qui sert de filtre de tendance court terme et évite de faux positifs).
    Vos réactions ?

    #142376 quote
    boutdepain57
    Participant
    New

    @Nicolas:

    Merci pour la réponse j’y avais pensé mais en fait la commande timeframe(daily, updateonclose)  n’est pas possible sur mon ma version PRT 10.3 apparemment (l’instruction timeframe n’est autorisée que dans le cadre du proscreener). Donc je ne sais pas trop comment faire pour faire un backtest en changeant d’unité.  Peut être puis je passer par un screener pour réaliser ce test ?  Sinon par rapport au backtest l’idée serait en fait d’utiliser les données d’un graphique hebdo mais de se servir de la première bougie en daily qui validerait le passage du seuil hebdomadaire (mais tu as raison j’aurais pu utiliser n’importe quelle unité inférieure). De cette manière je simulerais en fait un ordre conditionnel à l’achat si la valeur surveillée passait le seuil qui est fixé en unité weekly. D’une manière générale ce serait sans doute un plus si on pouvait backtest des ordres conditionnels à seuil de déclenchement mais je n’ai pas vu ce genre de chose dans la documentation.

    #142397 quote
    Nicolas
    Keymaster
    Master

    @boutdepain57 On peut en effet backtester des ordres conditionnels (ordres STOP et LIMIT, voir dans la documentation) sans les instructions TIMEFRAME (tu es chez BINCK peut être ?), je regrette mais je ne vois pas comment faire puisque le code est lu à fin de bougie.


    @patapouf
    Merci pour:

    • Soyez prudent lorsque vous citez d’autres personnes dans vos messages. N’utilisez l’option de citation que lorsque vous devez mettre en surbrillance un morceau de texte particulier auquel vous faites référence ou pour mettre en évidence que vous répondez à un membre particulier s’il y en a plusieurs impliqués dans une conversation. N’incluez pas de grandes quantités de code dans vos citations. Sélectionnez simplement le texte que vous souhaitez citer, puis cliquez sur «Quote».

    Dîtes moi ce qu’il faut coder précisément, et je vous y aiderai 🙂

    #142536 quote
    patapouf
    Participant
    Average

    depuis aujourd’hui, les instructions sont disponibles pour la plateforme PRT / Interactive Brokers !

    Nicolas thanked this post
    #142645 quote
    jlm
    Participant
    New

    manque plus que IG….

    #142651 quote
    patapouf
    Participant
    Average

    Instructions disponibles chez IG depuis aujourd’hui !
    mais toujours avec PRT v. 10.3

    jlm thanked this post
    #142654 quote
    slaredo
    Participant
    New

    Bonjour, je n ai pas pu suivre tous les postes mais je ne trouve pas indicateur chez Boursorama ?

    #142655 quote
    Nicolas
    Keymaster
    Master

    Merci @patapouf pour le suivi 😉

    Je n’ai pas l’information pour Boursorama, j’essaierai d’en savoir plus dés demain.

    #142657 quote
    jlm
    Participant
    New

    Instructions disponibles chez IG depuis aujourd’hui !

    mais toujours avec PRT v. 10.3

    ha oui, je ne sais pourquoi il m’avait rajouté ‘1’ à la fin de mes instructions “prtBand*”….. du coup il me sortait des erreurs lorsque je tentais le probacktest, mais vu que je voyais que c’était à cause des “prtBand” je pensais que ce n’était pas dispo

    j’ai un soucis, avec les stop loss… je veux faire ce qui suit :

    a = PRTBandsShortTerm
    b = PRTBandsmediumterm
    // Conditions pour ouvrir une position acheteuse
    IF NOT LongOnMarket AND a crosses over b THEN
        BUY 1 CONTRACTS AT MARKET 
        SET STOP $LOSS 50
    ENDIF
    
    // Conditions pour fermer une position acheteuse
    If LongOnMarket AND a crosses under b THEN
        SELL AT MARKET
    ENDIF

    sauf que quand je pro backtest, j’ai des pertes qui dépassent les 50….

    j’ai déjà des trucs intéressants via le backtest, merci @Nicolas !
    par contre j’aimerais vraiment avoir accès aux “Nouveaux seuils haussier”  je les trouve très pertinents pour rentrer/renforcer la position…..

    idem le changement de couleur du shorterm n’est pas comme on le pensait “en trend négatif, si PRTBandsShortTerm crosses over PRTBandsmediumterm” (cf pièce attachée) je vais filtrer pour éviter le cas que l’on voit sur la première flèche

    ensuite j’aimerai “filtrer” les “flat zones” pour ne pas entrer en position si  la PRTBandsmediumterm est globalement flat… (et je ne sais encore pour la shortterm….) j’ai vu un bout de code

    summation[5](a=a[1])[1]=5

    mais je ne le comprends pas https://www.prorealcode.com/documentation/summation/

    j’aimerais, par exemple ignorer mes signaux d’entrée en position si PRTBandsmediumterm est dans un canal horizontal de 0.1% de large….

    merci d’avance!!!! En tous cas super content de mes premiers essais!!!

    #142670 quote
    Nicolas
    Keymaster
    Master

    sauf que quand je pro backtest, j’ai des pertes qui dépassent les 50….

    Tout dépend de l’instrument et la valeur de 1 contract ?

    par contre j’aimerais vraiment avoir accès aux “Nouveaux seuils haussier”

    Il n’y a pas d’instructions pour les retrouver et je ne peux donc pas vous aider pour savoir comment ils sont créés.

    le changement de couleur du shorterm n’est pas comme on le pensait “en trend négatif

    Il n’y a en effet pas de changement de couleur de la ligne shortterm en tendance baissière. Le changement de couleur est simplement basé sur la variation de la valeur de cette ligne, soit elle monte (verte), soit elle descend (rouge).

    L’instruction SUMMATION fait une somme comme son nom l’indique 🙂 Dans cet exemple que tu cites, je fais une somme de la condition booléenne (a=a[1]) sur les 5 dernières, et elles doivent toutes être vraies, c’est à dire égale à 1 et donc la somme égale à 5. C’est utile pour vérifier qu’une condition est vérifiée X fois sur les Y dernières bougies.

Viewing 15 posts - 91 through 105 (of 384 total)
  • You must be logged in to reply to this topic.

PRT Bands – l’indicateur de trend following de ProRealTime


Trading Général : Analyse Marchés & Discrétionnaire

New Reply
Author
author-avatar
Nicolas @nicolas Keymaster
Summary

This topic contains 383 replies,
has 73 voices, and was last updated by Etienne Barthelemy
5 months ago.

Topic Details
Forum: Trading Général : Analyse Marchés & Discrétionnaire
Language: French
Started: 07/22/2020
Status: Active
Attachments: 66 files
Logo Logo
Loading...