KST EMA Momentum Trend Mengikuti Strategi

Penulis:ChaoZhang, Tanggal: 2023-11-07 16:36:21
Tag:

img

Gambaran umum

Ide inti dari strategi ini adalah menggabungkan indikator KST dan garis EMA untuk mengidentifikasi dan mengikuti tren. Ini menghasilkan sinyal beli ketika indikator KST melintasi di atas 0 dan ditutup di atas garis EMA, dan sinyal jual ketika melintasi di bawah 0 dan ditutup di bawah garis EMA. Strategi sederhana dan praktis ini dapat melacak tren secara otomatis dan cocok untuk kepemilikan jangka menengah hingga panjang.

Logika Strategi

  1. Menghitung indikator KST: Menghitung ROC 10, 15, 20 dan 30 periode, mengambil jumlah tertimbang, dan meratakan dengan SMA 9 periode untuk memperoleh indikator KST.

  2. Menghitung garis EMA: Menghitung garis EMA 50 periode.

  3. Menghasilkan sinyal beli: Ketika garis KST cepat melintasi di atas garis KST lambat (salib emas) dan berada di bawah 0, sementara penutupan berada di atas garis EMA, sinyal beli dipicu.

  4. Menghasilkan sinyal jual: Ketika garis KST cepat melintasi di bawah garis KST lambat (salib mati) dan berada di atas 0, sementara penutupan berada di bawah garis EMA, sinyal jual dipicu.

  5. Setel stop loss trailing: Stop loss melacak 1% dari nilai akun untuk mewujudkan stop loss otomatis.

Keuntungan

  1. KST mengidentifikasi perubahan tren, EMA mengkonfirmasi arah.

  2. Menggunakan crossover cepat / lambat dan garis 0 menghindari perdagangan yang tidak perlu.

  3. EMA sebagai support/resistance lebih lanjut menyaring sinyal palsu.

  4. Auto trailing stop loss mengendalikan risiko dan memungkinkan keuntungan untuk berjalan.

  5. Parameter sederhana membuat implementasi dan optimasi mudah.

Risiko

  1. KST memiliki keterlambatan dalam mendeteksi perubahan tren, mungkin kehilangan beberapa kesempatan.

  2. EMA telah tertinggal di sekitar pembalikan tren. indikator lain atau kombinasi MA mungkin bekerja lebih baik.

  3. Stop loss yang terlalu luas meningkatkan kerugian, terlalu ketat terhenti oleh paku.

  4. Sinyal yang sering dapat meningkatkan biaya transaksi. dapat memperketat aturan masuk untuk mengurangi perdagangan.

Arahan Optimasi

  1. Mengoptimalkan periode KST untuk sensitivitas terhadap instrumen tertentu.

  2. Uji rata-rata bergerak lainnya seperti MA, WMA untuk melihat mana yang paling cocok dengan KST.

  3. Eksperimen berhenti dinamis berdasarkan metrik volatilitas seperti ATR.

  4. Tambahkan filter seperti lonjakan volume untuk menghindari perangkap.

  5. Pertimbangkan untuk menggabungkan dengan indikator seperti RSI, MACD untuk lebih banyak dimensi.

  6. Uji parameter di seluruh instrumen untuk mengoptimalkan untuk masing-masing.

Kesimpulan

Strategi ini memiliki logika yang jelas dan dapat diandalkan yang mudah diimplementasikan. KST mengidentifikasi perubahan tren, EMA lebih lanjut menyaring, dan menghentikan risiko kontrol. Ini secara otomatis melacak tren jangka menengah hingga panjang. Parameter yang wajar memberikan ruang optimasi yang besar. Pengguna dapat menyesuaikan untuk instrumen yang berbeda. Terapan bagi pemula untuk belajar dan profesional untuk membangun. Dengan optimasi lebih lanjut, ini menjanjikan sebagai sistem trend berikut yang kuat.


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

//@version=4
strategy(title="Know Sure Thing and EMA Strategy by JLX", shorttitle="KST EMA JLX", format=format.price, precision=4, initial_capital = 1000, default_qty_type=strategy.percent_of_equity, default_qty_value = 100)
roclen1 = input(10, minval=1, title = "ROC Length #1")
roclen2 = input(15, minval=1, title = "ROC Length #2")
roclen3 = input(20, minval=1, title = "ROC Length #3")
roclen4 = input(30, minval=1, title = "ROC Length #4")
smalen1 = input(10, minval=1, title = "SMA Length #1")
smalen2 = input(10, minval=1, title = "SMA Length #2")
smalen3 = input(10, minval=1, title = "SMA Length #3")
smalen4 = input(15, minval=1, title = "SMA Length #4")
siglen = input(9, minval=1, title = "Signal Line Length")
smaroc(roclen, smalen) => sma(roc(close, roclen), smalen)
kst = smaroc(roclen1, smalen1) + 2 * smaroc(roclen2, smalen2) + 3 * smaroc(roclen3, smalen3) + 4 * smaroc(roclen4, smalen4)
sig = sma(kst, siglen)
plot(kst, color=color.green, title="KST")
plot(sig, color=color.red, title="Signal")
hline(0, title="Zero")

len = input(50, minval=1, title="Length EMA")
src = input(close, title="Source EMA")
offset = input(title="Offset", type=input.integer, defval=0, minval=-500, maxval=500)
fastEMA = ema(src, len)

delta = kst - sig

buySignal = crossover(delta, 0) and kst < 0 and close > fastEMA
sellSignal = crossunder(delta, 0) and kst > 0 and close < fastEMA

longTrailPerc = input(title="Trail Long Loss (%)", type=input.float, minval=0.0, step=0.1, defval=1) * 0.01
shortTrailPerc = input(title="Trail Short Loss (%)",type=input.float, minval=0.0, step=0.1, defval=1) * 0.01

// STEP 2:
// Determine trail stop loss prices
longStopPrice = 0.0, shortStopPrice = 0.0

longStopPrice := if (strategy.position_size > 0)
    stopValue = close * (1 - longTrailPerc)
    max(stopValue, longStopPrice[1])
else
    0
shortStopPrice := if (strategy.position_size < 0)
    stopValue = close * (1 + shortTrailPerc)
    min(stopValue, shortStopPrice[1])
else
    999999

// Submit entry orders
if (buySignal)
    strategy.entry(id="EL", long=true)

if (sellSignal)
    strategy.entry(id="ES", long=false)

// STEP 3:
// Submit exit orders for trail stop loss price
if (strategy.position_size > 0)
    strategy.exit(id="XL TRL STP", stop=longStopPrice)

if (strategy.position_size < 0)
    strategy.exit(id="XS TRL STP", stop=shortStopPrice)



alertcondition(crossover(delta, 0) and kst < 0 and close > fastEMA,'Long alert', 'You should buy')

alertcondition(crossunder(delta, 0) and kst > 0 and close < fastEMA, 'Short alert', 'You should sell')





Lebih banyak