Strategi Backtest

Penulis:ChaoZhang, Tanggal: 2023-11-15 15:41:20
Tag:

img

Gambaran umum

Strategi ini menghitung persentase perubahan harga penutupan bar saat ini relatif terhadap harga penutupan N bar yang lalu, dan menampilkan bar histogram berwarna yang berbeda untuk menentukan tren.

Logika Strategi

  1. Atur parameter strategi melalui input, termasuk lebar bar, perubahan harga atau perubahan persentase tampilan, periode lookback, ambang beli/jual dll.

  2. Hitung perbedaan harga atau persentase perbedaan antara harga penutupan bar saat ini dan harga penutupan N bar yang lalu.

  3. Tentukan garis ambang jual beli.

  4. Tampilkan bilah histogram dengan warna yang berbeda berdasarkan perubahan persentase.

  5. Tentukan menjadi panjang ketika perubahan persentase lebih besar dari ambang beli, dan tetap menjadi pendek ketika lebih rendah dari ambang jual.

  6. Warna histogram bar sesuai dengan arah posisi.

  7. Masuk dan keluar berdasarkan arah posisi.

Keuntungan

  1. Tampilan intuitif dari tren perubahan harga untuk pengambilan keputusan.

  2. Sinyal masuk dan keluar yang jelas dalam kombinasi dengan indikator tren.

  3. Parameter dapat dioptimalkan untuk produk dan kerangka waktu yang berbeda.

  4. Logika yang sederhana dan jelas, mudah dimengerti dan dimodifikasi.

  5. Visualisasi yang bagus untuk penilaian tren cepat.

Risiko

  1. Kemungkinan sinyal yang salah, pilihan entri yang tidak tepat dapat menyebabkan kerugian.

  2. Parameter perlu disesuaikan untuk produk volatilitas tinggi, jika tidak meningkatkan kemungkinan kerugian.

  3. Tidak diketahui peristiwa tiba-tiba seperti berita bearish yang signifikan.

  4. Periode backtest pendek mungkin tidak dapat menentukan ketahanan parameter.

  5. Melewatkan kesempatan untuk mundur tanpa waktu berhenti.

Risiko dapat dikendalikan melalui optimasi parameter, penyaringan sinyal dengan indikator lain, stop loss, memperluas periode backtest dll.

Arahan Optimasi

  1. Pertimbangkan untuk menggabungkan dengan indikator lain seperti indikator tren dan volatilitas untuk mengkonfirmasi sinyal.

  2. Memperkenalkan algoritma pembelajaran mesin untuk mengoptimalkan pengaturan parameter.

  3. Atur stop loss dinamis untuk mengontrol jumlah kerugian tunggal.

  4. Sertakan indikator sentimen dan berita untuk menghindari dampak peristiwa mendadak.

  5. Tambahkan waktu trading atau filter sesi.

  6. Mengoptimalkan periode backtest dengan jangka waktu yang lebih lama.

Ringkasan

Strategi ini menampilkan persentase perubahan harga secara real-time dengan bilah histogram dan menggunakan garis tren untuk pengambilan keputusan, membentuk sinyal perdagangan yang jelas. Logika sederhana untuk operasi yang mudah. Tetapi risiko ada dan perlu dikendalikan melalui optimasi, penyaringan, stop loss dll. Dengan optimasi berkelanjutan, itu bisa menjadi tren yang mudah dipahami dan praktis mengikuti strategi.


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

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v3.0 27/07/2018
//
//  This histogram displays price or % change from previous bar. 
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Percent change bar chart Backtest", precision = 2)
input_barwidth = input(4, title="Bar Width")
input_percentorprice = input(false, title="Price Change")
input_barsback = input(1, title="Look Back")
SellZone = input(-0.33, minval=0.01, step = 0.01)
BuyZone = input(0.33, minval=0.01, step = 0.01)
reverse = input(false, title="Trade reverse")
hline(0, color=blue, linestyle=line)
hline(BuyZone, color=green, linestyle=line)
hline(SellZone, color=red, linestyle=line)
xPrice = close
xPrice1 = iff(input_percentorprice, xPrice - xPrice[input_barsback], ((xPrice - xPrice[input_barsback]) * 100)/ xPrice[input_barsback])
colorg = iff(xPrice1 < 0, red, green)
pos = iff(xPrice1 > BuyZone, 1,
       iff(xPrice1 < SellZone, -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(xPrice1, color=colorg, style = histogram, linewidth = input_barwidth, title="Change")

Lebih banyak