Strategi Bressert Stochastic yang dihaluskan dua kali

Penulis:ChaoZhang, Tarikh: 2024-02-05 15:57:37
Tag:

img

Ringkasan

Strategi Bressert Stochastic Dual Smoothed direka oleh William Blau. Ia cuba menggabungkan kaedah purata bergerak dengan prinsip osilator.

Strategi ini menjana isyarat perdagangan dengan mengira satu siri indeks stokastis yang dihaluskan berganda. Secara khusus, ia mula-mula mengira indeks stokastis harga yang dihaluskan, dan kemudian menggunakan purata yang lancar kepada indeks stokastis ini lagi untuk mendapatkan indeks stokastis yang dihaluskan berganda. Apabila garis pencetus melintasi indeks stokastis yang dihaluskan berganda, isyarat beli atau jual dihasilkan.

Prinsip

  1. Mengira tempoh PDS indeks stokastik rata xPreCalc harga
  2. Mempakai purata bergerak eksponensial EMAlen ke xPreCalc untuk mendapatkan xDSS, iaitu indeks stokastik yang dihaluskan dua kali
  3. Mengira garis pencetus xTrigger, yang merupakan satu lagi garis EMA xDSS
  4. Menghasilkan isyarat perdagangan:
    • Pergi panjang apabila xTrigger di bawah xDSS dan di bawah garis oversold
    • Pergi pendek apabila xTrigger berada di atas xDSS dan di atas garis overbought
  5. Menggambar lengkung indeks stokastik berganda xDSS dan garis pemicu xTrigger

Kelebihan

Strategi ini menggabungkan keupayaan trend berikut purata bergerak dan keupayaan pengenalan overbought / oversold indeks stochastic.

  1. Penghalusan berganda menapis isyarat palsu dan meningkatkan kestabilan
  2. Garis pencetus menjana isyarat perdagangan dan mengelakkan perdagangan yang kerap
  3. Parameter yang boleh disesuaikan menyesuaikan diri dengan keadaan pasaran yang berbeza
  4. Grafik intuitif untuk mudah memahami dan mengesahkan strategi

Risiko

Strategi Bressert Stochastic Dual Smoothed juga mempunyai beberapa risiko:

  1. Lebih banyak isyarat palsu penunjuk Bressert di pasaran yang tidak stabil
  2. Penghapusan berganda boleh menyebabkan kelewatan isyarat, kehilangan titik perubahan harga
  3. Tetapan parameter yang tidak betul mungkin gagal mengenal pasti turun naik harga
  4. Risiko perdagangan masih wujud

Tindakan balas:

  1. Mengoptimumkan parameter untuk meningkatkan ketepatan
  2. Isyarat penapis dengan penunjuk lain
  3. Menggunakan saiz kedudukan untuk lindung nilai risiko

Pengoptimuman

Strategi ini juga boleh dioptimumkan dalam aspek berikut:

  1. Sesuaikan parameter kitaran indeks mulus berganda untuk mengoptimumkan kesan mulus
  2. Tambah mekanisme stop loss untuk mengawal kerugian tunggal
  3. Tambah penunjuk penilaian trend untuk mengelakkan operasi terbalik
  4. Gunakan saiz kedudukan untuk memaksimumkan ruang keuntungan

Kesimpulan

Strategi Bressert Stochastic Dual Smoothed menggabungkan kelebihan purata bergerak dan indeks stochastic untuk mengenal pasti titik overbought / oversold dan mengikuti trend.


/*backtest
start: 2024-01-05 00:00:00
end: 2024-02-04 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 05/04/2017
// Double Smoothed Stochastics (DSS) is designed by William Blaw. 
// It attempts to combine moving average methods with oscillator principles. 
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="DSS Bressert (Double Smoothed Stochastic)", shorttitle="DSS Bressert")
PDS = input(10, minval=1)
EMAlen = input(9, minval=1)
TriggerLen = input(5, minval=1)
Overbought = input(80, minval=1)
Oversold = input(20, minval=1)
reverse = input(false, title="Trade reverse")
hline(Overbought, color=green, linestyle=line)
hline(Oversold, color=red, linestyle=line)
xPreCalc = ema(stoch(close, high, low, PDS), EMAlen)
xDSS = ema(stoch(xPreCalc, xPreCalc, xPreCalc, PDS), EMAlen)
//xDSS = stoch(xPreCalc, xPreCalc, xPreCalc, PDS)
xTrigger = ema(xDSS, TriggerLen)
pos = iff(xTrigger < xDSS and xTrigger < Oversold, -1,
	     iff(xTrigger > xDSS and xTrigger > Overbought, 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(xDSS, color=blue, title="DSS")
plot(xTrigger, color=red, title="Trigger")

Lebih lanjut