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