Identification de la resistance la plus basse et du support le haut

Forums ProRealTime forum Français Support ProBuilder Identification de la resistance la plus basse et du support le haut

Viewing 7 posts - 1 through 7 (of 7 total)
  • #236697

    Bonjour,

    A partir d’une analyse multi timeframe, j’obtiens un ensemble de valeurs qui sont, pour chaque période, soit des résistances soit de supports.

    Je cherche à créer un indicateur pour éviter à avoir 5-6 fenêtres d’ouvertes et pour éventuellement créer des conditions de vente dans un algo.

    Ainsi, dans mon unité de temps dans la quelle j’interviens (et qui est la plus faible des 5-6 fenêtres), je dois :

    • définir si chaque nouvelle valeur calculée constitue une résistance ou un support (ça je sais faire)
    • créer une liste de Supports, et une liste de Résistance
    • puis, à partir des deux listes crées, identifier le support et la résistance les plus proches de mon prix

    Il est toujours possible de classer via un algo une vingtaine de valeurs, mais, cela est extrêmement fastidieux, à base de If etc….

    Quelles seraient les solutions offertes par PRT ?

    merci d’avance

    #236699

    Bonjour,

    Variante 1: On met les 2 listes dans 2 tableaux (“arrays”, notation $nomdetableau[indexdansletableau]), on les trie par ordre croissant, on combine une boucle FOR NEXT et un bloc IF ENDIF pour trouver avec chaque liste qui est le plus proche

    (instruction utile arraysort : https://www.prorealcode.com/documentation/arraysort/ )

    Variante 2: On stocke en tableaux non pas les 2 listes, mais les “prix-support” et “résistance-prix”, on n’en garde que les positifs, et on prend le mini positif de chaque, qui correspondent donc au plus proche support et à la plus proche résistance

    (instruction utile arraymin : https://www.prorealcode.com/documentation/arraymin/ )

    Variante3: On écourte chacune des 2 listes en supprimant les anciens supports plus hauts que le prix actuel, et les anciennes résistances plus basses que le prix actuel, et on prend le max de la nouvelle liste écourtée de support, et le min de la nouvelle liste écourtée de résistances

    (instruction utile arraymin : https://www.prorealcode.com/documentation/arraymin/ )

    (instruction utile arraymax : https://www.prorealcode.com/documentation/arraymax/ )

    2 users thanked author for this post.
    #236707

    Merci beaucoup c’est très utile, je suis parti sur la première solution qui est la plus “logique” selon moi (la seconde est relativement proche également)

    j’ai ajouté Unset($Nomdutableau) pour chacun de mes tableaux, sinon, j’avais l’impression que les données passées restaient stockées.

    Par contre, je constate que parfois un tableau, pour une bougie donnée, est vide ; la valeur retournée par l’opération ArrayMax, ou ArrayMin selon le cas, est donc la valeur précédente.

    y a-t-il une instruction pour savoir si le tableau est vide ?

    Ainsi, je pourrai créer une “alerte” pour ignorer la valeur retournée (et dire qu’il n’y a pas de supports ou resistances proches)

    Merci encore

    #236708

    Finalement, j’utilise la fonction LastSet, ce qui me permet de savoir si le tableau est vide.

    Merci encore

    #236790

    Un dernière question :  est-il possible de demander les 2 valeurs les plus hautes dans un tableau ? ou d’identifier le 3ème valeur par exemple ?

    Merci d’avance

    #236884

    Avant l’arrivée de l’instruction arraysort, je me souviens avoir codé quelque chose comme ça sur le forum, mais je ne retrouve plus le post, et maintenant qu’on a arraysort (avec choix de mode ascend ou descend), c’est plus simple, donc pas besoin du vieux post: on peut par exemple copier un tableau dans un tableau jumeau de nom différent (pour ne pas perdre le tableau original si on en a besoin sans en changer l’ordre), puis trier ce tableau jumeau avec arraysort. Si on a pris descend, dans les premiers rangs seront les valeurs les plus hautes, si on a pris ascend les premiers rangs seront les valeurs les plus basses (le 1er rang étant en fait le rang 0, le 2e le rang 1, etc…).

    #236962

    ON peut demander avec les array la deuxième valeur la plus haute ?

    ou alors on crée un nouveau tableau en excluant la valeur ls plus haute du deuxième tableau ?

Viewing 7 posts - 1 through 7 (of 7 total)

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