bjr,
j’ai réalisé un backtest de la stratégie DCA
il n’y a pas d’erreur de code mais je n’obtiens aucun résultat
pouvez vous m’aider
merci,
AT
// ========================================
// STRATEGIE DCA (DOLLAR COST AVERAGING)
// ========================================
DEFPARAM CumulateOrders = true // cumul des positions
// — PARAMETRES DE LA STRATEGIE —
DCAInterval = 20 // Nombre de barres entre chaque achat DCA
InvestAmount = 1000 // Montant en cash à investir à chaque fois
MaxPositions = 10 // Nombre maximum de positions simultanées
StopLossPct = 15 // Stop loss en pourcentage (15 = -15%)
TakeProfitPct = 20 // Take profit en pourcentage (20 = +20%)
// — VARIABLES —
ONCE BarsSinceLastBuy = 0
ONCE TotalPositions = 0
ONCE TotalInvestment = 0
ONCE AveragePrice = 0
// — COMPTEUR DE BARRES —
BarsSinceLastBuy = BarsSinceLastBuy + 1
// — CONDITION D’ACHAT DCA —
// Acheter tous les X barres si on n’a pas atteint le maximum de positions
IF BarsSinceLastBuy >DCAInterval AND TotalPositions < MaxPositions THEN
BUY InvestAmount CASH AT MARKET
BarsSinceLastBuy = 0
TotalPositions = TotalPositions + 1
TotalInvestment = TotalInvestment + InvestAmount
IF COUNTOFLONGSHARES > 0 THEN
AveragePrice = TotalInvestment / COUNTOFLONGSHARES
ENDIF
endif
// — CONDITIONS DE SORTIE —
// Stop Loss : Vendre si le prix descend sous le seuil défini
IF LONGONMARKET AND Close <= AveragePrice * (1 - StopLossPct/100) THEN
SELL AT MARKET
// Réinitialiser les variables
TotalPositions = 0
TotalInvestment = 0
AveragePrice = 0
BarsSinceLastBuy = 0
ENDIF
// Take Profit : Vendre si le prix monte au-dessus du seuil défini
IF LONGONMARKET AND Close >= AveragePrice * (1 + TakeProfitPct/100) THEN
SELL AT MARKET
// Réinitialiser les variables
TotalPositions = 0
TotalInvestment = 0
AveragePrice = 0
BarsSinceLastBuy = 0
ENDIF
// — VERSION ALTERNATIVE AVEC MOYENNES MOBILES —
// Décommentez ces lignes pour ajouter un filtre de tendance
// MM20 = AVERAGE[20](CLOSE)
// MM50 = AVERAGE[50](CLOSE)
// Condition d’achat DCA améliorée avec filtre de tendance
// IF BarsSinceLastBuy >= DCAInterval AND TotalPositions < MaxPositions AND MM20 > MM50 THEN
// BUY InvestAmount CASH AT MARKET
// BarsSinceLastBuy = 0
// TotalPositions = TotalPositions + 1
// TotalInvestment = TotalInvestment + InvestAmount
// IF COUNTOFLONGSHARES > 0 THEN
// AveragePrice = TotalInvestment / COUNTOFLONGSHARES
// ENDIF
// ENDIF
// ========================================
// PARAMETRES DE BACKTEST RECOMMANDES
// ========================================
//
// 1. Capital initial : 50 000 € (pour permettre 10 achats de 1000€)
// 2. Spread : Selon l’instrument (ex: 2 points pour CAC40)
// 3. Commission : Selon votre courtier
// 4. Période de test : Au moins 2-3 ans pour évaluer la robustesse
// 5. Timeframe : H1 ou D1 pour éviter le bruit
//
// METRIQUES A ANALYSER :
// – Gain total et pourcentage
// – Maximum Drawdown
// – Ratio gain/perte
// – Nombre de trades gagnants/perdants
// – Profit Factor
// – Sharpe Ratio (si disponible)
// ========================================
// VARIANTES A TESTER
// ========================================
//
// 1. DCA avec RSI : Acheter seulement si RSI < 70
// 2. DCA avec support/résistance
// 3. DCA pyramidal : Augmenter la taille lors des baisses
// 4. DCA avec stop time : Arrêter après X mois
// 5. DCA adaptatif : Modifier l'intervalle selon la volatilité