
Гридовая средняя сетка долларовых затрат (GridDCA) - это автоматизированная торговая стратегия, использующая среднюю сетку долларовых затрат (DCA) для инвестирования в несколько ценовых сеток, чтобы снизить риск инвестирования и увеличить стабильность накопления активов. Эта стратегия основана на разработке Pine Script на платформе TradingView, которая позволяет гибко устанавливать параметры, такие как количество сеток, расстояние сетки, стоп-лосс и целевая прибыль, и поддерживает как рыночные цены, так и ценовые ограничения.
DCA - это долгосрочная инвестиционная стратегия, которая позволяет снизить влияние рыночных колебаний на инвестиции, вкладывая фиксированную сумму в течение фиксированного промежутка времени без учета текущей цены на активы. На этой основе стратегия GridDCA вводит концепцию ценовой сетки, создавая несколько различных ценных сетей в зависимости от количества сетей и расстояния между сетями, установленных пользователем. Каждая сетка имеет соответствующее количество покупок и цены.
Стратегия GridDCA - это стратегия автоматизированной торговли, основанная на принципе средней стоимости доллара, которая эффективно снижает влияние рыночных колебаний на инвестиции и увеличивает стабильность накопления активов путем инвестирования в несколько ценовых сетей. Эта стратегия имеет преимущества автоматизации торговли, снижения риска, гибкости, сильной диверсификации заказов, но в то же время сталкивается с такими проблемами, как рыночный риск, риск параметров и риск ликвидности.
/*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)