Prise de position différée avec ou sans martingale

Forums ProRealTime forum Français Support ProBuilder Prise de position différée avec ou sans martingale

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

    Bonjour à toutes et tous.

    J’essai de coder un système qui regarde les “x” dernières positions d’achat/vente théorique d’un système (exemple ici avec le croisement du supertrend) pour entrer en position.

    Exemple : les 5 dernières positions acheteuses et vendeuses confonduent lors de la cassure du supertrend en clôture avec un tp et un sl défini auraient donné une perte (ces positions n’ayant pas été prise en réalité). J’aimerais que sur le sixième signal par exemple, il y ai une entrée en position. Et que si jamais cette position est perdante, sur la suivante, on est une martingale par exemple. Et qui dès que la position est gagnante, on attend de nouveau un cycle de 5 signaux perdant avant d’entrer en position sur le sixième.

    Voici le code envisagé, mais comme les positions ne sont pas prises réellement avant, je pense qu’il n’entre jamais en position du coup, mais je ne trouve pas comment corriger ce problème :

    // Définition des paramètres du code
    DEFPARAM CumulateOrders = True // Cumul des positions désactivé
    // Annule tous les ordres en attente et ferme toutes les positions à 0:00, puis empêche toute création d’ordre avant l’heure “FLATBEFORE”.
    DEFPARAM FLATBEFORE = 152900
    // Annule tous les ordres en attente et ferme toutes les positions à l’heure “FLATAFTER”
    DEFPARAM FLATAFTER = 220000

    // Empêche le système de placer de nouveaux ordres sur les jours de la semaine spécifiés
    daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0

    CA = close crosses over supertrend[2,100]
    CV = close crosses under supertrend[2,100]

    once mylot = 0.2

    if positionperf(5)<0 and positionperf(4)<0 and positionperf(3)<0 and positionperf(2)<0 and positionperf(1)<0 then

    if CA then
    BUY mylot CONTRACTS AT MARKET
    endif
    if CV then
    SELLSHORT mylot CONTRACTS AT MARKET
    endif

    endif

    if positionperf(6)<0 and positionperf(5)<0 and positionperf(4)<0 and positionperf(3)<0 and positionperf(2)<0 then

    if positionperf(1)<0 and CA then
    mylot = mylot*2
    BUY mylot CONTRACTS AT MARKET
    change=change+1
    endif
    if positionperf(1)<0 and CV then
    mylot = mylot*2
    SELLSHORT mylot CONTRACTS AT MARKET
    change=0
    endif
    endif

    set target pprofit 15
    set stop ploss 15

    //graph change

    #235068
    JS

    Donc, vous ne regardez que les six dernières positions, et quand ces six positions sont toutes déficitaires, vous doublez le nombre de contrats… ?

    #235070

    Non à ce moment là j’entre en position pour la première fois avec 1 seul lot.

    Si jamais cette première entrée est perdante, à ce moment là je commence une martingale.

    #235072
    JS

    Peut-être pouvez-vous utiliser le code suivant comme point de départ…

    1 user thanked author for this post.
    #235085

    Merci, les trades sont pris.

     

    Par contre, il prend position durant les 5 premiers setups qui sont perdant. J’aimerais qu’il n’y ai pas de position prise durant ces 5 setups. Je ne sais pas si une mise en mémoire des setups perdant peut être faite (sans qu’ils n soient pris en réel) et que seulement lorsqu’on atteint les 5 setups perdant, on entre en position sur le 6 ème et si le 6ème est une perte alors on commence la martinguale. Je n’arrive pas à trouver comment faire cette partie.

     

    #235094
    JS
    #235102

    Merci je vaisl ire ça attentivement 😉

    1 user thanked author for this post.
    avatar JS
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