Identification du plus haut et du plus bas

Forums ProRealTime forum Français Support ProBuilder Identification du plus haut et du plus bas

Viewing 15 posts - 1 through 15 (of 22 total)
  • #213626

    Bonjour, je reviens de nouveau sur mon problème d’identifier certaines situations.

    Voici donc la formule de base qui intègre la moyenne à partir de la KAMA et le cours de clôture du sous jacent. La distance peut être soit positive soit négative.

    Je vais prendre un exemple simple pour formuler ma demande : je souhaiterai identifier l’écart positif le plus élevé (par exemple) sur un historique de 3 périodes. Dans le tableau joint, si je suis en UT 15min et que je me place à 9h45, l’écart le plus élevé sera 8 qui est la période 1. Puis si je me place à 10 heures, l’écart le plus élevé sera 6 qui correspond à la période 4 (la période 1 disparaissant puisque je calcule sur un historique de 3 périodes en arrière.

    Donc comment faire pour identifier ce plus haut ? La question se posera pour l’écart négatif.

    Merci.

     

    #213691

    Bjr,

    Tu peux utiliser highest[3](distance)

    1 user thanked author for this post.
    #213692

    Merci; Oui et ça fonctionne.

    une deuxième question : et si je veux “toper” non le plus haut (ou le plus bas) mais par exemple les deux plus hauts sur l’historique des 3 dernières périodes et ensuite en faire une moyenne ?

    Merci.

    #213695

    Pour faire la moyenne des 2 plus grandes valeurs sur une série de 3, au lieu de chercher qui est “deuxième plus grand”, on peut plus simplement chercher la plus petite valeur et la soustraire de la somme des 3, il ne reste ainsi que la somme des 2 plus grandes, qu’on divise par 2 pour en faire la moyenne:

    moy2plusgrands = (summation[3](distance) – lowest[3](distance))/2

    #213696

    Merci. Un historique de 3 périodes était un exemple pour simplifier ma demande. Si je prends un historique de 50 périodes, comment faire alors ?

    Merci.

    #213698

    Avec 50, on peut par exemple faire comme ceci:

     

    1 user thanked author for this post.
    #213699

    Merci. Je vais essayer.

    #213714

    Bonjour,

    suite aux échanges précédents, je voulais vous demander si le code vous paraît correct. Il s’agit de mesurer l’écart entre la KAMA 150 et la clôture du cours. Quand la clôture est au-dessus de la KAMA, le code est “distplus” = distance et quand la clôture est au dessous de la kama; me code est “distminus” = – distance. Est-ce que cela vous paraît correct ?

    et même question pour les MaxHigh et les maxLow.

    En fait, je recherche à identifier les distances kama / clôture les plus importantes de façon à ne pas entrer dans le marché lorsque cette distance est atteinte. Et j’ai donc fait une mesure sur un historique de 350 (au pif). L’essentiel étant que ma formule de calcul est correct. Je verrai ensuite à “fignoler” mon indicateur.

    Merci.

    #213730

    Cela semble correct, j’aurais juste rajouté au début une initialisation:

    pour éviter d’avoir l’un ou l’autre restant égal à sa valeur précédente au lieu de passer à zéro quand xclose croise kama (même si cette valeur précédente est probablement petite et que cela a peu de chance d’affecter son highest sur 350)

    1 user thanked author for this post.
    #213734

    Merci. je vais rajouter l’initialisation. Et je vais regarder comme cela se passe.

    #217680

    Bonjour,

    je reviens sur cette formule qui identifie les plus hauts sur un certain historique.

    Serait il possible de coder la formule qui identifie les plus bas  (j’ai essayé de remplacer highest par lowest mais bon ce n’est pas ça.

    Merci.

     

     

    #217732

    Essayons en remplacent aussi ArrayMax par ArrayMin, pour obtenir la valeur la plus basse du tableau où on a stocker les valeurs.

    #217736

    Merci.

    parce que dans mon code, je fais référence à une donnée intitulée “distance” qui est l’écart entre la clôture et la kama 150. Cette distance peut être positive ou négative (si la clôture est en-dessous de la KAMA).

    Je me demande donc comment différencier une distance positive et une distance négative car cela doit avoir un impact sur ma recherche des plus grandes distances positives et négatives.

    Si je fais comme ça par exemple :

    if distance > 0 then EcartUp = Distance   OU     if distance > 0 then distance = ecartUp

    if distance < 0 then EcartDn = Distance    OU     if distance < 0 then distance = ecartDn

    Je sais que je patauge depuis plusieurs semaines sur cet indicateur et je dois sûrement mal exprimer mon besoin.

    Merci pour votre compréhension.

    #217886

    Bonsoir,

    je reviens sur mon sujet. J’ai un peu modifié la proposition de correction donnée ci-avant (car la correction proposée ne me convenait pas).

    Pourriez-vous m’indiquer si donc ma correction à savoir :

    G11=lowest[50](plancher)
    for i=0 to 49
    $montab[i]=distance[i]
    if distance[i]=G1 then
    i1=i
    endif
    next
    for i=0 to 49
    if i=i1 then
    $montab[i]=0
    endif
    next
    G12=ArrayMin($montab)
    moy2pluspetits=(G11+G12)/2

    est correcte : visuellement, elle semble faire le “job” = elle renvoie les deux retournements “haussiers” les plus bas si j’ai bien programmé.

    Ce que j’aimerai savoir (question s’adressant à un spécialiste du codage) c’est de me traduire en français compréhensible les lignes de code à partir de   G11=lowest[50](plancher) afin que je puisse comprendre la signification des termes et conditions utilisées dans les lignes de ce code.

    merci d’avance.

    #218681

    Bonjour, commençons par expliquer les lignes sur les plus hauts proposé dans :

    https://www.prorealcode.com/topic/identification-du-plus-haut-et-du-plus-bas/#post-213698

    et au passage en proposer une meilleure version, et ensuite on verra pour obtenir l’équivalent pour les plus bas).

    G1 à chaque bougie retient le plus haut de la variable “distance” parmi 50 (celle en cours et les 49 avant) de distance

    ensuite la boucle for va permettre d’indexer un tableau $montab et d’y stocker chaque “distance” en l’alignant sur 50 (bougie en cours [0] et les 49 avant)

    pendant que i parcours de 0 à 49, si on tombe sur distance[i]=G1, on met en mémoire l’index du moment via i1=i (il peut y en avoir plusieurs si G1 pas unique, on retiendra juste le dernier dans un seul i1)

    ensuite, pour trouver le 2e plus haut, on va supprimer le plus haut $montab[i1] de la série et utiliser arraymax où le 2e plus haut d’avant est devenu le plus haut pour trouver G2. Si je me souviens bien, j’étais d’abord parti sur une façon de faire à 2 boucles, puis j’ai changé en remplaçant le contenu des 2 boucles, mais en relisant je vois qu’avec cette façon de faire-ci il n’y a plus besoin de boucle pour réaliser la 2e étape, donc on va plutôt faire (même résultat mais plus léger en écriture):

    enfin, puisque tu précises en #217736 que “distance” peut être aussi bien positif que négatif, alors imaginons un jeu théorique de 50 “distance” tous négatif, remplacer G1 par 0 n’éliminerait pas la valeur en tant que 1er plus grand comme cela le ferait pour une série comportant des “distance” positif, on va donc plutôt faire sans 2e boucle, directement:

    $montab[i1]=arraymin($montab)

    Au final:

     

    et donc, pour faire la moyenne des 2 plus petits “distance” (en réponse au post #217680, n’ayant pas regardé en détails les posts qui ont suivi où “plafond” et “plancher” semblent avoir remplacé “distance”), on adaptera ainsi:

     

    1 user thanked author for this post.
Viewing 15 posts - 1 through 15 (of 22 total)

Create your free account now and post your request to benefit from the help of the community
Register or Login