ボリンジャーバンドに基づくインテリジェントな追跡取引戦略


作成日: 2024-01-17 14:05:36 最終変更日: 2024-01-17 14:05:36
コピー: 1 クリック数: 590
1
フォロー
1617
フォロワー

ボリンジャーバンドに基づくインテリジェントな追跡取引戦略

概要

この戦略はブリン帯の指標設計に基づいており,価格がブリン帯を突破すると空白し,下線を突破すると多空し,取引をスマートに追跡する.

戦略原則

この戦略は,ブリン帯の中線,上線,下線をベースとする指標を使用する.中線は,n日の閉店価格の移動平均であり,上線は中線上偏移の2標準差であり,下線は中線下偏移の2標準差である.価格が下線順序から穿越するとき,多行する.価格が上線順序から穿越したとき,空にする.このようにして,市場の波動性に基づいて価格をスマートに追跡することができる.

具体的には,戦略は主に2つの指標によって判断されます.

  1. ta.crossover ((source, lower): 閉盤価格でトレイルを突破し,多額の投資を行う

  2. ta.crossunder ((source, upper): 閉盤価格の下から軌道に乗って空白

ポジションをクリアする条件をトリガーすると,strategy.cancel () 関数を使用して,現在のポジションをクリアします.

戦略的優位分析

この戦略の利点は以下の通りです.

  1. ブリン帯の指標をベースに設計され,市場の変動を捉え,価格の動きを効果的に追跡します.
  2. 規則は明確でシンプルで,理解しやすい.
  3. 周期長,標準差倍数などのカスタマイズ可能なパラメータ,適応性強
  4. モバイル・ストップ,固定・ストップ,モバイル・ストップなどの最適化策の効果を構成できます.

戦略的リスク分析

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

  1. ブリン帯の突破は偽突破になり,偽信号を発生させる可能性があります.
  2. 効果はパラメータによる最適化であり,パラメータの不適切な選択は収益性を損なう可能性があります.
  3. ストップ・ロスの追跡が困難で,単一損失を効果的に制御できない

対応方法:

  1. 偽突破を防ぐために,他の指標と組み合わせたフィルター信号
  2. パラメータテストを行い,最適なパラメータの組み合わせを選択します.
  3. モバイルストップまたはトレンドトラッキングストップクリップを追加

戦略最適化の方向性

この戦略はさらに改善できます.

  1. 他の指標と組み合わせてトレンドの方向を判断し,ブリン帯戦略に適さない市場を避ける
  2. 異なる周期パラメータの効果をテストし,最適な周期を見つける
  3. 移動式ストップまたはトレンドトラッキングストップメカニズムを組み込み,単一損失を効果的に制御する

要約する

この戦略は,ブリン帯指標の設計に基づいて,価格の突破上下軌道による自動追跡を実現する.戦略は,単純で分かりやすい,市場の変動に敏感であり,パラメータ最適化とストップダストによる効果をさらに最適化することができる.全体的に,この戦略は,波動性の高い株式指数または商品市場に適用される.トレーダーは,自分の取引の好みに応じて,適切な品種とパラメータを選択し,反測最適化を行い,そこからastikaの取引戦略を得ることができる.

ストラテジーソースコード
/*backtest
start: 2023-12-17 00:00:00
end: 2024-01-16 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Bollinger Bands Strategy with alerts (incl. pending orders) via TradingConnector to Forex", overlay=true)
source = close
length = input.int(20, minval=1)
mult = input.float(2.0, minval=0.001, maxval=50)
basis = ta.sma(source, length)
dev = mult * ta.stdev(source, length)
upper = basis + dev
lower = basis - dev
buyEntry = ta.crossover(source, lower)
sellEntry = ta.crossunder(source, upper)
if (ta.crossover(source, lower))
	strategy.entry("BBandLE", strategy.long, stop=lower, oca_name="BollingerBands", comment="BBandLE")
    alert(message='long price='+str.tostring(lower), freq=alert.freq_once_per_bar_close)
else
	strategy.cancel(id="BBandLE")
    alert(message='cancel long', freq=alert.freq_once_per_bar_close)
if (ta.crossunder(source, upper))
	strategy.entry("BBandSE", strategy.short, stop=upper, oca_name="BollingerBands", comment="BBandSE")
    alert(message='short price='+str.tostring(upper), freq=alert.freq_once_per_bar_close)
else
	strategy.cancel(id="BBandSE")
    alert(message='cancel short', freq=alert.freq_once_per_bar_close)
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)

//Lines of code added to the original built-in script: 14, 17, 20 and 23 only.
//They trigger alerts ready to be executed on real markets through TradingConnector
//available for Forex, indices, crypto, stocks - anything your broker offers for trading via MetaTrader4/5