ダイナミック・ボリンガー・ブレークアウト戦略

作者: リン・ハーンチャオチャン,日付: 2024-01-26 14:52:59
タグ:

img

概要

この戦略は,ボリンジャーバンド指標に基づいたブレークアウト取引戦略です.ボリンジャーバンドの上下レールを計算し,動的に調整可能な購入・売却の値と組み合わせ,BinanceでBTCUSDTの取引を自動化します.

戦略の論理

この戦略のコア指標はボリンジャーバンドです.ボリンジャーバンドは,N日移動平均値と,それ以上の標準偏差レベルと,それ以下の上下帯から構成されています.この戦略のボリンジャーバンドは,長さ20日,標準偏差倍数が2です.価格がボリンジャーバンドの下部レールに近づいたり触れたりすると,過剰販売とみなされ,戦略はロングポジションを開きます.価格が上部レールに近づいたり触れたりすると,過剰購入とみなされ,戦略はロングポジションを閉じる.

この戦略は,ボリンジャーバンド指標に加えて,調整可能な2つのパラメータも導入しています. 購入しきい値と販売しきい値. 購入しきい値は,下の帯を下回る58ポイントに設定され,ロングポジションを開設するためのエントリー条件として機能します. 販売しきい値は,下の帯を下回る470ポイントに設定され,閉じるポジションの終了条件として機能します. これらのしきい値は,実際の市場状況とバックテスト結果に基づいて動的に調整され,戦略をより柔軟にすることができます.

購入条件が満たされると,戦略は口座資本の10%を使用してロングポジションを開く.ロングポジションを開いた後,価格がストップ・ロースレベル (-125%) に達するまでに上昇した場合,ストップ・ロースオーダーによってポジションが閉鎖される.価格が上昇してセールスロージルを引き起こすとき,戦略は利益を得るためにすべてのポジションを閉鎖することを選択する.

利点分析

この戦略の主な利点は以下の通りである.

  1. ボリンジャー帯を使用すると,価格が異常な範囲から逸脱し,逆転から利益を得るときの機会を把握することができます.
  2. 調整可能な買い物・売却の限界を導入することで 入口・出口ポイントを最適化できます
  3. 部分的なポジションサイズを取ることでリスクが制御される
  4. ストップ・ロスの条件を設定することで,さらなる損失を回避できます.
  5. 5分間の間隔でバックテストすることで,短期間の取引機会を間に合って把握できます.

リスク分析

この戦略にはいくつかのリスクもあります:

  1. ボリンジャーバンド自体は100%信頼性がないので,価格が再び落ちる前に,長い時間下がり波動する可能性があります.
  2. 誤った値設定により,最良の入口または出口ポイントが失われる可能性があります.
  3. ストップ損失設定が緩すぎると,時間内にストップ損失を停止できないか,またはあまりにも緊密にストップ損失を敏感すぎる可能性があります.
  4. 誤ったバックテスト期間選択は,安定した収入として時折の利益を取ることができる

対策:

  1. 市場状況を判断し,ボリンジャー帯の誤った信号を避けるためにより多くの指標を組み合わせる
  2. 最適な組み合わせを見つけるために 限界パラメータをテストし最適化します
  3. バランスを見つけるためにストップ損失条件をテストし最適化します
  4. 戦略の安定性を検証するために,より長いバックテスト期間を採用する

オプティマイゼーションの方向性

この戦略は,次の側面においてさらに最適化することができる.

  1. KD,RSIなどの他の指標を組み合わせて 厳格なエントリールールを設定してください
  2. バンド長と標準偏差倍数を最適化するためにボリンジャーバンドパラメータの異なる組み合わせをテストする
  3. 利潤率を向上させるために購入・販売の限界値を最適化
  4. 動的ATRベースのストップロスの比率を採用して市場変動に対応してみましょう.
  5. ポジションのサイズを最適化し,例えば,利益を得るときにピラミッド型ポジションを適切に配置し,単一の損失リスクを制御する.

概要

概要すると,これは全体的にシンプルで実用的なブレイクアウト戦略である.それは逆転機会を特定し,エントリーと出口のためのダイナミックな値を設定するためにボリンジャーバンドを採用する.一方,合理的なポジションサイジングとストップロスの条件はリスクを制御するために利用される.いくつかのキーパラメータを最適化した後,この戦略は比較的安定したリターンをもたらすことができる.それはアルゴリズム取引に適しており,株式ピックリングまたは市場情勢を測定するための補助ツールとしても機能することができます.一般的に言えば,この戦略は強力な実用性および拡張性を持っています.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © SuperDS_BTC

//@version=5
strategy("布林通道策略多5min", overlay=true) 

// 布林通道计算
length = input(20, title="布林通道周期")
mult = input(2.0, title="标准差倍数")
basis = ta.sma(close, length)
dev = mult * ta.stdev(close, length)
upper = basis + dev
lower = basis - dev

// 计算买入数量:每次检查仓位的大小 
// 每次买入使用总资金的10%
position_size = strategy.equity * 10 / close 

// 定義可調整的閾值
buy_threshold = input(58, title="買入閾值")
exit_threshold = input(470, title="賣出閾值")

// 买入条件:当现价低于布林通道的下限减去 buy_threshold
buy_condition = close < lower - buy_threshold

// 卖出条件和结清仓位条件
exit_condition = close > lower + exit_threshold

// 买入逻辑
if buy_condition
    strategy.entry("BuyLong", strategy.long, qty=position_size, comment="LongBTC")

// 卖出逻辑
if exit_condition
    strategy.close("BuyLong")

// 止损逻辑
stop_loss_percent = -1.25 //止损百分比为-125%
if strategy.position_size > 0
    position_profit_percent = (strategy.position_avg_price - close) / strategy.position_avg_price * 100
    if position_profit_percent <= stop_loss_percent
        strategy.close("BuyLong")

もっと