Détection Dernier Plus Bas

Viewing 8 posts - 1 through 8 (of 8 total)
  • Author
    Posts
  • #238379 quote
    george15
    Participant
    Junior

    Dans une stratégie, je voudrais que la condition soit prix < dernier plus bas.
    Comment pourrait on coder ça ?

    Merci.

    #238386 quote
    plbourse
    Participant
    New

    Bonjour,

    j’ai fait un code similaire pour les PH, je n’ai trouvé qu’une solution assez compliquée applicable dans un indicateur ou un backtest, mais pas dans un screener…

    J’explique rapidement le code pour les PH. le code me renvoie le dernier PH et son numéro de barre (j’en ai besoin pour tester la “profondeur” du PH franchi

    • Stockage de tous les PH sur 5 barres dans une pile (tableau) $PH ainsi que du n0 de barre dans une pile(tableau) $barPH, le PH étant classé par ordre croissant et la pile est incrémentée lorsque on a un nouveau PH rencontré, à savoir (High[2] > High[1] ) and (High [2] > High) and (High [2] > High[3]) and (High [2] > High|4])
      • dans ce cas, on incrémente les piles $PH et $barPH d’un élément
      • on stocke dans le premier élément  $PH[0] et $barPH[0] les valeurs High[2] et “barindex-2”
    • lorsque le High de la barre courante dépasse $PH[0],
      • on considère que l’on a un BO, d’où signal renvoyé ainsi que la profondeur du PH, à savoir “barindex – $barPH[0]”
      • on dépile $PH et $valPH tant que high > $PH[0] et $PH[0] <>0
      • si l’on vient de franchir un ATH sur la période considérée, on se retrouve avec des piles $PH et $valPH vides

    il y a une petite subtilité dans mon code, car je considère que le PH ne donne lieu qu’ à un BO confirmé que si close > (la valeur du PH considéré) sur la ou les barres immédiatement suivant le PH franchi

    Merci de me donner vos remarques sur cette stratégie. Je suis surtout intéressé par l’échange plus que le simple transfert de code., ceci pour me faire progresser.

    C’est facilement applicable à une détection de franchissement de PB. Le code pour un screener est nettement plus compliqué compte tenu de la limitation à 256 barres d’historique mais j’ai aussi trouver un moyen de contourner ce PB avec approximation sur l’historique

    Si échange, je nettoierai et partagerai mon code sans problème.

    A vous lire et du succès dans vos stratégies

    #238393 quote
    Iván González
    Moderator
    Master

    Bonjour. Voici un exemple :

    lmin=lowest[15](low)
    if low crosses under lmin[1] then
    xxxx
    endif
    #238486 quote
    george15
    Participant
    Junior

    Bonjour,

    j’ai fait un code similaire pour les PH, je n’ai trouvé qu’une solution assez compliquée applicable dans un indicateur ou un backtest, mais pas dans un screener…

    J’explique rapidement le code pour les PH. le code me renvoie le dernier PH et son numéro de barre (j’en ai besoin pour tester la “profondeur” du PH franchi

    • Stockage de tous les PH sur 5 barres dans une pile (tableau) $PH ainsi que du n0 de barre dans une pile(tableau) $barPH, le PH étant classé par ordre croissant et la pile est incrémentée lorsque on a un nouveau PH rencontré, à savoir (High[2] > High[1] ) and (High [2] > High) and (High [2] > High[3]) and (High [2] > High|4])
      • dans ce cas, on incrémente les piles $PH et $barPH d’un élément
      • on stocke dans le premier élément $PH[0] et $barPH[0] les valeurs High[2] et “barindex-2”
    • lorsque le High de la barre courante dépasse $PH[0],
      • on considère que l’on a un BO, d’où signal renvoyé ainsi que la profondeur du PH, à savoir “barindex – $barPH[0]”
      • on dépile $PH et $valPH tant que high > $PH[0] et $PH[0] <>0
      • si l’on vient de franchir un ATH sur la période considérée, on se retrouve avec des piles $PH et $valPH vides

    il y a une petite subtilité dans mon code, car je considère que le PH ne donne lieu qu’ à un BO confirmé que si close > (la valeur du PH considéré) sur la ou les barres immédiatement suivant le PH franchi

    Merci de me donner vos remarques sur cette stratégie. Je suis surtout intéressé par l’échange plus que le simple transfert de code., ceci pour me faire progresser.

    C’est facilement applicable à une détection de franchissement de PB. Le code pour un screener est nettement plus compliqué compte tenu de la limitation à 256 barres d’historique mais j’ai aussi trouver un moyen de contourner ce PB avec approximation sur l’historique

    Si échange, je nettoierai et partagerai mon code sans problème.

    A vous lire et du succès dans vos stratégies

    Merci beaucoup, je ne suis pas assez avancé en codage pour tout comprendre, mais je veux bien le code. J’essaierai de l’analyser et de l’adapter à ma stratégie. Merci encore de m’accorder un peu de votre temps.

    #238487 quote
    george15
    Participant
    Junior

    Bonjour. Voici un exemple :

     

    Merci pour cet exemple, j’ai déjà essayé cette formule mais dans mon cas ça ne fonctionne pas.

    #238517 quote
    plbourse
    Participant
    New

    Bonjour

    Le code ci-joint nécessite d’utiliser les Arrays donc la version PRT V11 au moins.

    un PB (Plus Bas) est détecté lorsque le Low est inférieur au Low des 2 barres avoisinantes : Il est donc détecté avec une barre de retard. le cas où le Low est le même sur plusieurs barres successives n’est pas traité

    Le code gère un tableau de tous les PB détecté et considérés comme encore valables, c’est à dire en-dessous de la barre courante.

    L’indicateur renvoie le prochain PB donc le prochain support. Si on est dans une phase de ATL (All Times Low, en dessous de tous les PB détectés sur le graphique actuel) le code renvoie 0 jusqu’à ce qu’un PB soit détecté.

     

    // Indicateur PB Support 20241005
    // Renvoie le prochain support à la Baisse, 0 lorsque on est dans une phase en dessous de tous les Cours déjà enregistrés sans qu'un nouveau PB sur 3 barres n'ai été détecté,
    // dans ce cas, on a un ATL, (All Times Low) et on renvoie 0 jusqu'à ce qu'un nouveau PB sur 3 barres ait été détecté
    // pas de gestion des numéros de barres
    // dans cet indicateur, on gère un tableau $PB qui stocke toutes les vlaeurs des PB rencontrés inférieurs au Low actuel
    // l'indicatgeur renvoie le PB le plus proche de la barre actuelle
    
    CondPB = (low[1] < low) and (low[1] < low[2])
    
    if condPB then
    // on a détecté un nouvel élément... il faut le mettre dans la pile
    valPB = low[1]
    
    // l'idée est dee stocker ce nouveau PB dans la pile
    // On le stocke dans la valeur maximale de la pile
    $PB[LastSet($PB) + 1] = valPB
    
    // on classe le tableau $PB par valeurs décroissantes
    ArraySort($PB, Descend)
    // c'est termine pour la pile
    // fin de if condPB then
    endif
    
    // nettoyage de la pile si on a franchi un support existant
    if (Low < $PB[0]) then
    // en partique la condition and ($PB[0] <>0) est inutile car (Low < $PB[0]) sous-entend que $PB[0] est non nul
    // il faut dépiler et répéter le dépilage tant que la condition sera respectée, la condition (low < $PB[0]) sous-entend que la pile est non vide
    // donc que LastSet($PB) vaut au moins 0
    while (low < $PB[0]) do
    // on annulle la valeur $PB[>0]
    $PB[0] = 0
    // on classe le tableau en mode descendant
    ArraySort($PB, Descend)
    
    // fin de la boucle while
    wend
    
    // fin de if (Low < $PB[0]) then
    endif
    
    Return $PB[0] as "Prochain Support à la baisse"
    

    J’ajoute le fichier itf pour facilite l’importation

    A vous lire

    Ind-PB-Support-20241005.itf
    #238868 quote
    george15
    Participant
    Junior

    merci beaucoup je vais étudier tout ça.

    #238884 quote
    plbourse
    Participant
    New

    Au plaisir de lire vos commentaires et remarques

Viewing 8 posts - 1 through 8 (of 8 total)
  • You must be logged in to reply to this topic.

Détection Dernier Plus Bas


ProOrder : Trading Automatique & Backtests

New Reply
Author
author-avatar
george15 @george15 Participant
Summary

This topic contains 7 replies,
has 3 voices, and was last updated by plbourse
1 year, 4 months ago.

Topic Details
Forum: ProOrder : Trading Automatique & Backtests
Language: French
Started: 10/01/2024
Status: Active
Attachments: 1 files
Logo Logo
Loading...