モメンタムブレイクアウトボリンジャーバンドストップロス戦略


作成日: 2023-10-27 16:50:24 最終変更日: 2023-10-27 16:50:24
コピー: 0 クリック数: 640
1
フォロー
1617
フォロワー

モメンタムブレイクアウトボリンジャーバンドストップロス戦略

概要

この戦略は,ブリン帯の指標に基づいて取引信号判断を行い,ストップロストの方法を使用してポジション管理を行う.戦略は,ブリン帯の上線と下線の突破状況を監視し,価格がブリン帯を突破すると多めに行い,下線を突破すると空き出し,逆転突破時にストップロスト平仓を使用する.

戦略原則

この策略はブリン帯の指標の中軌道,上軌道,下軌道線を使用する.中軌道線は,一定の周期における価格の平均値を計算し,上軌道線は中軌道線加算の標準差の2倍,下軌道線は中軌道線減算の標準差の2倍である.

コードはまずブリン帯の中軌道,上軌道,下軌道を計算する.次に,価格が上軌道または下軌道に突破したかどうかを判断する.上軌道に突破した場合は多し,下軌道に突破した場合は空にする.同時に,価格が逆方向に上軌道または下軌道に突破した場合は,止損平準ポジションを使用する.

具体的には,戦略の論理は以下の通りです.

  1. ブリン帯中線,上線,下線を計算する
  2. 価格が上昇すると,買い上げをする.
  3. 価格が下落すると,空白してポジションを開けます.
  4. 複数のポジションがある場合,価格が下落すると,ストップ・ロー・フラットポジションを使用します.
  5. もし空白のポジションがある場合,価格が上位に突破し,ストップ・ロー・フラットポジションを使用します.

このようにして,株価が大きな波動を起こしたときにトレンドを捉えることができ,同時に,ストップ・ローズで損失を制限することもできます.

優位分析

  • ブリン帯の指標を用いて入場タイミングを判断し,価格突破後のトレンド状況を効果的に捉える.
  • 信号は明快で,操作規則はシンプルで明快です.
  • ストップ・ロード・ストラトジーを用いて,単一取引の最大損失を制限します.
  • パラメーターハンドラーは,ブリン帯のパラメータを調整し,戦略を最適化します.

リスク分析

  • ブリン帯取引は,小規模な止損単位の損失を繰り返し発生し,全体的に損失を伴う可能性があります.
  • ブリン帯のパラメータの設定を誤って設定すると,取引頻度が高くなり,信号が間違える可能性があります.
  • 価格のみを考慮し,他の指標と組み合わせずに全体的に判断する
  • 突破点近くのストップラインの調整を考慮せずに,損失を拡大する可能性がある

Combine指標の組み合わせ,適切な調整の止損単位などによって最適化することができる.

最適化の方向

  • 取引量,移動平均などの他の指標と組み合わせて,突破信号の確認を考慮することができます.
  • ブリン帯のパラメータを異なる市場に対応して調整し,パラメータの組み合わせを最適化できます.
  • 突破点に合わせて近距離のストップ距離を調整し,過度に敏感な状態を回避できます.
  • トレンドが形成された後のみ取引する海取引法と組み合わせることを検討する
  • ブリン帯のパラメータを機械学習アルゴリズムで自動最適化できる

要約する

この戦略は,ブリン帯指数に基づいた比較的単純なトレンド追跡戦略を設計しています. それは,価格が突破したときに,迅速にポジションを形成し,同時に,ストップをリスク制御するために使用できます. しかし,価格要因のみを考慮すると,誤判が起こり,過度に敏感なストップは,取引頻度を増やす可能性があります.

ストラテジーソースコード
/*backtest
start: 2023-09-26 00:00:00
end: 2023-10-26 00:00:00
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/
// © ROBO_Trading

//@version=5
strategy(title = "Bollinger Stop Strategy", shorttitle = "BBStop", overlay = true, default_qty_type = strategy.percent_of_equity, initial_capital = 10000, default_qty_value = 100, commission_value = 0.1)

//Settings
long = input(true)
short = input(true)
length = input.int(20, minval=1)
mult = input.float(2.0, minval=0.001, maxval=50)
source = input(close)
showbb = input(true, title = "Show Bollinger Bands")
showof = input(true, title = "Show Offset")
startTime = input(defval = timestamp("01 Jan 2000 00:00 +0000"), title = "Start Time", inline = "time1")
finalTime = input(defval = timestamp("31 Dec 2099 23:59 +0000"), title = "Final Time", inline = "time1")

//Bollinger Bands
basis = ta.sma(source, length)
dev = mult * ta.stdev(source, length)
upper = basis + dev
lower = basis - dev

//Show indicator
offset = showof ? 1 : 0
colorBasis = showbb ? color.gray : na
colorUpper = showbb ? color.blue : na
colorLower = showbb ? color.blue : na
colorBands = showbb ? color.blue : na
p0 = plot(basis, "Basis", color = colorBasis, offset = offset)
p1 = plot(upper, "Upper", color = colorUpper, offset = offset)
p2 = plot(lower, "Lower", color = colorLower, offset = offset)
fill(p1, p2, title = "Background", color = colorBands, transp = 90)

//Trading
truetime = true
if basis > 0 and truetime
    if long
        strategy.entry("Long", strategy.long, stop = upper, when = truetime)
    if short
        strategy.entry("Short", strategy.short, stop = lower, when = truetime)
    if long == false
        strategy.exit("Exit", "Short", stop = upper)
    if short == false
        strategy.exit("Exit", "Long", stop = lower)
if time > finalTime
    strategy.close_all()