Strategi Indikator Bollinger Bands Crossing Mean PB


Tanggal Pembuatan: 2024-01-17 17:10:53 Akhirnya memodifikasi: 2024-01-17 17:10:53
menyalin: 0 Jumlah klik: 661
1
fokus pada
1617
Pengikut

Strategi Indikator Bollinger Bands Crossing Mean PB

Ringkasan

Strategi ini menghasilkan sinyal beli dan jual dengan menghitung rasio rata-rata PB dan downtrend Brin untuk menentukan hubungan antara PB dan downtrend Brin. Ketika indikator PB naik, sinyal beli dihasilkan; ketika indikator PB turun, sinyal jual dihasilkan.

Prinsip Strategi

Indikator sentral dari strategi ini adalah indikator PB rata-rata. Indikator PB rata-rata menggabungkan stabilitas sistem rata-rata dan sensitivitas indikator PB, yang menggunakan perbedaan antara dua garis rata-rata berkala yang berbeda untuk mengungkapkan tren perubahan harga, sehingga menilai melihat situasi kosong.

Strategi ini juga menggunakan indikator Brin Belt untuk menilai overbought dan oversold dalam harga saham. Indikator Brin Belt terdiri dari tiga garis kurva: mid-trail, up-trail, dan down-trail. Mid-trail adalah rata-rata bergerak selama n hari; up-and-down trail dihitung melalui mid-trail dan tingkat fluktuasi historis.

Secara keseluruhan, strategi ini menggunakan indikator PB rata-rata untuk menentukan tren harga saham naik turun, dan didukung dengan indikator Brin untuk menilai overbought dan oversold, mencari titik jual dalam hubungan indikator yang menggabungkan keduanya, merupakan strategi perdagangan indikator numerik yang khas.

Analisis Keunggulan

Strategi ini memiliki beberapa keuntungan:

  1. Menggunakan indikator PB rata-rata untuk menentukan perubahan tren harga saham, sangat sensitif
  2. Indikator Brin Belt untuk mengidentifikasi overbought dan oversold area, meningkatkan akurasi penentuan titik jual beli
  3. Strategi yang sederhana dan mudah diterapkan
  4. Data retrospektif menunjukkan bahwa keuntungan dari strategi ini cukup besar.

Analisis risiko

Risiko utama dari strategi ini adalah:

  1. Indikator PB rata-rata dan Indikator Brinks bergantung pada perhitungan data historis, yang dapat menimbulkan sinyal yang salah ketika ada fluktuasi besar dalam harga saham
  2. Indikator PB dan Blink sangat sensitif terhadap pengaturan parameter, dan pengaturan yang tidak tepat dapat menyebabkan terlalu banyak perdagangan yang salah
  3. Selama periode implementasi strategi, perubahan lingkungan makro dapat memiliki dampak yang lebih besar pada harga saham, seperti krisis ekonomi, perubahan kebijakan, dan lain-lain, yang dapat menyebabkan kegagalan strategi

Untuk risiko di atas, dapat dilakukan penghindaran risiko dengan cara pengaturan parameter optimasi, penghentian kerugian yang ketat, mempertimbangkan faktor lingkungan, dan pemantauan buatan.

Arah optimasi

Strategi ini dapat dioptimalkan untuk:

  1. Mengoptimalkan parameter rata-rata PB dan Brinstrand untuk menemukan kombinasi optimal
  2. Menambahkan filter untuk indikator lain, seperti MACD, KDJ, dan lain-lain, untuk meningkatkan efektivitas strategi
  3. Meningkatkan mekanisme pengendalian kerugian dan pengendalian kerugian tunggal yang efektif
  4. Menggabungkan indikator siklus waktu yang lebih besar untuk menentukan arah dan menghindari perdagangan berlawanan

Meringkaskan

Strategi ini secara keseluruhan berjalan dengan baik, dengan indikator PB rata-rata sebagai inti, ditambah dengan Brin band untuk menentukan titik jual beli, operasi sederhana, sensitivitas tinggi, kinerja pengujian kembali yang baik. Dengan terus-menerus mengoptimalkan pengaturan parameter, menambahkan bantuan indikator lain, dan tindakan penutupan kerugian yang ketat, dapat meningkatkan tingkat keuntungan dan stabilitas strategi, layak untuk diuji coba dan diterapkan.

Kode Sumber Strategi
/*backtest
start: 2024-01-09 00:00:00
end: 2024-01-16 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("BandPass EOS", overlay=false, initial_capital = 1000)

src = input(close, "Source", input.source)
Period1 = input(41, "Fast Period", input.integer)
Period2 = input(54, "Slow Period", input.integer)
showBG = input(false, "Show crosses on background?", input.bool)
UseReversalStop = input(true, "Use additional triggers?", input.bool)

//Super Passband Filter
a1 = 0.0
a2 = 0.0
PB = 0.0
RMS = 0.0
if bar_index > Period1
    a1 := 5 / Period1
    a2 := 5 / Period2
    PB := (a1 - a2) * src + (a2 * (1 - a1) - a1 * (1 - a2)) * src[1] + 
       (1 - a1 + 1 - a2) * nz(PB[1]) - (1 - a1) * (1 - a2) * nz(PB[2])
    for i = 0 to 49 by 1
        RMS := RMS + PB[i] * PB[i]
        RMS
    RMS := sqrt(RMS / 40)
    RMS
z = 0

buy = PB > PB [5] and crossover(PB, -RMS) or PB > PB [5] and crossover (PB, RMS) or PB > PB [5] and crossover (PB, z)
sell = PB < PB [5] and crossunder(PB, RMS) or PB < PB [5] and crossunder (PB, -RMS) or PB < PB [5] and crossunder (PB, z)
signal = buy ? 1 : sell ? -1 : 0
bg = buy ? color.green : sell ? color.red : color.white
bg := showBG ? bg : na
upperFill = PB>RMS ? color.lime : na
lowerFill = PB<-RMS ? color.red : na

p1 = plot(PB,"PB",color.red)
p2 = plot(RMS,"+RMS",color.blue)
p3 = plot(-RMS,"-RMS",color.blue)
bgcolor(bg)
fill(p1,p2,upperFill)
fill(p1,p3,lowerFill)
hline(0)



//PERIOD
testStartYear = input(2018, "Backtest Start Year") 
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay, 0, 0)

testStopYear = input(2019, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay, 0, 0)

testPeriod() => true
    
lcolor = PB > PB [5] and crossover(PB, -RMS) or PB > PB [5] and crossover (PB, RMS) or PB > PB [5] and crossover (PB, z)
scolor = PB < PB [5] and crossunder(PB, RMS) or PB < PB [5] and crossunder (PB, -RMS) or PB < PB [5] and crossunder (PB, z)

c1 = (PB < PB [5] and crossunder(PB, RMS) or PB < PB [5] and crossunder (PB, -RMS) or PB < PB [5] and crossunder (PB, z))
c2 = (PB > PB [5] and crossover(PB, -RMS) or PB > PB [5] and crossover (PB, RMS) or PB > PB [5] and crossover (PB, z))

plot (c1 ? PB : na, style = plot.style_circles, color = color.red, linewidth = 3)
plot (c2 ? PB : na, style = plot.style_circles, color = color.green, linewidth = 3)

if (PB > PB [5] and crossover(PB, -RMS) or PB > PB [5] and crossover (PB, RMS) or PB > PB [5] and crossover (PB, z))
    strategy.entry("long", strategy.long, when = testPeriod())


if (PB < PB [5] and crossunder(PB, RMS) or PB < PB [5] and crossunder (PB, -RMS) or PB < PB [5] and crossunder (PB, z))
    strategy.entry("short", strategy.short, when = testPeriod())