Terobosan Tinggi dan Rendah Strategi Backtesting

Penulis:ChaoZhang, Tanggal: 2024-01-08 16:13:44
Tag:

img

Gambaran umum

Strategi ini menilai arah tren berdasarkan pemecahan melalui periode tinggi dan rendah. Ini pergi panjang ketika harga memecahkan melalui periode tinggi dan pergi pendek ketika harga memecahkan di bawah periode rendah. Ini termasuk strategi pelacakan tren.

Prinsip

Strategi ini pertama-tama membaca siklus yang ditentukan pengguna (harian, mingguan, dll) dan periode lookback. Kemudian ia mendapatkan harga tertinggi dan terendah untuk periode lookback berdasarkan parameter ini.

Dalam perdagangan yang sebenarnya, jika harga penutupan lebih besar dari atau sama dengan harga terendah periode lookback, itu dinilai sebagai terobosan ke atas dan itu pergi panjang. Jika harga penutupan kurang dari atau sama dengan harga tertinggi periode lookback, itu dinilai sebagai terobosan ke bawah dan itu pergi pendek.

Dengan menangkap arah tren dengan memecahkan puncak dan terendah periodik, strategi ini merupakan semacam strategi pelacakan tren.

Analisis Keuntungan

Keuntungan utama dari strategi ini adalah:

  1. Menangkap tren besar setelah konsolidasi yang kuat dengan menilai arah berdasarkan titik terobosan.

  2. Sederhana dan mudah dimengerti, sangat cocok untuk pemula untuk belajar dan menggunakan.

  3. Mudah dioptimalkan dengan menyesuaikan parameter periodik, berlaku untuk varietas yang berbeda.

  4. Dapat mengatur input terbalik untuk operasi terbalik, memperkaya penggunaan strategi.

  5. Menggambar titik tinggi dan rendah secara berkala untuk membantu penilaian dan membentuk multi-validasi.

Analisis Risiko

Ada juga beberapa risiko:

  1. Tidak dapat secara efektif menyaring volatilitas sisi, kemungkinan beberapa kesalahan operasi.

  2. Tidak dapat mengendalikan stop loss, tingkat tertentu dari risiko kerugian ada.

  3. Karena rentan terhadap biaya perdagangan, PnL yang sebenarnya dapat menyimpang.

  4. Tidak dapat membatasi ukuran posisi, risiko over-trading ada.

Untuk mengatasi risiko ini, metode seperti pengaturan stop loss, mengoptimalkan kondisi filter, mengontrol ukuran posisi dapat digunakan.

Optimalisasi

Arah optimasi utama adalah:

  1. Menambahkan mekanisme filter untuk menghindari pembukaan yang sering selama sisi. Mengatur saluran harga, filter volatilitas dll.

  2. Atur stop loss trailing atau time stop loss untuk mengendalikan risiko kerugian tunggal dan memastikan profitabilitas keseluruhan.

  3. Mengoptimalkan ukuran posisi dan manajemen uang untuk mencegah perdagangan berlebihan dan memastikan stabilitas.

  4. Uji efek dari parameter periodik yang berbeda dan pilih kombinasi parameter yang optimal.

  5. Meningkatkan modul perdagangan algoritmik, menggunakan algoritma pembelajaran mesin untuk meningkatkan efisiensi keputusan.

Ringkasan

Singkatnya, strategi backtest tinggi rendah terobosan ini sederhana untuk dioperasikan berdasarkan pelacakan tren, cocok untuk pemula untuk belajar, tetapi risiko terjebak ada. Dengan menambahkan pengoptimalan seperti filter, berhenti, kontrol posisi, risiko ini dapat dikurangi dan hasil strategi ditingkatkan. Ini dapat memberikan ide dan referensi untuk penelitian dan perbaikan lebih lanjut kami.


/*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 03/07/2018
// This script shows a high and low period value.
//    Width - width of lines
//    SelectPeriod - Day or Week or Month and etc.
//    LookBack - Shift levels 0 - current period, 1 - previous and etc.
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="High and Low Levels Backtest", shorttitle="HL Levels", overlay = true)
SelectPeriod = input("D", defval="D")
LookBack = input(1,  minval=0)
reverse = input(false, title="Trade reverse")
xHigh  = request.security(syminfo.tickerid, SelectPeriod, high[LookBack])
xLow   = request.security(syminfo.tickerid, SelectPeriod, low[LookBack])
vS1 = xHigh
vR1 = xLow
pos = iff(close > vR1, 1,
       iff(close < vS1, -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 ) 

Lebih banyak