Strategi Osilator Stochastic Exponential Smoothed

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

img

Ringkasan

Strategi Osilator Stochastic Exponential Smoothed adalah versi yang diubah suai daripada penunjuk stochastic tradisional dengan menambah parameter berat eksponensial untuk menyesuaikan kepekaan stochastic dan menghasilkan isyarat perdagangan. Ia pergi lama apabila penunjuk melintasi dari tahap overbought dan pergi pendek apabila penunjuk melintasi di bawah dari tahap oversold. Strategi yang dioptimumkan boleh menjadi strategi trend yang sangat stabil.

Logika Strategi

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

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

Dengan parameter eksponen, formula 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 boleh diubah. meningkatkan exp menjadikan penunjuk kurang sensitif manakala mengurangkan exp menjadikannya lebih sensitif.

Isyarat beli dihasilkan apabila ks melintasi dari tahap overbought. Isyarat jual dihasilkan apabila ks melintasi di bawah dari tahap oversold.

Kelebihan

Berbanding dengan strategi stokastik tradisional, strategi Eksponensial Smoothed Stochastic Oscillator mempunyai kelebihan berikut:

  1. Sensitiviti stokastik boleh disesuaikan dengan bebas dengan mengubah berat eksponensial untuk mengawal kekerapan perdagangan.
  2. Berat eksponensial yang meningkat dapat menapis beberapa bunyi bising dan menghasilkan isyarat perdagangan yang lebih stabil.
  3. Menggabungkan penunjuk dari jangka masa yang berbeza dapat mencapai pengesahan pelbagai jangka masa dan meningkatkan kebolehpercayaan isyarat.

Risiko

Strategi Eksponensial Smoothed Stochastic Oscillator juga mempunyai risiko berikut:

  1. Dengan berat eksponensial yang terlalu besar, beberapa peluang perdagangan mungkin terlepas kerana penapisan isyarat yang berlebihan.
  2. Indikator ini terdedah kepada bunyi bising dan persilangan yang salah. Parameter perlu disesuaikan untuk memastikan isyarat persilangan yang boleh dipercayai.
  3. Julat parameter yang optimum perlu dikenal pasti untuk pasaran yang berbeza. Tetapan parameter yang tidak betul boleh menjejaskan prestasi strategi.

Kawasan Peningkatan

Strategi Eksponensial Smoothed Stochastic Oscillator boleh dioptimumkan dari aspek berikut:

  1. Gabungkan dengan penunjuk lain seperti MACD dan purata bergerak untuk menapis isyarat dan mengurangkan isyarat palsu.
  2. Tambah mekanisme stop loss untuk mengawal risiko dengan berkesan.
  3. Mengoptimumkan parameter berat eksponensial untuk mencari kombinasi parameter yang optimum.
  4. Meningkatkan komposasi, contohnya, digabungkan dengan penunjuk bermusim, penunjuk struktur pasaran untuk meningkatkan kestabilan.

Kesimpulan

Strategi Osilator Stochastic Exponential Smoothed menghasilkan isyarat dagangan yang lebih boleh dipercayai dengan menyesuaikan kepekaan penunjuk stochastic. Ia dapat dengan berkesan mengesan trend jangka sederhana hingga panjang dan juga boleh dioptimumkan ke dalam strategi jangka pendek. Dengan komposasi dan pengoptimuman parameter yang lebih lanjut, ia mempunyai potensi untuk mencapai pulangan 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 lanjut