Lilin Rata-rata Fibonacci dengan Strategi Rata-rata Bergerak untuk Perdagangan Kuantitatif

Penulis:ChaoZhang, Tanggal: 2024-01-19 14:36:45
Tag:

img

Gambaran umum

Strategi ini membangun rata-rata lilin dan rata-rata bergerak berdasarkan urutan Fibonacci untuk menerapkan perdagangan kuantitatif dengan hanya posisi panjang dan tidak ada posisi pendek.

Prinsip Strategi

Langkah-langkah utama dari strategi ini adalah:

  1. Hitung rata-rata harga tutup, tinggi, rendah dan terbuka dari 10 siklus Fibonacci terbaru untuk membangun lilin rata-rata.

  2. Menghitung 1-, 2-, 3-, 5-, 8-, 13-, 21-, 34- dan 55-periode eksponensial bergerak rata-rata (EMA) dari rata-rata harga penutupan, dan mengambil rata-rata mereka untuk mendapatkan rata-rata EMA.

  3. Tetapkan kondisi panjang dan dekat: buka posisi panjang ketika rata-rata lilin menunjukkan pola bullish (seperti penutupan di atas terbuka, bullish engulfing) dan tutup di atas rata-rata EMA; tutup posisi panjang ketika rata-rata lilin menunjukkan pola bearish (seperti penutupan di bawah terbuka, bearish engulfing) dan tutup di bawah rata-rata EMA.

Dengan menghitung rata-rata lilin untuk menyaring fluktuasi harga dan menggabungkan dengan indikator rata-rata bergerak untuk menghasilkan sinyal perdagangan, strategi ini dapat secara efektif mengidentifikasi tren dan mengendalikan risiko perdagangan.

Keuntungan

  1. Lilin rata-rata berdasarkan urutan Fibonacci dapat menyaring kebisingan harga acak secara efektif dan mengidentifikasi sinyal tren.

  2. Rata-rata beberapa EMA meningkatkan stabilitas level support/resistance dan meningkatkan kualitas sinyal.

  3. Hanya posisi panjang mengurangi jumlah perdagangan, mengurangi biaya perdagangan dan dampak slippage.

  4. Berkinerja baik pada kerangka waktu yang lebih besar, cocok untuk perdagangan jangka menengah hingga panjang.

Risiko

  1. Strategi hanya panjang dapat menimbulkan kerugian yang signifikan di pasar bearish.

  2. Garis EMA cenderung tertinggal, berpotensi kehilangan titik masuk terbaik.

  3. Terlalu mengejar jangka waktu yang panjang dapat membuat Anda kehilangan kesempatan dalam jangka waktu yang lebih pendek.

  4. Ruang pengoptimalan parameter yang terbatas berarti kinerja perdagangan nyata mungkin kurang baik dari hasil backtest.

Bidang Peningkatan

  1. Dapat menguji menambahkan stop loss yang tepat ke posisi keluar ketika kerugian meningkat.

  2. Dapat menggabungkan ukuran volatilitas seperti ATR untuk menyesuaikan ukuran posisi secara dinamis.

  3. Dapat menguji mengambil posisi pendek dengan tepat selama downtrends untuk meningkatkan keuntungan.

  4. Dapat mengoptimalkan parameter periode EMA untuk menemukan kombinasi terbaik.

Kesimpulan

Strategi ini mengidentifikasi sinyal tren untuk perdagangan kuantitatif dengan membangun lilin rata-rata Fibonacci dan indikator rata-rata bergerak. Ini mengambil keuntungan dari penyaringan kebisingan harga dengan lilin rata-rata dan mengurangi biaya perdagangan hanya dengan pergi panjang. Ini juga memiliki risiko pasar bearish untuk posisi hanya panjang dan masalah EMA yang tertinggal. Secara keseluruhan, strategi ini mengendalikan risiko perdagangan dari berbagai aspek dan berkinerja baik pada kerangka waktu yang lebih besar, cocok untuk perdagangan jangka menengah hingga panjang. Optimasi lebih lanjut dapat meningkatkan ketahanan dan profitabilitas.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
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/
// © SoftKill21

//@version=4
strategy("Fibonacci candle", overlay=false  )


//plot of our fibonacci candle
// Fibonacci 
// Fn = Fn-1 + Fn-2
// F10 = 55
// 0 1 2 3 5 8 13 21 34 55

avg_close = (close[0] + close[1] + close[2] + close[3] +close[5] + close[8] + close[13]+ close[21] + close[34] + close[55]) / 10
avg_high = (high[0] + high[1] + high[2] + high[3] +high[5] + high[8] + high[13]+ high[21] + high[34] + high[55]) / 10
avg_low = (low[0] + low[1] + low[2] + low[3] +low[5] + low[8] + low[13]+ low[21] + low[34] + low[55]) / 10
avg_open = (open[0] + open[1] + open[2] + open[3] +open[5] + open[8] + open[13]+ open[21] + open[34] + open[55]) / 10


src = avg_close//input(avg_close, title="Source")


out55 = ema(src, 55)
out1 = ema(src, 1)
out2 = ema(src, 2)
out3 = ema(src, 3)
out5 = ema(src, 5)
out8 = ema(src, 8)
out13 = ema(src, 13)
out21 = ema(src, 21)
out34 = ema(src, 34)

avg_ema = (out55 + out1 + out2 + out3+ out5 + out8 + out13 + out21 + out34)/9

plot(avg_ema)

plotcandle(avg_open, avg_high, avg_low, avg_close, title='Title', color = avg_open < avg_close ? color.green : color.red, wickcolor=color.white)

long = avg_open < avg_close and avg_close > avg_close[1] and avg_high > avg_high[1] and  avg_close[1] > avg_close[2] and avg_high[1] > avg_high[2]
short = avg_open > avg_close and avg_close < avg_close[1] and avg_low < avg_low[1] and avg_close[1] < avg_close[2] and avg_low[1] < avg_low[2]

strategy.entry("long",1,when=long and avg_close > avg_ema)
strategy.close('long',when=short and avg_close < avg_ema)


Lebih banyak