高度な時間枠フィボナッチリトレースメントと高低条件付きブレイクアウト取引システム

HTF FIBO HL MA BB RSI
作成日: 2024-11-28 15:01:25 最終変更日: 2024-11-28 15:01:25
コピー: 0 クリック数: 456
1
フォロー
1617
フォロワー

高度な時間枠フィボナッチリトレースメントと高低条件付きブレイクアウト取引システム

概要

この戦略は,複数の技術分析ツールを組み合わせた高度な取引システムで,主に高時間枠のフィボナッチ逆戻りレベルと価格の高低点の突破条件に基づいて取引シグナルを生成する.戦略は,より高い時間枠の価格データを動的に計算して,フィボナッチ逆戻りレベルとカスタマイズされた価格突破条件を組み合わせて,完全な取引意思決定システムを形成する.この方法は,市場の全体的な傾向を考慮するとともに,短期間の価格突破を重視し,市場の転換点で潜在的な取引機会を捉えることができる.

戦略原則

戦略の核心的な論理は,3つの主要な支柱の上に構築されています:第一は,より高い時間枠の価格分析であり,日線などのより高い時間周期の開値低収価格を計算することによって,よりマクロな市場視点を構築します.次に,フィボナッチ逆転レベルのダイナミック計算であり,高い時間枠の価格区間に基づいて重要なサポートのレジスタンス値を設定します.最後に,価格の突破を判断し,逆転期間の最高価格と最低価格を突破の参照として設定します.

戦略的優位性

  1. 多次元分析:価格行動,トレンド追跡,サポートレジスタンスを含む技術分析の最も認められたいくつかの要素を組み合わせる.
  2. 適応性:時間周期,回帰期,フィボナッチレベルを含む異なる市場条件に応じてパラメータを調整できます.
  3. リスク管理の改善:複数の確認メカニズムによって偽突破のリスクを低減する.
  4. 高可視化:すべての主要価格がグラフに明確に表示され,取引の意思決定を容易にします.
  5. 柔軟性:様々な種類の取引や時間周期に適用できます.

戦略リスク

  1. 参数感度:異なる回帰期設定により,信号品質の大きな差が生じることがあります.
  2. 市場の状況に依存: 波動的な市場では偽信号が過剰に発生する可能性があります.
  3. 遅滞のリスク:遡るデータを使用したため,急速な市場での最適なエントリーポイントを逃す可能性があります.
  4. 過剰最適化のリスク:パラメータを過度に最適化すると,将来的に不良なパフォーマンスを引き起こす可能性があります.

戦略最適化の方向性

  1. 波動率のフィルタを増やす:低波動期をフィルタリングするためにATRまたはボリンジャー帯域などの指標を追加することをお勧めします.
  2. 整合トレンドフィルター: 整合トレンド方向を確認するために均線システムに追加できます.
  3. エントリータイムを最適化:RSIなどの動能指標を組み合わせてエントリータイムを最適化できる.
  4. 動的パラメータ調整:自適應メカニズムを導入し,市場の状況に応じてパラメータを自動的に調整する.
  5. リスクコントロールの強化:ダイナミックなストップ・ロスと利益目標の設定を追加する.

要約する

これは,いくつかのクラシックな技術分析ツールを組み合わせて,理論的な基礎と実用的な取引戦略を組み合わせた精巧に設計された取引システムである.この戦略の最大の特徴は,多次元分析によってより信頼性の高い取引信号を提供でき,異なる市場環境に適応するのに十分な柔軟性を保つことです.いくつかの固有のリスクがあるものの,推奨された最適化の方向によって,戦略の安定性と信頼性をさらに向上させることができます.

ストラテジーソースコード
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Fibonacci Levels Strategy with High/Low Criteria", overlay = true)

// Kullanıcıdan yüksek zaman dilimini ve mum bilgilerini al
timeframe = input.timeframe(defval = "D", title = "Higher Time Frame")
currentlast = input.string(defval = "Last", title = "Current or Last HTF Candle", options = ["Current", "Last"])

// Kullanıcıdan en düşük ve en yüksek fiyat bakış sürelerini al
lowestLookback = input(20, "Lowest Price Lookback", tooltip="The strategy will BUY when the price crosses over the lowest it has been in the last X amount of bars")
highestLookback = input(10, "Highest Price Lookback", tooltip="If Take-Profit is not checked, the strategy will SELL when the price crosses under the highest it has been in the last X amount of bars")

// Fibonacci seviyeleri ayarları
level0 = input.float(defval = 0.000, title = "Level 0")
level1 = input.float(defval = 0.236, title = "Level 1")
level2 = input.float(defval = 0.382, title = "Level 2")
level3 = input.float(defval = 0.500, title = "Level 3")
level4 = input.float(defval = 0.618, title = "Level 4")
level5 = input.float(defval = 0.786, title = "Level 5")
level100 = input.float(defval = 1.000, title = "Level 100")

// HTF mumlarını hesapla
newbar = ta.change(time(timeframe)) != 0 
var float htfhigh = high
var float htflow = low
var float htfopen = open
float htfclose = close
var counter = 0

if newbar
    htfhigh := high
    htflow := low
    htfopen := open
    counter := 0
else
    htfhigh := math.max(htfhigh, high)
    htflow := math.min(htflow, low)
    counter += 1

var float open_ = na
var float high_ = na
var float low_ = na
var float close_ = na
if currentlast == "Last" and newbar
    open_ := htfopen[1]
    high_ := htfhigh[1]
    low_ := htflow[1]
    close_ := htfclose[1]
else if currentlast == "Current"
    open_ := htfopen
    high_ := htfhigh
    low_ := htflow
    close_ := htfclose

// Fibonacci seviyelerini hesapla
var float[] fibLevels = array.new_float(6)
array.set(fibLevels, 0, open_ + (high_ - low_) * level0)
array.set(fibLevels, 1, open_ + (high_ - low_) * level1)
array.set(fibLevels, 2, open_ + (high_ - low_) * level2)
array.set(fibLevels, 3, open_ + (high_ - low_) * level3)
array.set(fibLevels, 4, open_ + (high_ - low_) * level4)
array.set(fibLevels, 5, open_ + (high_ - low_) * level5)

// Fibonacci seviyelerini grafik üzerine çiz
plot(array.get(fibLevels, 0), color=color.new(color.blue, 75), title="Fibonacci Level 0")
plot(array.get(fibLevels, 1), color=color.new(color.green, 75), title="Fibonacci Level 1")
plot(array.get(fibLevels, 2), color=color.new(color.red, 75), title="Fibonacci Level 2")
plot(array.get(fibLevels, 3), color=color.new(color.orange, 75), title="Fibonacci Level 3")
plot(array.get(fibLevels, 4), color=color.new(color.teal, 75), title="Fibonacci Level 4")
plot(array.get(fibLevels, 5), color=color.new(color.navy, 75), title="Fibonacci Level 5")

// En düşük ve en yüksek fiyat kriterlerini hesapla
lowcriteria = ta.lowest(low, lowestLookback)[1]
highcriteria = ta.highest(high, highestLookback)[1]

plot(highcriteria, color=color.green, title="Highest Price Criteria")
plot(lowcriteria, color=color.red, title="Lowest Price Criteria")

// Fibonacci seviyeleri ile ticaret sinyalleri oluştur
longCondition = close > lowcriteria and close > array.get(fibLevels, 3) // En düşük kriterin ve Fibonacci seviyesinin üstüne çıkarsa alım
shortCondition = close < highcriteria and close < array.get(fibLevels, 3) // En yüksek kriterin ve Fibonacci seviyesinin altına düşerse satış

if (longCondition)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.entry("Short", strategy.short)