Amélioration point d’entrée sur point pivot

Forums ProRealTime forum Français Support ProOrder Amélioration point d’entrée sur point pivot

Viewing 2 posts - 1 through 2 (of 2 total)
  • #236766

    Hello,

    Je cherche à améliorer une stratégie sur futures cac en timeframe 1Minute, notamment le point d’entrée sur des positions short. J’ai remarqué que mon signal d’entrée est trop précoce et que bien souvent le cours vient taper le point pivot supérieur avant de partir en effet à la baisse.

    Je souhaite donc ne pas shorter sur mon signal de vente mais sur le point pivot supérieur le plus proche.

    Pour l’exemple ci-dessous j’ai repris un indicateur lambda. L’idée est que lorsqu’un signal short apparaît, j’attends que le cours soit au dessus du point pivot supérieur le plus proche (puisque je short) pour rentrer en position short. Le problème c’est que mon code ne fonctionne pas et je ne comprends pas pourquoi.

    Dans 1 premier temps, j’ai chercher à récupérer les niveaux des points pivots. Ensuite vous verrez  1 stratégie lambda pour le signal de short, c’est pour l’exemple. Et enfin je cherche à savoir quel est le point pivot supérieur le plus proche de mon signal de vente pour rentrer sur ce niveau.

    La variable “monpoint” est sensé donner le niveau du pivot le plus proche à la hausse. Je l’ai appelé dans l’indicateur et il semble correct. Mais pourtant lorsque je l’utilise sur cette ligne :

    “if SignalPositionSell = 1 and high > monpoint then ”

    –>rien ne se passe. Si je remplace “monpoint” par un niveau du cac par exemple

    “if SignalPositionSell = 1 and high > 7390 then”

    –>alors cela fonctionne.

    Je ne comprends pas. Help Please. Je pense que cela peut servir à d’autre de venir chercher un point pivot sur une alerte. J’avais dans un premier temps mis un ordre limite sur la variable “monpoint” dans ma stratégie mais cela ne marchait pas. C’est pourquoi j’ai décidé de voir en détail via un indicateur, sans succès.

     

     

     

    Timeframe (daily)
    //pt pivot
    Ht = DHigh(1)
    Bs = DLow(1)
    C = DClose(1)
    Pivot = (Ht+Bs+2*C)/4
    Sup1 = (2*Pivot) – Ht
    Sup2 = Pivot – (Ht – Bs)
    Sup3 = Bs – 2*(Ht – Pivot)
    Sup4 = Bs – 3*(Ht – Pivot)
    Res1 = (2*Pivot) – Bs
    Res2 = Pivot + (Ht – Bs)
    Res3 = Ht + 2*(Pivot – Bs)
    Res4 = Ht + 3*(Pivot – Bs)

     

    Timeframe (default)
    TODFromHour = 080000 //time of the day
    TODToHour = 200000 //time of the day

    inTimeInterval = time>=TODFromHour and time<TODToHour

     

    //short term stochastic
    sto = stochastic[5,3]
    //long term stochastic
    stol = stochastic[233,1]

    ma100 = average[100,2](close)
    ma50 = average[50,2](close)

    //atr = averagetruerange[14]
    if inTimeInterval and barindex>233 and signalpositionsell<>1 then

    //if stol>52.01 and sto<10.1 and close>MA100 and close>MA50 and signalpositionsell<>1 then
    //SignalPositionSell = 1
    //PriceAlert = close[1]
    //drawarrowup(barindex,low-4*pointsize) coloured(102,255,0)
    //endif
    if stol<52.01 and sto>89.9 and close<MA100 and close<MA50 and signalpositionsell<>1 then
    SignalPositionSell = 1
    PriceAlert = close[1]
    endif
    endif

     

    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    //calcule le point pivot le plus proche à la hausse du signal de vente pour vendre au niveau du point pivot
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    //Signal de vente placé entre Pivot et S1
    if PriceAlert < Pivot and PriceAlert > Sup1 then
    monpoint= Pivot
    endif

    //Signal de vente placé entre S1 et S2
    if PriceAlert < Sup1 and PriceAlert > Sup2 then
    monpoint= Sup1
    endif

    //Signal de vente placé entre S2 et S3
    if PriceAlert < Sup2 and PriceAlert > Sup3 then
    monpoint= Sup2
    endif

    //Signal de vente placé entre S3 et S4
    if PriceAlert < Sup3 and PriceAlert > Sup4 then
    monpoint= Sup3
    endif

    //Signal de vente placé entre Pivot et R1
    if PriceAlert > Pivot and PriceAlert < Res1 then
    monpoint= Res1
    endif

    //Signal de vente placé entre R1 et R2
    if PriceAlert > Res1 and PriceAlert < Res2 then
    monpoint= Res2
    endif

    //Signal de vente placé entre R2 et R3
    if PriceAlert > Res2 and PriceAlert < Res3 then
    monpoint= Res3
    endif

    //Signal de vente placé entre R3 et R4
    if PriceAlert > Res3 and PriceAlert < Res4 then
    monpoint= Res4
    endif

    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

     

    if SignalPositionSell = 1 and high > monpoint then                 //and high > 7635
    drawarrowdown(barindex,high+8) coloured(255,0,0)
    DrawText(“#pricealert#”,barindex,high+4,Dialog,Bold,15)coloured(255,0,0)
    DrawText(“#monpoint#”,barindex,high+12,Dialog,Bold,15)coloured(255,0,0)
    signalpositionsell=0
    endif

     

    return

     

    #236888

    Holà. Il a simplement ajouté une ligne 49 (pour la représentation du monpoint) et a modifié les lignes 89 à 91 pour l'emplacement des signaux et des textes en fonction de la vraie gamme.

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

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