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

作者: リン・ハーンチャオチャン開催日:2023年12月20日14時03分52秒
タグ:

img

概要

この戦略の名称は"ボリンジャーバンドベースの価格アクション戦略"です.これは,複合条件判断に基づいて取引信号を生成するために価格アクション分析とボリンジャーバンドを統合します.

戦略原則

この戦略は,まずボリンジャーバンドの上下線を計算し,次に最後のK線が上下線を突破するかどうかを判断する.同時に,最後のK線のエンティティが前のKラインのエンティティの半分に過ぎないかどうかを判断する.両方の条件が満たされると,取引信号が発行される.

具体的には,この戦略は,赤い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)



もっと