ボリンジャーバンドに基づく価格アクション戦略


作成日: 2023-12-20 14:03:52 最終変更日: 2023-12-20 14:03:52
コピー: 1 クリック数: 624
1
フォロー
1621
フォロワー

ボリンジャーバンドに基づく価格アクション戦略

概要

この戦略の名前は,ブリン帯に基づく価格行動戦略である.これは,価格行動分析とブリン帯指標を統合し,複合条件判断を使用して取引信号を生成する.

戦略原則

この戦略は,まずブリン帯の上下軌を計算し,次に最後のK線がブリン帯の下軌を突破したかどうかを判断する.同時に,最後のK線の実体が前回のK線実体の半分しかないかどうかを判断する.この2つの条件が満たされると,取引信号を発する.

具体的には,下行情勢において赤のK線実体が減少し,前回のK線実体のうちの半分にしか達せず,最後のK線閉盘価格がブリン帯を突破して下落した状態を多信号として利用する.逆に,上行情において緑のK線実体が減少し,前回のK線実体のうちの半分にしか達せず,そして最後のK線閉盘価格がブリン帯を突破して上空信号として利用する.

優位分析

この戦略は,技術指標と価格行動の判断を組み合わせて,偽突破を効果的にフィルターします. 同時に,トレンドの逆転点のみでシグナルを発信し,トレンドの中で繰り返し取引を避ける. さらに,戦略は,K線実体が小さくなる特性を利用して,微細な調整後にトレンドの逆転点の位置をロックすることができます. これらの利点は,戦略の安定性と率を向上させることができます.

リスク分析

この戦略の主なリスクは,ブリン帯のパラメータが正しく設定されず,突破が失敗することにある.ブリン帯のパラメータがあまりにも大きく,または小さすぎると,誤判が起こる.さらに,価格がブリン帯を突破して下線したとしても,偽の突破であり,真のトレンド反転を形成することができない.これらのリスクは,戦略の取引損失を引き起こす可能性がある.これらのリスクを減らすために,ブリン帯のパラメータを適切に調整したり,または他の指標を組み合わせ検証のために追加したりすることができます.

最適化の方向

この戦略は以下の点で最適化できます.

  1. ブリン帯のパラメータを最適化して,トレンドと波動をより効果的に捉える.

  2. 利潤を固定し,リスクを管理するために移動止損を増やします.

  3. MACD,RSIなどの他の指標と組み合わせて検証し,偽信号をフィルターします.

  4. 戦略パラメータと指標重力の動態を最適化するために,機械学習アルゴリズムを追加し,ビッグデータ訓練モデルを利用する.

要約する

この戦略は,価格行動とブリン帯の指標を組み合わせて,低リスクの状況で高い利益率を得ることに成功している.これは,ノイズによる干渉を避けるために,重要な点点のみで信号を発信している.この戦略は,パラメータとフィルタリング条件を継続的に最適化することによって,より安定した余剰利益を得ることを期待している.これは,量化取引の実践のための信頼できるテンプレートを提供します.

ストラテジーソースコード
/*backtest
start: 2022-12-13 00:00:00
end: 2023-12-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// main codebody taken from Trader Noro - Noro's Crypto Pattern for H1
// Intraday strategy- Exit at EOD at all cost

strategy(title = "Price Action + Bollinger Strategy ",overlay=true)
bar = close > open ? 1 : close < open ? -1 : 0
body = abs(close - open)
avgbody = sma(body, 100)

//calculate simple moving average bollinger bands
b_sma = input(21,minval=1,title=" SMA candle")
b_sma_no_of_deviations = 2.1
b_sma_signal = sma(close, b_sma)
b_sma_deviation = b_sma_no_of_deviations * stdev(close, b_sma)
b_sma_upper= b_sma_signal + b_sma_deviation
b_sma_lower= b_sma_signal - b_sma_deviation

up1 = body < body[1] / 2 and bar[1]==1 and bar == -1 and close[1] > b_sma_upper   
dn1 = body < body[1] / 2 and bar[1]==-1 and bar == 1 and close[1] < b_sma_lower  
up2 = false
dn2 = false
up2 := (up1[1] or up2[1]) and close < close[1]
dn2 := (dn1[1] or dn2[1]) and close > close[1]
plotarrow(up1 or up2 ? 1 : na, colorup = color.black, colordown = color.black, transp = 0)
plotarrow(dn1 or dn2 ? -1 : na, colorup = color.black, colordown = color.black, transp = 0)

strategy.entry("Buy", true, when = dn1)
strategy.exit("exit", "Buy", profit = 3, loss = 1.5)

strategy.entry("Short", false, when = up1)
strategy.exit("exit", "Short", profit = 3, loss = 1.5)