Ehlers Fisher Stochastic Relative Vigor Index Strategi

Penulis:ChaoZhang, Tarikh: 2023-12-22 12:04:23
Tag:

img

Ringkasan

Strategi ini berdasarkan kepada penunjuk Indeks Kekuatan Relatif Stochastic Ehlers Fisher yang dicadangkan oleh John Ehlers dalam bukunya Analisis Sibernetik untuk Saham dan Futures. Strategi ini menggunakan penunjuk Ehlers Fisher untuk menilai kekuatan relatif saham dan menggabungkannya dengan peraturan perdagangan tersuai untuk kemasukan dan keluar.

Logika Strategi

Strategi ini mula-mula mengira harga penutupan - harga pembukaan, yang merupakan badan candlestick. Kemudian ia mengira harga tinggi - harga rendah, yang merupakan bayangan candlestick. Dengan mengambil jumlah dan purata kedua-dua bahagian ini masing-masing, ia mendapat momentum saham. Kemudian dengan membahagikan momentum dengan turun naik saham, ia mendapat Indeks Kekuatan Relatif (RVI).

Seterusnya, formula Ehlers Fisher digunakan pada RVI untuk mendapatkan nilai isyarat. Ia menjadi panjang apabila isyarat melintasi atas pencetus, dan menjadi pendek apabila isyarat melintasi di bawah pencetus. Di samping itu, kehilangan berhenti tetap dan kehilangan berhenti menyusul dilaksanakan untuk mengawal risiko.

Analisis Kelebihan

Strategi ini mengintegrasikan ciri momentum dan penunjuk stokastik saham, yang dapat menentukan kekuatan relatif di pasaran dengan berkesan. Reka bentuk penunjuk Ehlers Fisher dapat mengurangkan kesan bunyi bising dan menghasilkan isyarat perdagangan yang agak boleh dipercayai. Indeks tenaga mencerminkan kualiti trend dan turun naik saham itu sendiri, menjadikannya penunjuk dinamik.

Berbanding dengan menggunakan satu penunjuk momentum atau penunjuk stokastik, strategi ini menggabungkan penunjuk dan model secara organik, yang dapat meningkatkan kualiti isyarat. Peraturan stop loss yang ketat juga membolehkan strategi untuk mengawal risiko sambil memastikan keuntungan.

Analisis Risiko

Strategi ini terutamanya bergantung pada penunjuk Ehlers Fisher. Apabila terdapat perubahan drastik di pasaran, parameter penunjuk perlu dioptimumkan untuk menyesuaikan diri dengan persekitaran baru. Jika parameter ditetapkan dengan tidak betul, ia boleh menghasilkan isyarat yang salah atau isyarat yang tertinggal.

Selain itu, terdapat beberapa tahap risiko penyesuaian lengkung yang wujud dalam strategi itu sendiri. Jika persekitaran pasaran dalam pengujian belakang dan perdagangan langsung berubah dengan ketara, prestasi strategi mungkin menyimpang secara besar-besaran. Dalam kes ini, parameter strategi perlu diselaraskan dan peraturan perdagangan memerlukan pengoptimuman untuk menyesuaikan keadaan pasaran baru.

Arahan pengoptimuman

Strategi ini boleh dioptimumkan lagi dalam aspek berikut:

  1. Mengoptimumkan parameter penunjuk Ehlers Fisher untuk kepekaan atau penapisan bunyi yang lebih tinggi.

  2. Model indikator dengan algoritma pembelajaran mesin seperti LSTM untuk menjana isyarat perdagangan yang lebih boleh dipercayai.

  3. Menggabungkan penunjuk turun naik pasaran seperti ATR untuk menyesuaikan jarak stop loss secara dinamik.

  4. Tambah sokongan untuk model pelbagai faktor, menggabungkan penunjuk teknikal dan asas lain untuk meningkatkan kualiti isyarat.

  5. Mengoptimumkan logik kedudukan terbuka/tutup dengan kriteria masuk/keluar dinamik. Memperkenalkan teknik stop loss adaptif dan mengambil keuntungan.

Kesimpulan

Strategi ini menggunakan penunjuk Ehlers Fisher Stochastic RVI untuk menentukan trend dan kekuatan pasaran, dan menetapkan mekanisme stop loss yang munasabah untuk mengawal risiko. Berbanding dengan penunjuk tunggal, strategi ini menggabungkan beberapa penunjuk dan model secara organik, yang dapat menapis bunyi bising dan memberikan isyarat berkualiti tinggi. Masih ada ruang untuk peningkatan prestasi strategi melalui pengoptimuman parameter, penggabungan model, penyesuaian adaptif dan cara lain.


/*backtest
start: 2022-12-15 00:00:00
end: 2023-12-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Ehlers Fisher Stochastic Relative Vigor Index Strategy", overlay = false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 1, commission_type = strategy.commission.percent, commission_value = 0.1)
p = input(10, title = "Length")
FisherStoch(src, len) =>
    val1 = stoch(src, src, src, len) / 100
    val2 = (4 * val1 + 3 * val1[1] + 2 * val1[2] + val1[3]) / 10
    FisherStoch = 0.5 * log((1 + 1.98 * (val2 - 0.5)) / (1 - 1.98 * (val2 - 0.5))) / 2.64

CO = close - open
HL = high - low

value1 = (CO + 2 * CO[1] + 2 * CO[2] + CO[3]) / 6
value2 = (HL + 2 * HL[1] + 2 * HL[2] + HL[3]) / 6

num = sum(value1, p)
denom = sum(value2, p)

RVI = denom != 0 ? num / denom : 0

signal = FisherStoch(RVI, p)
trigger = signal[1]
oppositeTrade = input(true)
barsSinceEntry = 0
barsSinceEntry := nz(barsSinceEntry[1]) + 1
if strategy.position_size == 0
    barsSinceEntry := 0
if ((crossover(signal, trigger) and not oppositeTrade) or (oppositeTrade and crossunder(signal, trigger))) and abs(signal) > 2 / 2.64
    strategy.entry("Long", strategy.long)
    barsSinceEntry := 0
if ((crossunder(signal, trigger) and not oppositeTrade) or (oppositeTrade and crossover(signal, trigger))) and abs(signal) > 2 / 2.64
    strategy.entry("Short", strategy.short)
    barsSinceEntry := 0
if strategy.openprofit < 0 and barsSinceEntry > 8
    strategy.close_all()
    barsSinceEntry := 0
    
hline(0, title="ZeroLine", color=gray) 
signalPlot = plot(signal, title = "Signal", color = blue)
triggerPlot = plot(trigger, title = "Trigger", color = green)
fill(signalPlot, triggerPlot, color = signal < trigger ? red : lime, transp = 50)

Lebih lanjut