Bonjour roberto et toute la communauté je vous partage une stratégie sur du 30 sec nasdaq 15h30/17h30 je voudrais pouvoir diminuer la perte j’ai essayé d’intégrer votre break even pour limiter la perte mais cela reste moyen je trouve. Pouvez vous apporter votre savoir sur cette algo je vous remercie. Je m’aperçois que les deux premiers trades sont toujours gagnants mais un mauvais vient gâcher la fête. Sur le backtest depuis mi mars que je le suis les semaines sont toujours positves mais ca pourrait être mieux. Quand pensez vous? Merci pour votre aide // Définition des paramètres du code DEFPARAM CumulateOrders = False // Cumul des positions désactivé // Annule tous les ordres en attente et ferme toutes les positions à l'heure "FLATAFTER" DEFPARAM FLATAFTER = 173000 // Empêche le système de placer des ordres pour entrer sur le marché ou augmenter la taille d'une position avant l'heure spécifiée noEntryBeforeTime = 153000 timeEnterBefore = time >= noEntryBeforeTime // Empêche le système de placer des ordres pour entrer sur le marché ou augmenter la taille d'une position après l'heure spécifiée noEntryAfterTime = 173000 timeEnterAfter = time < noEntryAfterTime // 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 // Conditions pour ouvrir une position acheteuse indicator1 = RSI[14](close) c1 = (indicator1 CROSSES OVER 30) IF c1 AND timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry THEN BUY 1 CONTRACT AT MARKET ENDIF // Conditions pour ouvrir une position en vente à découvert indicator2 = RSI[14](close) c2 = (indicator2 CROSSES UNDER 70) IF c2 AND timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry THEN SELLSHORT 1 CONTRACT AT MARKET ENDIF // Stops et objectifs SET STOP pTRAILING 31 SET TARGET pPROFIT 11 IF Not OnMarket THEN // // when NOT OnMarket reset values to default values // TrailStart = 5 //30 Start trailing profits from this point BasePerCent = 0.000 //20.0% Profit percentage to keep when setting BerakEven StepSize = 10 //10 Pip chunks to increase Percentage PerCentInc = 0.100 //10.0% PerCent increment after each StepSize chunk BarNumber = 10 //10 Add further % so that trades don't keep running too long BarPerCent = 0.100 //10% Add this additional percentage every BarNumber bars RoundTO = -0.5 //-0.5 rounds always to Lower integer, +0.4 rounds always to Higher integer, 0 defaults PRT behaviour PriceDistance = 7 * pipsize //7 minimun distance from current price y1 = 0 //reset to 0 y2 = 0 //reset to 0 ProfitPerCent = BasePerCent //reset to desired default value TradeBar = BarIndex ELSIF LongOnMarket AND close > (TradePrice + (y1 * pipsize)) THEN //LONG positions // // compute the value of the Percentage of profits, if any, to lock in for LONG trades // x1 = (close - tradeprice) / pipsize //convert price to pips IF x1 >= TrailStart THEN // go ahead only if N+ pips Diff1 = abs(TrailStart - x1) //difference from current profit and TrailStart Chunks1 = max(0,round((Diff1 / StepSize) + RoundTO)) //number of STEPSIZE chunks ProfitPerCent = BasePerCent + (BasePerCent * (Chunks1 * PerCentInc)) //compute new size of ProfitPerCent // compute number of bars elapsed and add an additionl percentage // (this percentage is different from PerCentInc, since it's a direct percentage, not a Percentage of BasePerCent) // (if BasePerCent is 20% and this is 10%, the whole percentage will be 30%, not 22%) BarCount = BarIndex - TradeBar IF BarCount MOD BarNumber = 0 THEN ProfitPerCent = ProfitPerCent + BarPerCent ENDIF // ProfitPerCent = max(ProfitPerCent[1],min(100,ProfitPerCent)) //make sure ProfitPerCent doess not exceed 100% y1 = max(x1 * ProfitPerCent, y1) //y1 = % of max profit ENDIF ELSIF ShortOnMarket AND close < (TradePrice - (y2 * pipsize)) THEN //SHORT positions // // compute the value of the Percentage of profits, if any, to lock in for SHORT trades // x2 = (tradeprice - close) / pipsize //convert price to pips IF x2 >= TrailStart THEN // go ahead only if N+ pips Diff2 = abs(TrailStart - x2) //difference from current profit and TrailStart Chunks2 = max(0,round((Diff2 / StepSize) + RoundTO)) //number of STEPSIZE chunks ProfitPerCent = BasePerCent + (BasePerCent * (Chunks2 * PerCentInc)) //compute new size of ProfitPerCent // compute number of bars elapsed and add an additionl percentage // (this percentage is different from PerCentInc, since it's a direct percentage, not a Percentage of BasePerCent) // (if BasePerCent is 20% and this is 10%, the whole percentage will be 30%, not 22%) BarCount = BarIndex - TradeBar IF BarCount MOD BarNumber = 0 THEN ProfitPerCent = ProfitPerCent + BarPerCent ENDIF // ProfitPerCent = max(ProfitPerCent[1],min(100,ProfitPerCent)) //make sure ProfitPerCent doess not exceed 100% y2 = max(x2 * ProfitPerCent, y2) //y2 = % of max profit ENDIF ENDIF IF y1 THEN //Place pending STOP order when y1 > 0 (LONG positions) SellPrice = Tradeprice + (y1 * pipsize) //convert pips to price // // check the minimun distance between ExitPrice and current price // IF abs(close - SellPrice) > PriceDistance THEN // // place either a LIMIT or STOP pending order according to current price positioning // IF close >= SellPrice THEN SELL AT SellPrice STOP ELSE SELL AT SellPrice LIMIT ENDIF ELSE // //sell AT MARKET when EXITPRICE does not meet the broker's minimun distance from current price // SELL AT Market ENDIF ENDIF IF y2 THEN //Place pending STOP order when y2 > 0 (SHORT positions) ExitPrice = Tradeprice - (y2 * pipsize) //convert pips to price // // check the minimun distance between ExitPrice and current price // IF abs(close - ExitPrice) > PriceDistance THEN // // place either a LIMIT or STOP pending order according to current price positioning // IF close <= ExitPrice THEN EXITSHORT AT ExitPrice STOP ELSE EXITSHORT AT ExitPrice LIMIT ENDIF ELSE // //ExitShort AT MARKET when EXITPRICE does not meet the broker's minimun distance from current price // EXITSHORT AT Market ENDIF ENDIF