
格子ドルコスト平均策略 (GridDCA) は,ドルコスト平均法 (DCA) を利用して複数の価格格子で定投を行う自動化取引策である.投資リスクを軽減し,資産蓄積の安定性を高める.この策は,TradingViewプラットフォーム上のPine Script開発に基づいており,格子数,格子距離,止損率,利益目標などのパラメータを柔軟に設定し,市場価格と制限価格の両方の注文方法をサポートしている.
DCAは,固定の金額を固定時間帯に投入し,資産の現在の価格を考慮せずに,投資に対する市場の変動の影響を軽減する長期投資戦略である.GridDCA戦略は,この基礎で価格格子という概念を導入し,ユーザが設定する格子数と格子距離に応じて,複数の異なる価格の格子を生成する.各格子には,対応する購入数と価格がある.価格が特定の格子に触れたとき,戦略は,市場価格または制限価格の方法で購入操作を実行します.
格子ドルコスト平均策略 (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)