
この戦略はブリン帯に基づくトレンド追跡戦略である.これは,ブリン帯を上下トレンドで判断し,買入と売却のシグナルを発信する.具体的には,収束価格の上で軌道に乗ったときに,多めにし,収束価格の下に軌道に乗ったときに,空いてください.
この策略は,ブリン帯の上下軌道を用いてトレンドを判断する.ブリン帯の中央線は,n日の閉店価格の単純移動平均であり,中央線は,正負k倍のn日の閉店価格の標準差である.その公式は以下の通りである.
中線:SMA ((閉店価格,n)
上線: 中線 + k * STDEV ((閉店価格,n)
下線: 中線 - k * STDEV ((閉店価格,n)
価格が上線を突破すると,中線上下波動の範囲を超えたことを示し,現在上昇傾向にあることを示します.価格が下線を突破すると,中線上下波動の範囲を超えたことを示し,現在下降傾向にあることを示します.
この戦略は,以下のように判断します.
ブルイン帯の判定傾向は中長線に対して有効である.
この戦略の主な利点は
ブリン帯は株価の変動性を考慮し,トレンドの転換点を比較的に判断することができる.
戦略的判断のルールはシンプルで明確で,理解しやすく,実行しやすい.
株価を予測する必要はありませんが,株価とブリン帯の関係を追跡するだけで操作が簡単です.
突破した上下軌道から信号を発信し,タイムリーに比較し,トレンドの機会を逃さないようにする.
この戦略にはいくつかのリスクがあります.
ブリン帯は,株価の動きを完全に予測できない.上下軌道突破後,株価の動きは必ずしも継続しない.ある程度の誤信号の確率がある.
株価は上下軌道に近付いて波動し,小規模な損失を繰り返す可能性があります.
パラメータを正しく設定しない場合,誤信号が発生する.例えば,n値が小さすぎると,ブリン帯が変化し,信号が頻発する.k値が大きすぎると,ブリン帯が変化し,信号が遅滞する.
大株の動きは,単一の株に影響を及ぼす可能性があり,システムリスクを完全に回避することは困難である.
対応するリスク管理策は
ブリン帯の感度をバランスするnとk値を適切に調整する.
ストップ・ロスを増やし,単一損失を抑制する.
他の技術指標と組み合わせたフィルター信号.
この戦略は以下の点で最適化できます.
最適化パラメータの設定。異なるn値パラメータが結果に影響を及ぼすことをテストすることができる.また,k値パラメータの動的変化をさせ,株価が大きく変動するときに帯域を拡大することができる。
フィルタリング条件を追加し,MACD,KDJなどの他の指標を使用して,買取り信号をフィルタリングし,誤信号を減らす.
ストップメカニズムを増やし,移動ストップまたは縮小ストップを設定し,損失を制御する.
ブリン帯の幅度に基づいて,現在の株式価格の変動幅の高低を判断して,ポジションを調整することができる. ブリン帯の幅が広がれば波動が大きくなるほど,ポジションを下げる.
トレンド判断指標と組み合わせて,定義された大方向でブリン帯信号を発信する.
この戦略は,全体として,より信頼性の高いトレンド追跡戦略である. ブリン帯の上下線判断価格トレンドを利用し,操作が簡単である.主要優点は,信号が発せられ,トレンドの機会を捕捉することが可能である.しかし,一定誤信号の確率と調節指数最適化の難しさもある.パラメータ最適化,フィルターを増やすなどの方法によってリスクを制御し,戦略の安定性を高めることができる.全体として,この戦略は,トレンド判断の要求が高くなく,高い操作頻度を追求する投資家に適している.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Bollinger Bands Trend Strategy", shorttitle="BB Trend", overlay=true)
source = close
length = input(8, minval=1)
mult = input(1.00, minval=0.001, maxval=50)
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev
buyEntry = crossover(source, upper)
sellEntry = crossunder(source, lower)
if (crossover(source, upper))
strategy.entry("BBandLE", strategy.long, stop=upper, oca_name="BollingerBands", comment="BBandLE")
else
strategy.cancel(id="BBandLE")
if (crossunder(source, lower))
strategy.entry("BBandSE", strategy.short, stop=lower, oca_name="BollingerBands", comment="BBandSE")
else
strategy.cancel(id="BBandSE")
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)