Fibonacci Channel-Based Candlestick Reversal Trading Strategy (Strategi perdagangan pembalikan candlestick berdasarkan saluran Fibonacci)

Penulis:ChaoZhang, Tanggal: 2023-11-21 17:24:17
Tag:

img

Gambaran umum

Strategi ini menghitung saluran ekspansi Fibonacci berdasarkan rata-rata bergerak untuk mengidentifikasi area kunci dukungan dan resistensi dan membantu pedagang mengantisipasi titik pembalikan potensial di pasar.

Logika Strategi

Inti dari strategi ini adalah menghitung tiga saluran Keltner berdasarkan rata-rata bergerak, yang membantu menentukan batas atas dan bawah saluran Fibonacci.

Ketika menganalisis aksi harga, pedagang dapat fokus pada Band Fibonacci ekstrem, yang merupakan batas atas dan bawah band. Jika harga diperdagangkan di luar band selama beberapa bar dan kemudian kembali ke dalam, itu mungkin menunjukkan pembalikan potensial. Pola ini menunjukkan bahwa harga telah menyimpang sementara dari kisaran biasa dan mungkin karena koreksi.

Untuk meningkatkan keakuratan indikator Fibonacci Bands, pedagang sering menggunakan beberapa kerangka waktu. Dengan menyelaraskan sinyal jangka pendek dengan skenario kerangka waktu yang lebih besar, pedagang dapat mendapatkan pemahaman yang lebih baik tentang tren pasar secara keseluruhan.

Selain mengidentifikasi potensi pembalikan, pedagang juga dapat menggunakan indikator Fibonacci Bands untuk menentukan titik masuk dan keluar.

Analisis Keuntungan

Keuntungan utama dari strategi ini adalah:

  1. Mampu mengidentifikasi area kunci dukungan dan resistensi untuk membantu memprediksi titik pembalikan harga.

  2. Meningkatkan akurasi sinyal perdagangan ketika dikombinasikan dengan analisis multi-frame waktu.

  3. Dapat dengan jelas mengidentifikasi titik masuk dan keluar.

  4. Dapat mengukur kekuatan dan arah tren pasar dengan menganalisis kemiringan garis tengah.

  5. Menggunakan rasio alami berdasarkan teori Fibonacci untuk mengidentifikasi tingkat harga kunci.

Analisis Risiko

Risiko utama dari strategi ini adalah:

  1. Seperti semua indikator analisis teknis, strategi tidak dapat memprediksi aksi harga dan pembalikan dengan akurasi 100%.

  2. Pengaturan tingkat ekstensi Fibonacci yang salah atau subjektif dan parameter Saluran Keltner dapat mempengaruhi keandalan sinyal.

  3. Harga dapat menembus pita Fibonacci dan terus berjalan, mengakibatkan kerugian.

  4. Analisis multi-frame waktu mungkin tidak selalu berlaku.

  5. Sinyal mungkin kurang dapat diandalkan di pasar dengan volatilitas tinggi atau likuiditas rendah.

Untuk mengurangi risiko ini, validasi sinyal dengan indikator lain seperti RSI, sesuaikan parameter agar sesuai dengan kondisi pasar yang berbeda, gunakan stop loss untuk mengendalikan risiko per perdagangan.

Arahan Optimasi

Strategi ini dapat dioptimalkan dengan beberapa cara:

  1. Uji berbagai jenis dan panjang parameter untuk mengoptimalkan rata-rata bergerak dan Saluran Keltner untuk lebih sesuai dengan sifat statistik dari berbagai pasar.

  2. Uji area kunci Fibonacci lainnya seperti 0,5 atau 0,786 sebagai zona ekstensi untuk Band Fibonacci.

  3. Menggabungkan sinyal masuk dengan pola harga, volume atau indikator lainnya untuk konfirmasi.

  4. Mengoptimalkan strategi stop loss untuk keluar lebih awal ketika tren berbalik.

  5. Backtest optimasi aturan masuk dan keluar.

Kesimpulan

Singkatnya, strategi berbasis saluran Fibonacci untuk mengidentifikasi area pendukung / resistensi utama untuk perdagangan pembalikan lilin adalah pendekatan yang efektif untuk memanfaatkan prinsip rasio alami untuk memandu keputusan perdagangan. Strategi ini telah menunjukkan kinerja yang kuat di berbagai kondisi pasar. Peningkatan lebih lanjut dalam penyesuaian parameter dan pengendalian risiko dapat meningkatkan daya tahannya. Secara keseluruhan, ini memberikan pedagang alat yang efisien untuk mengidentifikasi peluang perdagangan di pasar yang kompleks dan dinamis.


/*backtest
start: 2023-10-21 00:00:00
end: 2023-11-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

    // ____  __    ___   ________ ___________  ___________ __  ____ ___ 
   // / __ )/ /   /   | / ____/ //_/ ____/   |/_  __<  / // / / __ |__ \
  // / __  / /   / /| |/ /   / ,< / /   / /| | / /  / / // /_/ / / __/ /
 // / /_/ / /___/ ___ / /___/ /| / /___/ ___ |/ /  / /__  __/ /_/ / __/ 
// /_____/_____/_/  |_\____/_/ |_\____/_/  |_/_/  /_/  /_/  \____/____/                                              

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © blackcat1402
//@version=5
strategy('[blackcat] L2 Fibonacci Bands', overlay=true)

// Define the moving average type and length
maType = input.string(title='MA Type', defval='WMA', options=['SMA', 'EMA', 'WMA', 'HMA'])
maLength = input.int(title='MA Length', defval=233, minval=1)
src = input(title='Data Source', defval=hl2)

// Define the Fibonacci expansion levels
fib1 = input.float(title='Fibonacci Level 1', defval=1.618, minval=0)
fib2 = input.float(title='Fibonacci Level 2', defval=2.618, minval=0)
fib3 = input.float(title='Fibonacci Level 3', defval=4.236, minval=0)

// Calculate the moving average
ma = maType == 'SMA' ? ta.sma(src, maLength) : maType == 'EMA' ? ta.ema(src, maLength) : maType == 'WMA' ? ta.wma(src, maLength) : maType == 'HMA' ? ta.hma(src, maLength) : na

// Calculate the Keltner Channels
kcMultiplier = input.int(title='Keltner Channel Multiplier', defval=2, minval=0)
kcLength = input.int(title='Keltner Channel Length', defval=89, minval=1)
kcTrueRange = ta.tr
kcAverageTrueRange = ta.sma(kcTrueRange, kcLength)
kcUpper = ma + kcMultiplier * kcAverageTrueRange
kcLower = ma - kcMultiplier * kcAverageTrueRange

// Calculate the Fibonacci Bands
fbUpper1 = ma + fib1 * (kcUpper - ma)
fbUpper2 = ma + fib2 * (kcUpper - ma)
fbUpper3 = ma + fib3 * (kcUpper - ma)
fbLower1 = ma - fib1 * (ma - kcLower)
fbLower2 = ma - fib2 * (ma - kcLower)
fbLower3 = ma - fib3 * (ma - kcLower)

// Plot the Fibonacci Bands
plot(ma, title='Midband', color=color.new(color.blue, 0), linewidth=2)
plot(fbUpper1, title='Upper Band 1', color=color.new(color.green, 0), linewidth=1)
plot(fbUpper2, title='Upper Band 2', color=color.new(color.green, 0), linewidth=1)
plot(fbUpper3, title='Upper Band 3', color=color.new(color.green, 0), linewidth=1)
plot(fbLower1, title='Lower Band 1', color=color.new(color.red, 0), linewidth=1)
plot(fbLower2, title='Lower Band 2', color=color.new(color.red, 0), linewidth=1)
plot(fbLower3, title='Lower Band 3', color=color.new(color.red, 0), linewidth=1)

// Define the entry and exit conditions
longCondition = ta.crossover(src, fbUpper3) and ta.rsi(src, 14) > 60
shortCondition = ta.crossunder(src, fbLower3) and ta.rsi(src, 14) < 40
exitCondition = ta.crossover(src, ma) or ta.crossunder(src, ma)

// Execute the trades
if longCondition
    strategy.entry('Long', strategy.long)
if shortCondition
    strategy.entry('Short', strategy.short)
if exitCondition
    strategy.close_all()



Lebih banyak