この戦略は,ボリンジャーバンド指標に基づくモメントトラッキング取引システムである.価格と上部ボリンジャーバンドの関係を監視することによって潜在的なブレイクアウト機会を特定し,価格が下部バンドを下回るとポジションを閉鎖する.ボリンジャーバンドは,中部バンド (移動平均),上部および下部バンド (標準偏差を使用して計算される) の3つのラインで構成される.この戦略は,複数の種類の移動平均をサポートし,トレーダーの好みに基づいてパラメータ調整を可能にする.
戦略の基本論理は以下の点に基づいています
この戦略は,ボリンジャーバンドをベースとしたトレンドフォロー戦略であり,価格とバンドの関係を観察することで市場のトレンドを把握する.この戦略は,適応性とリスク管理メカニズムが良好な設計である.提案された最適化方向を通じて,戦略の安定性と収益性がさらに向上することができる.特に不安定な市場に適していますが,トレーダーは実際の状況に応じてパラメータとリスク管理措置を調整する必要があります.
/*backtest start: 2019-12-23 08:00:00 end: 2025-01-04 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(title="Demo GPT - Bollinger Bands Strategy", overlay=true, initial_capital=100000, commission_type=strategy.commission.percent, commission_value=0.1, slippage=3) // Inputs length = input.int(20, minval=1, title="Length") maType = input.string("SMA", "Basis MA Type", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"]) src = input(close, title="Source") mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev") offset = input.int(0, "Offset", minval=-500, maxval=500) startDate = input(timestamp('01 Jan 2018 00:00 +0000'), title="Start Date") endDate = input(timestamp('31 Dec 2069 23:59 +0000'), title="End Date") // Moving Average Function ma(source, length, _type) => switch _type "SMA" => ta.sma(source, length) "EMA" => ta.ema(source, length) "SMMA (RMA)" => ta.rma(source, length) "WMA" => ta.wma(source, length) "VWMA" => ta.vwma(source, length) // Calculations basis = ma(src, length, maType) dev = mult * ta.stdev(src, length) upper = basis + dev lower = basis - dev // Plotting plot(basis, "Basis", color=#2962FF, offset=offset) p1 = plot(upper, "Upper", color=#F23645, offset=offset) p2 = plot(lower, "Lower", color=#089981, offset=offset) fill(p1, p2, title="Background", color=color.rgb(33, 150, 243, 95)) // Strategy Logic inTradeWindow = true longCondition = close > upper and inTradeWindow exitCondition = close < lower and inTradeWindow if (longCondition) strategy.entry("Long", strategy.long, qty=1) if (exitCondition) strategy.close("Long")