この戦略は,ボリンジャーバンドのベースラインとしてEVWMAを使用します.価格が上部バンドを突破すると長行し,価格が下部バンドを突破すると短行します.
この戦略は,最初に過去30期間の総容量を vol_periodとして計算し,次に EVWMA を公式で計算します. (前の EVWMA x (vol_period - 現在の容量) + 現在の容量 x 閉じる) / vol_period.
ボリンジャー帯のベースはEVWMAとして設定され,上下帯はベース ± 2 * stdev ((近) である. ストラテジーは,価格が上帯を突破するとロングになり,価格が下帯を突破するとショートになる.ストップロスはベースレベルに設定される.
EVWMAは移動平均値よりも価格変化を反映し,より平らな線を生み出します.
ボリンジャー・バンドは価格変動の上限と下限を明確に示し,ブレイクアウトを簡単に把握できます
トレンドインジケーター EVWMA と波動性インジケーター Bollinger Bands を組み合わせることで,エントリのタイミングがより正確になります.
ベースレベルでのストップロスはリスクを制御するのに役立ちます
EVWMAは,巨大な市場変動の際に価格の変化を時間的に反映できず,市場への参入機会を逃してしまう可能性があります.
波リンジャー帯は,範囲限定の市場において,不必要なエントリを誘発する,ウィップソーに傾向があります.
ポジションのサイズ化や保有期間管理の欠如は,不満足な利益や損失の拡大につながる可能性があります.
利益目標の欠如は,合理的な目標を超えたポジションを保持するリスクです.
最適なバックバック期間を見つけるために異なるパラメータ設定をテストします.
入力シグナルを洗練するためにMACDのようなフィルターを追加してみてください
取引を管理するために固定保持期間を導入する.
合理的な利益目標を定義するために利益目標を設定します
市場の状況に基づいてポジションサイズを調整する.
この戦略は,EBWMAとボリンジャーバンドの強みを組み合わせて,ブレイクアウトを捕捉することでトレンドを追跡する.その利点は合理的な指標組み合わせ,正確なエントリー,効果的なリスク制御である.しかし,不適切なパラメータ調整と取引管理の欠如は問題であり続けている.パラメータ最適化,利益ターゲット,ストップ損失,ポジションサイジングのさらなる改善は,その安定性と収益性を向上させることができる.全体として,戦略論理は健全であり,実用的な価値と開発の可能性を示している.
/*backtest start: 2022-10-26 00:00:00 end: 2023-11-01 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("EVWBB Strategy [QuantNomad]", shorttitle="EVWBB Strategy [QN]", overlay=true) // Inputs sum_length = input(30, title = "Length", type = input.integer) mult = input(2.0, minval=0.001, maxval=50) // Calculate Volume Period vol_period = sum(volume, sum_length) // Calculate EVWMA evwma = 0.0 evwma := ((vol_period - volume) * nz(evwma[1], close) + volume * close) / (vol_period) basis = evwma dev = mult * stdev(close, sum_length) upper = basis + dev lower = basis - dev plot(basis, color=color.red) p1 = plot(upper, color=color.blue) p2 = plot(lower, color=color.blue) fill(p1, p2) buyEntry = crossover(close, lower) sellEntry = crossunder(close, upper) strategy.entry("BBandLE", strategy.long, stop = upper , oca_name = "BollingerBands", comment="BBandLE") strategy.entry("BBandSE", strategy.short, stop = lower, oca_name = "BollingerBands", comment="BBandSE") strategy.exit("BBand L SL", "BBandLE", stop = basis) strategy.exit("BBand S SL", "BBandSE", stop = basis)