資源の読み込みに... 荷物...

Bollinger Breakout with Mean Reversion 4H 定量取引戦略

作者: リン・ハーンチャオチャン開催日:2024年12月12日 11:24:28
タグ:BBBANDSMASDTPSL

img

概要

この戦略は,トレンドブレークアウトと平均リバーションのトレードコンセプトを組み合わせたボリンジャーバンドに基づく4時間時間枠量的な取引システムである.この戦略は,利益を得るために価格平均リバーションを使用し,リスク管理のためにストップロスを実装しながら,ボリンジャーバンドブレークアウトを通じて市場の勢いを捕捉する.リスク管理を徹底しながらリターンを保証する3倍レバレッジを使用する.

戦略の原則

基本論理は次の主要な要素に基づいています

  1. 中央帯として20期間の移動平均値を使用し,波動性範囲に標準偏差が2つあります.
  2. 入力信号: 上部帯より上部帯が割れるときの長さ (開閉の平均) 下部帯より下部帯が割れるときの短さ
  3. アクジットシグナル: 2つの連続したキャンドルが上位帯を下回り,開いている値を下回り,開いている値を下回りしているときにロングポジションを閉じる.ショートポジションの逆論理
  4. リスク管理: 取引ごとに制御された損失を確保するために,現在のキャンドル高値/低値でストップロスを設定します.

戦略 の 利点

  1. 明確な取引論理: トレンドとリバーション取引のアプローチを組み合わせて,さまざまな市場条件で良いパフォーマンスを発揮する
  2. 全面的なリスク管理:有効な引き上げ管理のために,キャンドルの変動に基づいて動的ストップロスを実施する
  3. 偽信号フィルタリング: 偽ブレイク損失を減らすため,閉値ではなく,キャンドルボディの位置を使用してブレイクを確認する
  4. 健全なマネーマネジメント: 口座資本,バランスリターン,リスクに基づいてポジションサイズを動的に調整する

戦略リスク

  1. 横向的な市場リスク: 変動する市場で頻繁に誤ったブレイクシグナルを誘発し,連続的なストップを引き起こす可能性があります.
  2. 利息リスク: 3倍の利息は,極端な波動の際に重大な損失を引き起こす可能性があります.
  3. ストップ・ロスの設定リスク:ストップの為のキャンドル・ハイ/ロー・ポイントの使用は,取引毎の損失を増加させるため,あまりにも緩い可能性があります.
  4. タイムフレーム依存性: 4時間のタイムフレームは,特定の市場状況で遅すぎると,機会を逃す可能性があります

戦略の最適化方向

  1. トレンドフィルターを実装する: 主要トレンド方向で取引する長期トレンド指標を追加する
  2. ストップ・ロスのアプローチを最適化する: ストップ・ロスのダイナミックな距離に ATR またはボリンジャー・バンド幅を使用することを検討する.
  3. ポジション管理の強化: 変動やトレンド強度に基づいてレバレッジを動的に調整する
  4. 市場状況分析を追加: 選択的なエントリーのために市場状態を特定するために,ボリュームまたは変動指標を組み込む

概要

この戦略は,トレンドフォローと平均逆転の特徴を組み合わせ,厳格なエントリー/アウトリース条件とリスク管理措置を通じてトレンドとレンジング市場の両方で安定した収益を達成する.その主な強みは明確な取引論理と包括的なリスク管理システムにあるが,戦略の安定性と収益性をさらに向上させるために利用と市場状況判断の最適化に注意を払う必要があります.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-10 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Bollinger 4H Follow", overlay=true, initial_capital=300, commission_type=strategy.commission.percent, commission_value=0.04)
// StartYear = input(2022,"Backtest Start Year") 
// StartMonth = input(1,"Backtest Start Month") 
// StartDay = input(1,"Backtest Start Day")

// testStart = timestamp(StartYear,StartMonth,StartDay,0,0)

// EndYear = input(2023,"Backtest End Year")
// EndMonth = input(12,"Backtest End Month")
// EndDay = input(31,"Backtest End Day")

// testEnd = timestamp(EndYear,EndMonth,EndDay,0,0)

lev = 3

// Input parameters
length = input.int(20, title="Bollinger Band Length")
mult = input.float(2.0, title="Bollinger Band Multiplier")

// Bollinger Bands calculation
basis = ta.sma(close, length)
upperBand = basis + mult * ta.stdev(close, length)
lowerBand = basis - mult * ta.stdev(close, length)

// Conditions for Open Long
openLongCondition = strategy.position_size == 0 and close > open and (close + open) / 2 > upperBand

// Conditions for Open Short
openShortCondition = strategy.position_size == 0 and close < open and (close + open) / 2 < lowerBand

// Conditions for Close Long
closeLongCondition = strategy.position_size > 0 and strategy.position_size > 0 and (close < upperBand and open < upperBand and close < open)

// Conditions for Close Short
closeShortCondition = strategy.position_size < 0 and strategy.position_size < 0 and (close > lowerBand and open > lowerBand and close > open)


// Long entry
if openLongCondition
    strategy.entry("Long", strategy.long, qty=strategy.equity * lev / close)
    strategy.exit("Long SL", from_entry="Long", stop=low)  // Set Stop-Loss

// Short entry
if openShortCondition
    strategy.entry("Short", strategy.short, qty=strategy.equity * lev / close)
    strategy.exit("Short SL", from_entry="Short", stop=high)  // Set Stop-Loss

// Long exit
if closeLongCondition
    strategy.close("Long", comment = "TP")

// Short exit
if closeShortCondition
    strategy.close("Short", comment = "TP")

// Plot Bollinger Bands
plot(upperBand, color=color.yellow, title="Upper Band")
plot(lowerBand, color=color.yellow, title="Lower Band")

関連性

もっと