Strategi Uji Balik Penapis Arah Purata Julat


Tarikh penciptaan: 2024-01-08 10:20:25 Akhirnya diubah suai: 2024-01-08 10:20:25
Salin: 0 Bilangan klik: 656
1
fokus pada
1617
Pengikut

Strategi Uji Balik Penapis Arah Purata Julat

Ringkasan: Strategi ini digunakan untuk menentukan sama ada harga berada dalam keadaan trend, dengan mengira nisbah perbezaan harga tertinggi dan terendah dalam tempoh tertentu dengan kenaikan harga penutupan, sebagai penunjuk isyarat perdagangan.

Prinsip strategi: Indikator utama strategi ini adalah penapis horisontal menegak ((VHF), yang dikira dengan formula berikut:

VHF = (Highest(Length) - Lowest(Length)) / SUM(ABS(Close - Close[1]), Length)

Di mana Highest (Length) dan Lowest (Length) adalah harga tertinggi dan terendah dalam tempoh Length. Bahagian molekul mencerminkan julat gelombang harga, bahagian pecahan mencerminkan pergerakan sebenar harga.

Strategi ini mudah dan intuitif untuk menilai kecenderungan dengan membandingkan jangkauan turun naik harga dengan gelombang sebenar, mengelakkan masalah bergantung kepada indikator tunggal seperti SMA, EMA dan mengabaikan ciri harga itu sendiri. Tetapi strategi ini sensitif kepada pengoptimuman parameter, yang memerlukan penyesuaian parameter Panjang dan Isyarat untuk menyesuaikan diri dengan keadaan pasaran dan kitaran yang berbeza.

Analisis kelebihan:

  1. Ini adalah satu petanda yang baik untuk anda.
  2. Ia mengambil kira ciri-ciri harga itu sendiri dan tidak bergantung kepada sebarang kecocokan.
  3. Sensitiviti penilaian penyesuaian parameter yang boleh dikonfigurasi.
  4. Ia boleh dimasukkan dengan mudah ke dalam pelbagai strategi perdagangan.

Analisis risiko:

  1. Parameter yang sensitif, tidak betul boleh menyebabkan terlalu banyak kesilapan dalam perdagangan.
  2. Tidak dapat membezakan trend palsu ketika harga berada pada titik perubahan.
  3. Pengaturan kitaran besar tidak sensitif terhadap pergerakan harga kitaran pendek.
  4. Ia perlu digabungkan dengan stop loss untuk mengawal kerugian tunggal.

Arah untuk dioptimumkan:

  1. Optimumkan kepekaan parameter Length untuk mengimbangi trend penilaian.
  2. Gabungan dengan petunjuk lain menapis isyarat VHF. Sebagai contoh, MACD dapat menentukan titik perubahan.
  3. Mencuba kaedah pembelajaran mesin untuk menyesuaikan kurva VHF.
  4. Pelbagai tetapan kitaran selari menghasilkan isyarat strategi pelbagai peringkat.

Kesimpulannya: Strategi ini berdasarkan pada harga sendiri ciri-ciri intuitif menilai trend, mudah dan berkesan, layak untuk dijelajahi, dioptimumkan dan disahkan, boleh menjadi alat asas untuk menentukan trend, digunakan secara meluas dalam strategi perdagangan kuantitatif.

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