Strategi Osilator Stochastic Eksponensial Diatasi

Penulis:ChaoZhang, Tanggal: 2024-01-18 15:53:41
Tag:

img

Gambaran umum

Strategi Stochastic Oscillator Eksponensial Smoothed adalah versi modifikasi dari indikator stochastic tradisional dengan menambahkan parameter bobot eksponensial untuk menyesuaikan sensitivitas stochastic dan menghasilkan sinyal perdagangan.

Logika Strategi

Inti dari strategi Stochastic Exponential Smoothed terletak pada parameter berat eksponensial ex. Stochastic tradisional dihitung sebagai:

s = 100 * (close - lowest low) / (highest high - lowest low)

Dengan parameter eksponensial, rumus menjadi:

exp = ex<10? (ex)/(10-ex) : 99   

s = 100 * (close - lowest low) / (highest high - lowest low)  

ks = s>50? math.pow(math.abs(s-50),exp)/math.pow(50,exp-1)+50   
       :-math.pow(math.abs(s-50),exp)/math.pow(50,exp-1)+50  

Dengan menyesuaikan exp, pengaruh s pada ks dapat diubah. meningkatkan exp membuat indikator kurang sensitif sementara mengurangi exp membuatnya lebih sensitif.

Sinyal beli dihasilkan ketika ks melintasi dari tingkat overbought. Sinyal jual dihasilkan ketika ks melintasi di bawah dari tingkat oversold.

Keuntungan

Dibandingkan dengan strategi stokastis tradisional, strategi Eksponensial Smoothed Stochastic Oscillator memiliki keuntungan berikut:

  1. Sensitivitas stochastic dapat diatur secara bebas dengan mengubah bobot eksponensial untuk mengontrol frekuensi perdagangan.
  2. Peningkatan berat eksponensial dapat menyaring beberapa kebisingan dan menghasilkan sinyal perdagangan yang lebih stabil.
  3. Menggabungkan indikator dari kerangka waktu yang berbeda dapat mencapai konfirmasi multi-kerangka waktu dan meningkatkan keandalan sinyal.

Risiko

Strategi Eksponensial Smoothed Stochastic Oscillator juga memiliki risiko berikut:

  1. Dengan bobot eksponensial yang terlalu besar, beberapa peluang perdagangan dapat dilewatkan karena penyaringan sinyal yang berlebihan.
  2. Indikator ini rentan terhadap kebisingan dan crossover yang salah. Parameter harus disetel untuk memastikan sinyal crossover yang dapat diandalkan.
  3. Rentang parameter yang optimal perlu diidentifikasi untuk pasar yang berbeda. Pengaturan parameter yang tidak tepat dapat mempengaruhi kinerja strategi.

Bidang Peningkatan

Strategi Eksponensial Smoothed Stochastic Oscillator dapat dioptimalkan dari aspek berikut:

  1. Gabungkan dengan indikator lain seperti MACD dan moving average untuk menyaring sinyal dan mengurangi sinyal palsu.
  2. Tambahkan mekanisme stop loss untuk mengontrol risiko secara efektif.
  3. Mengoptimalkan parameter berat eksponensial untuk menemukan kombinasi parameter yang optimal.
  4. Meningkatkan komposasi, misalnya, menggabungkan dengan indikator musiman, indikator struktur pasar untuk meningkatkan stabilitas lebih lanjut.

Kesimpulan

Strategi Osilator Stochastic Exponential Smoothed menghasilkan sinyal perdagangan yang lebih dapat diandalkan dengan menyesuaikan sensitivitas indikator stochastic. Ini dapat secara efektif melacak tren jangka menengah hingga panjang dan juga dapat dioptimalkan menjadi strategi jangka pendek. Dengan komposasi dan optimasi parameter lebih lanjut, ini memiliki potensi untuk mencapai pengembalian yang lebih menguntungkan yang lebih konsisten.


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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © faytterro

//@version=5
strategy("Exponential Stochastic Strategy", overlay=false, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
len=input.int(14, "length") 
ex=input.int(2, title="exp", minval=1, maxval=10)
exp= ex<10? (ex)/(10-ex) : 99
s=100 * (close - ta.lowest(low, len)) / (ta.highest(high, len) - ta.lowest(low, len))
ks=s>50? math.pow(math.abs(s-50),exp)/math.pow(50,exp-1)+50 :
 -math.pow(math.abs(s-50),exp)/math.pow(50,exp-1)+50
plot(ks, color= color.white)
bot=input.int(20)
top=input.int(80)
longCondition = ta.crossover(ks, bot) and bar_index>0
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

shortCondition = ta.crossunder(ks, top) and bar_index>0
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)
//    strategy.close("My Long Entry Id")
alertcondition(longCondition, title = "buy")
alertcondition(shortCondition, title = "sell")
h1=hline(top)
h2=hline(bot)
h3=hline(100)
h4=hline(0)
fill(h1,h3, color= color.rgb(255,0,0,200-top*2))
fill(h2,h4, color= color.rgb(0,255,0,bot*2))

Lebih banyak