
Strategi purata kos grid USD (GridDCA) adalah strategi perdagangan automatik yang menggunakan purata kos USD (DCA) untuk membuat pelaburan di beberapa grid harga untuk mengurangkan risiko pelaburan dan meningkatkan kestabilan pengumpulan aset. Strategi ini dibangunkan berdasarkan skrip pin pada platform TradingView, yang dapat menetapkan parameter seperti bilangan grid, jarak grid, kadar stop loss dan sasaran keuntungan, dan menyokong kedua-dua cara pesanan harga pasaran dan harga had.
DCA adalah strategi pelaburan jangka panjang, dengan memasukkan jumlah tetap dalam selang waktu yang tetap, tanpa mempertimbangkan harga semasa aset, untuk mengurangkan kesan turun naik pasaran terhadap pelaburan. Berdasarkan ini, strategi GridDCA memperkenalkan konsep grid harga, yang menghasilkan beberapa grid dengan harga yang berbeza berdasarkan jumlah grid dan jarak grid yang ditetapkan oleh pengguna. Setiap grid mempunyai jumlah pembelian dan harga yang sesuai. Apabila harga menyentuh grid tertentu, strategi akan melakukan operasi pembelian dengan harga pasaran atau harga terhad mengikut set.
GridDCA adalah strategi perdagangan automatik berdasarkan asas kos rata-rata dolar, yang secara berkesan mengurangkan kesan turun naik pasaran terhadap pelaburan dan meningkatkan kestabilan pengumpulan aset dengan melabur dalam pelbagai grid harga. Strategi ini mempunyai kelebihan seperti perdagangan automatik, pengurangan risiko, fleksibiliti, pesanan yang kuat dan pelbagai, tetapi juga menghadapi cabaran seperti risiko trend pasaran, risiko parameter dan risiko kecairan.
/*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)