ボリンジャーバンドとフィボナッチリトレースメント比率に基づく取引戦略


作成日: 2023-09-27 16:52:05 最終変更日: 2023-09-27 16:52:05
コピー: 0 クリック数: 1125
1
フォロー
1617
フォロワー

概要

この戦略は,ブリン帯を利用して価格チャネルを決定し,フィボナッチ・リトラクション比と組み合わせて,サポートレジスタンス値を判断し,取引を自動化します.戦略は,ブリン帯の突破を認識し,リトラクションポイントを追跡し,高確率のリトラクション領域で買入または販売操作を行います.

戦略原則

  1. ブリン帯の中線,上線,下線を計算する

    • SMAとATRを使用して中軌,上軌,下軌を計算する

    • ブリン・ベルト・チャネルは市場変動に合わせて拡大・縮小する

  2. フィボナッチ・リトラクションを計算する

    • ATRとフィボナッチ数列の比率の倍数を取って,引き戻し比率として

    • 中軌道から複数のフィボナッチ回帰位を計算する

  3. 監視価格がブリン帯を突破して上下する

    • 価格が上昇する際には,

    • 価格が下落すると空白を考慮する

  4. フィボナッチの撤退点の近くにエントリーとストロップ・ストップを設定

    • 価格がフィボナッチの撤回区に戻った

    • 撤回区の反対側にストップ・ストップを設定します.

優位分析

  • ブリン帯は市場変動の範囲とトレンドを明確に識別する

  • フィボナッチの撤退は,抵抗の鍵となる支持領域を握るよりもはるかに重要だ.

  • 指数信号と組み合わせた自動取引が可能

  • 復帰は成功率を上げ,失敗を回避する

  • パラメータを調整して異なる周期と品種に適応できる

リスク分析

  • ブリン帯の突破は偽突破であり,誤った信号を生成する可能性がある

  • 価格がフィボナ・ピッチにいつ戻るかは予測できません.

  • ストップポイントの不適切な選択は損失を拡大する可能性があります.

  • 戦略の効果に影響を与えるのは, 調整幅が大きすぎても小さすぎてもです.

  • パラメータが不合理または市場が継続的な方向性を持つ場合,戦略は失敗する.

  • ブリン帯の判定論理を最適化し,量能指標,動的調整撤回区等を考慮する.

最適化の方向

  • ブリン帯のパラメータを最適化して,トレンドとサポートレジスタンスに関する判断を向上させる

  • 突破信号の有効性を判断する指標

  • 機械学習の補助により,リコール確率を判断する

  • 取引信号を検証する技術指標

  • 品種特性と取引時期に応じて合理的なパラメータを選択

  • 撤回区域の強度が変化する波動性に対応する

要約する

この戦略は,ブリン帯とフィボナッチ逆転比の指標の優位性を統合し,トレンド方向を識別し,高確率の逆転点を入れます.パラメータ最適化,検証指標の追加,逆転区画の動的調整などによって,リスク向上効果を軽減できます.戦略のスペースは,量子エネルギー指標,機械学習などの向上効果を加えるなど,拡張可能であり,継続的な最適化の中で成熟しています.

ストラテジーソースコード
/*backtest
start: 2023-08-27 00:00:00
end: 2023-09-26 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(shorttitle="BBands Fibo", title="Bollinger Bands Fibonacci Ratios", overlay=true)

length      =   input(20, minval=1, type=input.integer, title="Length")
src         =   input(close, title="Source")
offset      =   input(0, "Offset", type = input.integer, minval = -500, maxval = 500)
fibo1       =   input(defval=1.618, title="Fibonacci Ratio 1")
fibo2       =   input(defval=2.618, title="Fibonacci Ratio 2")
fibo3       =   input(defval=4.236, title="Fibonacci Ratio 3")

fiboBuyReverse = input(false, title = "Use Reverse Buy?")
fiboBuy       =   input(options = ["Fibo 1", "Fibo 2", "Fibo 3"],defval = "Fibo 1", title="Fibonacci Buy")
fiboSellReverse = input(false, title = "Use Reverse Sell?")
fiboSell       =   input(options = ["Fibo 1", "Fibo 2", "Fibo 3"],defval = "Fibo 1", title="Fibonacci Sell")

sma = sma(src, length)
atr = atr(length)

ratio1 = atr * fibo1
ratio2 = atr * fibo2
ratio3 = atr * fibo3

upper3 = sma + ratio3
upper2 = sma + ratio2
upper1 = sma + ratio1

lower1 = sma - ratio1
lower2 = sma - ratio2
lower3 = sma - ratio3

plot(sma, style=0, title="Basis", color=color.orange, linewidth=2, offset = offset)

upp3 = plot(upper3, transp=90, title="Upper 3", color=color.teal, offset = offset)
upp2 = plot(upper2, transp=60, title="Upper 2", color=color.teal, offset = offset)
upp1 = plot(upper1, transp=30, title="Upper 1", color=color.teal, offset = offset)

low1 = plot(lower1, transp=30, title="Lower 1", color=color.teal, offset = offset)
low2 = plot(lower2, transp=60, title="Lower 2", color=color.teal, offset = offset)
low3 = plot(lower3, transp=90, title="Lower 3", color=color.teal, offset = offset)

fill(upp3, low3, title = "Background", color=color.new(color.teal, 95))

targetBuy = fiboBuy == "Fibo 1" ? upper1 : fiboBuy == "Fibo 2" ? upper2 : upper3
targetBuy := fiboBuyReverse == false ? targetBuy : fiboBuy == "Fibo 1" ? lower1 : fiboBuy == "Fibo 2" ? lower2 : lower3
buy = low < targetBuy and high > targetBuy

targetSell = fiboSell == "Fibo 1" ? lower1 : fiboSell == "Fibo 2" ? lower2 : lower3
targetSell := fiboSellReverse == false ? targetSell : fiboSell == "Fibo 1" ? upper1 : fiboSell == "Fibo 2" ? upper2 : upper3
sell = low < targetSell and high > targetSell

strategy.entry("Buy", true, when = buy)
strategy.entry("Sell", false, when = sell)