
La stratégie GridDCA est une stratégie de trading automatisée qui utilise la méthode DCA pour investir sur plusieurs grilles de prix afin de réduire les risques d’investissement et d’augmenter la stabilité de l’accumulation d’actifs. La stratégie est basée sur le développement de Pine Script sur la plate-forme TradingView, qui permet de définir de manière flexible des paramètres tels que le nombre de grilles, la distance de grille, le ratio de stop loss et les objectifs de profit, et prend en charge les deux modes de commande: prix de marché et prix limite.
La DCA est une stratégie d’investissement à long terme qui consiste à réduire l’impact des fluctuations du marché sur l’investissement en investissant des montants fixes à intervalles de temps fixes sans tenir compte du prix actuel de l’actif. Sur cette base, la stratégie de DCA introduit le concept de grille de prix, qui génère plusieurs grilles de prix différents en fonction du nombre et de la distance de grilles définis par l’utilisateur. Chaque grille a un nombre et un prix d’achat correspondants.
GridDCA est une stratégie de négociation automatisée basée sur la loi du coût moyen du dollar qui réduit efficacement l’impact des fluctuations du marché sur les investissements et augmente la stabilité de l’accumulation d’actifs en investissant sur plusieurs grilles de prix. Cette stratégie présente des avantages tels que l’automatisation des transactions, la réduction des risques, la flexibilité et la forte diversification des commandes, mais elle est également confrontée à des défis tels que le risque de tendance du marché, le risque de paramétrage et le risque de liquidité.
/*backtest
start: 2023-03-22 00:00:00
end: 2023-08-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("DCA Trading Strategy", overlay=true)
// Define input options
numGrids = input.int(5, title="Number of Grids")
gridDistance = input.float(0.5, title="Grid Distance")
stopLossPct = input.float(1, title="Stop Loss Percentage")
takeProfitPct = input.float(1, title="Take Profit Percentage")
useMarketOrder = input.bool(false, title="Use Market Order")
// Define DCA function
dca(quantity, price, stopLoss, takeProfit) =>
if useMarketOrder
strategy.entry("DCA Buy", strategy.short, qty=quantity)
else
strategy.entry("DCA Buy", strategy.short, qty=quantity, limit=price)
strategy.exit("Stop Loss/ Take Profit", "DCA Buy", stop=stopLoss, limit=takeProfit)
// Calculate grid levels
gridLevels = math.floor(strategy.position_size / (numGrids + 1) + 0.5)
// Calculate buy quantity
buyQuantity = strategy.position_size / numGrids
// Loop through each grid level
for i = 1 to numGrids
priceLevel = strategy.position_avg_price * (1 - gridDistance * i)
stopLossPrice = priceLevel * (1 - stopLossPct / 100)
takeProfitPrice = priceLevel * (1 + takeProfitPct / 100)
dca(buyQuantity, priceLevel, stopLossPrice, takeProfitPrice)
// Plot grid levels
plotshape(series=gridLevels, title="Grid Levels", location=location.abovebar, color=color.blue, style=shape.triangleup, size=size.small)