Strategi Ujian Kembali Penapis Horizontal Vertikal

Penulis:ChaoZhang, Tarikh: 2024-01-08 10:20:25
Tag:

img

Ringkasan: Strategi ini menilai sama ada harga berada dalam keadaan trend dengan mengira nisbah antara perbezaan antara harga tertinggi dan terendah dalam tempoh tertentu dan amplitud harga penutupan, dan menggunakannya sebagai penunjuk isyarat perdagangan.

Prinsip Strategi: Penunjuk teras strategi ini ialah Penapis Horizontal Vertikal (VHF). Ia dikira dengan formula berikut:

VHF = (Paling Tinggi ((Length) - Paling rendah ((Length)) / SUM ((ABS ((Close-Close[1]), Panjang)

Di mana tertinggi (Length) dan terendah (Length) masing-masing adalah harga tertinggi dan terendah dalam kitaran Panjang. Pembilang mencerminkan julat amplitudo harga, dan penyebut mencerminkan turun naik harga sebenar. Nisbah mereka dapat menilai trend pergerakan harga. Apabila VHF lebih tinggi daripada ambang isyarat yang diberikan, ia dianggap bahawa harga berada dalam keadaan trend. Apabila lebih rendah daripada ambang isyarat yang diberikan, ia dianggap bahawa harga berada dalam keadaan kejutan. Isyarat perdagangan dihasilkan dengan sewajarnya.

Strategi ini adalah mudah dan intuitif. Dengan membandingkan julat turun naik harga dengan turun naik sebenar untuk menilai trend, ia mengelakkan masalah bergantung semata-mata pada SMA, EMA dan penunjuk lain sambil mengabaikan ciri-ciri harga itu sendiri. Tetapi strategi ini sensitif kepada pengoptimuman parameter, Parameter Panjang dan Isyarat perlu disesuaikan untuk menyesuaikan diri dengan kitaran dan keadaan pasaran yang berbeza.

Analisis Kelebihan:

  1. Indikator penilaian trend intuitif, mudah dan berkesan.
  2. Pertimbangkan ciri-ciri harga itu sendiri, tidak bergantung pada mana-mana pemasangan lengkung.
  3. Parameter yang boleh dikonfigurasikan menyesuaikan kepekaan penilaian.
  4. Boleh diintegrasikan dengan mudah ke dalam pelbagai strategi perdagangan.

Analisis Risiko:

  1. Sensitif kepada parameter, tetapan yang tidak betul boleh menyebabkan terlalu banyak perdagangan palsu.
  2. Tidak dapat membezakan trend palsu apabila harga berada di titik perubahan.
  3. Tidak sensitif terhadap kejutan harga jangka pendek di bawah tetapan kitaran besar.
  4. Perlu menggunakan stop loss untuk mengawal kerugian tunggal.

Arahan pengoptimuman:

  1. Mengoptimumkan parameter Panjang untuk mengimbangi kepekaan penghakiman trend.
  2. Gabungkan penunjuk lain untuk menapis isyarat VHF. Sebagai contoh, MACD boleh menentukan titik belokan.
  3. Cuba kaedah pembelajaran mesin untuk menyesuaikan kurva VHF.
  4. Menetapkan strategi selari dengan tetapan kitaran yang berbeza untuk menjana isyarat strategi pelbagai peringkat.

Ringkasan: Strategi ini secara intuitif menentukan trend berdasarkan ciri-ciri harga itu sendiri, mudah dan sah, bernilai penerokaan lanjut, pengoptimuman dan pengesahan.


/*backtest
start: 2023-01-01 00:00:00
end: 2024-01-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 27/04/2018
// Vertical Horizontal Filter was initiated by Adam White. It was first published 
// in a magazine called “Issues of Futures” in August, 1991. The Vertical Horizontal 
// Filter (VHF) is a very common Indicator used by traders to find out the Phase of 
// a Price Trend. Normally, a price trend can be in a Trending Phase or a Congestion 
// Phase/Choppy Movement Phase. Adam White created this particular Technical Indicator 
// to determine whether prices are trending in a particular direction or are they going 
// through a transitional period. He used it to measure the range of Futures available
// in the market.
//
// You can change long to short in the Input Settings
// WARNING:
//  - For purpose educate only
//  - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Vertical Horizontal Filter Backtest")
Length = input(28, minval=1)
Signal = input(0.4, step=0.01)
reverse = input(false, title="Trade reverse")
hline(Signal, color=blue, linestyle=line)
xHH = highest(high, Length)
xLL = lowest(low, Length)
xNumerator = abs(xHH - xLL)
xDenominator = sum(abs(close - close[1]), Length)
xVHF = xNumerator / xDenominator 
pos = iff(xVHF > Signal, 1,
       iff(xVHF < Signal, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue ) 
plot(xVHF, color=blue, title="VHF")

Lebih lanjut