Strategi dagangan kuantitatif berdasarkan purata K-line Fibonacci dan purata bergerak


Tarikh penciptaan: 2024-01-19 14:36:45 Akhirnya diubah suai: 2024-01-19 14:36:45
Salin: 1 Bilangan klik: 666
1
fokus pada
1617
Pengikut

Strategi dagangan kuantitatif berdasarkan purata K-line Fibonacci dan purata bergerak

Gambaran keseluruhan

Strategi ini mewujudkan perdagangan kuantitatif dengan hanya melakukan lebih dan tidak kosong dengan membina garis K purata dan purata bergerak berdasarkan pengiraan Fibonacci, digabungkan dengan pelbagai peraturan indikator teknikal harga. Ujian awal menunjukkan bahawa strategi ini berfungsi dengan baik pada grafik kitaran besar.

Prinsip Strategi

Strategi ini dilaksanakan melalui langkah-langkah berikut:

  1. Berdasarkan siri Fibonacci, kira harga tutup purata, harga tertinggi, harga terendah dan harga bukaan untuk 10 kitaran Fibonacci terakhir, dan bina garis K purata.

  2. Untuk harga penutupan purata, kira purata bergerak indeks (EMA) untuk 1, 2, 3, 5, 8, 13, 21, 34, dan 55 kitaran, dan kira purata sembilan EMA untuk mendapatkan EMA purata.

  3. Tetapkan untuk melakukan lebih banyak keadaan kedudukan aman: apabila bentuk garis K rata-rata menunjukkan isyarat berbilang mata ((keliputan, keliputan, keliputan, dan lain-lain) dan harga penutupan lebih tinggi daripada EMA rata-rata untuk membuka lebih banyak kedudukan; apabila bentuk garis K rata-rata menunjukkan isyarat kosong ((keliputan, keliputan, dan lain-lain) dan harga penutupan lebih rendah daripada EMA rata-rata ketika posisi kosong.

Dengan mengira turun naik harga filter K line rata-rata, dan kemudian menggabungkan dengan penunjuk garis rata untuk menghantar isyarat perdagangan, trend dapat dikenali dengan berkesan dan risiko perdagangan dapat dikendalikan.

Kelebihan Strategik

  1. Garis purata K yang dikira berdasarkan nombor Fibonacci dapat secara berkesan menyaring turun naik harga secara rawak dan mengenal pasti isyarat trend.

  2. Berbilang EMA rata-rata membina EMA purata, dapat meningkatkan kestabilan untuk menyokong kedudukan rintangan dan meningkatkan kualiti isyarat.

  3. Hanya dengan melakukan lebih banyak daripada yang tidak dilakukan, anda dapat mengurangkan jumlah transaksi, kos transaksi dan kesan slippage.

  4. Ia berfungsi dengan baik pada kitaran besar, sesuai untuk operasi talian panjang dan sederhana.

Risiko Strategik

  1. Strategi yang hanya melakukan lebih banyak boleh mengalami kerugian yang lebih besar dalam pasaran kosong.

  2. EMA rata-rata mudah mengalami kelewatan dan mungkin terlepas masa masuk yang terbaik.

  3. Jika anda terlalu tergesa-gesa untuk menjalankan operasi kitaran besar, anda mungkin akan terlepas peluang untuk melakukan operasi garis pendek.

  4. Ruang untuk pengoptimuman parameter adalah terhad, dan prestasi cakera mungkin lebih lemah daripada hasil ujian pengoptimuman parameter.

Arah pengoptimuman

  1. Anda boleh menguji strategi penangguhan kerugian yang sesuai dan berhenti apabila kerugian meningkat.

  2. Ia boleh digabungkan dengan penunjuk kadar turun naik seperti ATR, untuk menyesuaikan skala kedudukan secara dinamik.

  3. Ia boleh diuji dengan melakukan penyingkiran yang sesuai dalam trend menurun untuk meningkatkan keuntungan strategi.

  4. Anda boleh mengoptimumkan parameter kitaran EMA untuk mencari kombinasi parameter terbaik.

ringkaskan

Strategi ini mewujudkan perdagangan kuantitatif dengan membina garis K rata-rata Fibonacci dan penunjuk garis rata-rata, mengenal pasti isyarat trend. Strategi ini mempunyai kelebihan mengira harga riak rata-rata K, dan kelebihan mengurangkan kos perdagangan dengan hanya melakukan lebih banyak operasi.

Kod sumber strategi
/*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)