ボリンジャーバンドとフィボナッチ取引戦略


作成日: 2023-09-21 21:04:38 最終変更日: 2023-09-21 21:04:38
コピー: 2 クリック数: 1261
1
フォロー
1617
フォロワー

概要

この戦略はブリン帯指数とフィボナッチ逆戻り指数を融合し,多指数組合せ取引を実現する.これは典型的な組合せ指数戦略のタイプである.戦略はブリン帯を介してトレンドの方向を判断し,フィボナッチ逆戻りは,重要なサポートレジスタンス値を決定し,取引信号を生成する.

戦略原則

この戦略は,以下の2つの指標に基づいて判断されます.

  1. ブリン帯

ブリン帯の上線,中線,下線を計算する. 価格が下線を突破すると多信号,上線を突破すると空信号となる.

  1. フィボナッチは撤退

歴史的な高点と低点に基づいて0%と100%を計算し,2つの重要なフィボナッチ・リトレイの位を計算する.この2つの点は,重要なサポートとレジスタンスとして使用できる.

取引の論理は以下の通りです.

複数のシグナル:価格がブリン帯を横断し,0%のフィボナッチ支持の上位に

空気シグナル:価格がブリン帯を下回り,フィボナッチレジスタンス100%以下

平仓は中軌を参考に,中軌の近くで止まる.

戦略的優位性

  • ブリン・バンドとフィボナッチ・インジケーターの組み合わせ
  • ブルインはトレンドの方向を判断し,フィボナッチは重要なポイントを決定しました.
  • 組み合わせたフィルタリングは誤信号の確率が低い.
  • 中軌道近辺の停止停止損傷,撤退制御が置かれ
  • 入場・退出のルールは明確で操作が簡単です.

戦略リスク

  • 平均線指標は遅滞しやすいため,ベストポイントを逃す可能性があります.
  • 緊急事態に対応するには指標だけでは不十分
  • 双重フィルタリング条件が取引頻度を制限する
  • パラメータの設定を間違えた場合,ブリンバンドとリコール効果に影響する.
  • 異なる品種は,それぞれテストして最適化パラメータ

リスクを下げるには,以下の措置を講じます.

  • パラメータを最適化し,最適なパラメータの組み合わせを特定する
  • K線形など,適正な入場条件の緩和
  • ストップ・ストップ・メカニズムの最適化,例えばストップ・トラッキング
  • 種別テストの最適なパラメータ
  • ポジション管理システムの適切な調整

最適化の方向

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

  1. ブリン帯のパラメータを最適化

軌道上下を計算する最適のパラメータの比率を探します.

  1. ファイポナッチの撤回サイクルを最適化

テスト計算の回帰の異なる周期パラメータ

  1. 入学条件の緩和

ブリン帯突破のK線形状を観察する

  1. ストップダスの最適化

追跡機能の付いた 止損方法を検討する

  1. 種別テスト

異なる品種のパラメータは必ずしも同じではないので,調整する必要があります.

要約する

この戦略は,ブリン帯とフィボナッチの撤回指標を組み合わせて,それぞれの技術的優位性を発揮し,取引信号の質を向上させる.しかし,パラメータの最適化が困難である,入場条件が厳格すぎるなどの問題もあります.我々は,最適化パラメータの設定,適切な入場条件の緩和,停止メカニズムの改善などの方法によって,戦略システムを完善し,技術的優位性を維持しながら,より多くの取引機会を争うことができます.同時に,反省結果に基づいて継続的に調整することは,戦略をより安定させるための鍵でもあります.

ストラテジーソースコード
/*backtest
start: 2023-09-13 00:00:00
end: 2023-09-20 00:00:00
period: 45m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Bollinger Bands & Fibonacci Strategy", shorttitle="BB & Fib Strategy", overlay=true)

// Initialize position variables
var bool long_position = false
var bool short_position = false

// Bollinger Bands settings
length = input.int(20, title="Bollinger Bands Length")
src = input(close, title="Source")
mult = input.float(2.0, title="Standard Deviation Multiplier")

basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)

upper_band = basis + dev
lower_band = basis - dev

// Fibonacci retracement levels
fib_0 = input.float(0.0, title="Fibonacci 0% Level", minval=-100, maxval=100) / 100
fib_100 = input.float(1.0, title="Fibonacci 100% Level", minval=-100, maxval=100) / 100

// Plotting Bollinger Bands
plot(upper_band, color=color.red, title="Upper Bollinger Band")
plot(lower_band, color=color.green, title="Lower Bollinger Band")

// Calculate Fibonacci levels
fib_range = ta.highest(high, 50) - ta.lowest(low, 50)
fib_high = ta.highest(high, 50) - fib_range * fib_0
fib_low = ta.lowest(low, 50) + fib_range * fib_100

// Plot Fibonacci retracement levels
plot(fib_high, color=color.blue, title="Fibonacci High")
plot(fib_low, color=color.orange, title="Fibonacci Low")

// Entry conditions
long_condition = ta.crossover(close, upper_band) and low > fib_low
short_condition = ta.crossunder(close, lower_band) and high < fib_high

// Plot arrows on the chart
plotshape(series=long_condition, title="Long Entry", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=short_condition, title="Short Entry", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)

// Entry and exit logic
if long_condition and not short_position
    strategy.entry("Long", strategy.long)
    long_position := true
    short_position := false

if short_condition and not long_position
    strategy.entry("Short", strategy.short)
    short_position := true
    long_position := false

// Exit conditions (you can customize these)
long_exit_condition = ta.crossunder(close, basis)
short_exit_condition = ta.crossover(close, basis)

if long_exit_condition
    strategy.close("Long")
    long_position := false

if short_exit_condition
    strategy.close("Short")
    short_position := false