Rata-rata bergerak dinamis dan strategi perdagangan saluran Keltner

Penulis:ChaoZhang, Tanggal: 2023-12-25 13:36:40
Tag:

img

Gambaran umum: Strategi ini mengintegrasikan rata-rata bergerak dinamis, indikator Super Trend, tingkat dukungan dan resistensi potensial, dan Saluran Keltner untuk melakukan penilaian multi-level pada fluktuasi harga dan mencapai perdagangan trend-mengikuti otomatis. Keuntungan dari strategi ini adalah generasi sinyal perdagangan yang jelas, tingkat kemenangan yang relatif tinggi, dan penggabungan langkah-langkah manajemen risiko untuk mengendalikan risiko per perdagangan.

Logika Strategi:
Strategi ini menggunakan rata-rata bergerak dinamis untuk menentukan arah tren harga jangka menengah. Secara khusus, berdasarkan pilihan pengguna, skrip mengadopsi Rata-rata Bergerak Sederhana (SMA) atau Rata-rata Bergerak Eksponensial (EMA). Ketika harga tertinggi, harga terendah dan harga penutupan semuanya lebih tinggi dari hari sebelumnya, ini menunjukkan tren bullish. Ketika semuanya lebih rendah dari hari sebelumnya, ini menunjukkan tren penurunan. Berdasarkan ini, dikombinasikan dengan posisi rata-rata bergerak dinamis, sinyal beli dan jual dihasilkan.

Selain itu, strategi ini juga menggunakan indikator Super Trend untuk mengidentifikasi tren jangka panjang. Indikator Super Trend menggabungkan Average True Range (ATR) dan menghasilkan sinyal beli ketika harga berjalan di atas band atas sementara penutupan sebelumnya berada di bawah band atas.

Untuk menyaring sinyal palsu, strategi ini menggunakan Saluran Keltner untuk memetakan band saluran atas dan bawah. Dikombinasikan dengan kisaran saluran dan indikator Super Trend, ini dapat mencapai perdagangan mengikuti tren. Secara khusus, ketika harga keluar dari band atas ke atas dan penutupan kemarin berada di bawah band atas, sinyal beli yang kuat dihasilkan. Ketika harga keluar dari band bawah dan penutupan kemarin berada di atas band bawah, sinyal jual yang kuat dipicu.

Selain itu, skrip membantu memetakan tingkat dukungan dan resistensi potensial untuk lebih menentukan tingkat harga kunci. Secara keseluruhan, kombinasi dari beberapa indikator dan kondisi breakout yang ketat secara mendasar meningkatkan kualitas sinyal perdagangan.

Keuntungan:

  1. Kombinasi dari beberapa indikator strategi menghasilkan sinyal perdagangan yang jelas. Saluran Keltner menentukan rentang harga utama. Dikombinasikan dengan rata-rata bergerak dinamis dan indikator Super Trend, ini secara ketat menilai arah tren dan secara efektif menyaring terobosan palsu di pasar.

  2. Kondisi penembusan yang ketat memastikan kualitas sinyal perdagangan. Harga perlu benar-benar menembus band saluran atas atau bawah, dikombinasikan dengan posisi kemarin's close untuk menghindari perangkap.

  3. Indikator Super Trend dapat menangkap tren jangka panjang dan melacak tren arah.

  4. Tingkat dukungan dan resistensi potensial membantu dalam menentukan titik harga kunci dan menemukan peluang pembalikan.

  5. Frekuensi perdagangan secara keseluruhan adalah moderat tanpa perdagangan yang terlalu intensif.

Risiko:

  1. Dalam pasar yang berkisar, indikator dapat mengeluarkan sinyal yang menyesatkan, menghasilkan kerugian breakout yang tidak efektif.

  2. Stop loss point saat menembus saluran band mungkin terlalu luas dengan risiko tinggi per perdagangan.

  3. Ketika melacak tren jangka panjang, beberapa peluang pembalikan jangka menengah dapat dilewatkan.

  4. Sistem rata-rata bergerak kadang-kadang bereaksi lebih lambat terhadap peristiwa mendadak.

Arahan Optimasi: Berdasarkan lingkungan pasar yang berbeda dan preferensi perdagangan, strategi ini dapat dioptimalkan dalam aspek berikut:

  1. Sesuaikan parameter rata-rata bergerak untuk mengoptimalkan sensitivitas sistem indikator terhadap perubahan harga.

  2. Sesuaikan periode ATR dan faktor parameter indikator Super Trend untuk mengoptimalkan fungsinya.

  3. Sesuaikan titik stop loss untuk menyeimbangkan rasio risiko / imbalan per perdagangan. Stop loss berbasis waktu dapat lebih mengendalikan risiko kerugian per perdagangan.

  4. Menggabungkan indikator pendukung lainnya seperti Bollinger Bands dan KD untuk menilai lebih lanjut koreksi lokal dan peluang pembalikan.

  5. Gunakan open, close dll untuk memetakan pola candlestick untuk penilaian visual yang intuitif dari tindakan harga.

  6. Melakukan optimasi parameter dan backtesting untuk membandingkan hasil kombinasi parameter yang berbeda.

Kesimpulan: Strategi ini mengintegrasikan rata-rata bergerak dinamis, indikator Super Trend, Saluran Keltner dan beberapa indikator lainnya untuk mencapai perdagangan mengikuti tren otomatis. Keuntungan utama termasuk: generasi sinyal yang jelas, tingkat kemenangan yang relatif tinggi; melacak tren jangka panjang dan menangkap peluang arah; titik stop loss yang wajar untuk mengontrol risiko per perdagangan. Kombinasi multi-indikator yang efektif secara ketat menyaring breakout palsu dan memastikan kualitas sinyal perdagangan yang relatif tinggi, cocok untuk perdagangan otomatis. Melalui penyesuaian dan optimalisasi parameter, strategi ini dapat beradaptasi dengan lingkungan pasar yang berbeda dan membantu keputusan manual dalam menemukan peluang perdagangan.


/*backtest
start: 2023-11-24 00:00:00
end: 2023-12-24 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Scriptâ„¢ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © mahesh_linux1989

//@version=5
strategy("Intraday Trend Identifier with Dynamic Moving Averages, Super Trend, VWAP, and Keltner Signals", overlay=true, shorttitle="ITI Keltner")

// Input for Moving Average Type
maType = input("SMA", title="Moving Average Type")

// Input for SMA Length
smaLength = input.int(20, title="SMA Length", minval=1, maxval=200)

// Input for EMA Length
emaLength = input.int(20, title="EMA Length", minval=1, maxval=200)

// Selecting Moving Average
selectedMA = maType == "SMA" ? ta.sma(close, smaLength) : ta.ema(close, emaLength)

// Bullish conditions
bullish = high > high[1] and low > low[1] and close > high[1]

// Bearish conditions
bearish = high < high[1] and low < low[1] and close < low[1]

// Strategy logic
longCondition = bullish and not bearish and close > selectedMA
shortCondition = bearish and not bullish and close < selectedMA

if (longCondition)
    strategy.entry("Buy", strategy.long)

if (shortCondition)
    strategy.entry("Sell", strategy.short)

// Exit conditions
bullishExit = close < selectedMA
bearishExit = close > selectedMA

if (bullishExit)
    strategy.close("Buy")

if (bearishExit)
    strategy.close("Sell")

// Keltner Channels
basisKC = maType == "SMA" ? ta.sma(close, smaLength) : ta.ema(close, emaLength)
atrKC = ta.atr(14)
upperKC = basisKC + atrKC
lowerKC = basisKC - atrKC

// Super Trend
atrLengthST = input.int(7, title="ATR Length for Super Trend")
factorST = input.int(2, title="Factor for Super Trend")

atrValueST = ta.atr(atrLengthST)

var float upperST = na
var float lowerST = na

if (close[1] > upperST[1])
    upperST := close[1] - factorST * atrValueST
else
    upperST := close - factorST * atrValueST

if (close[1] < lowerST[1])
    lowerST := close[1] + factorST * atrValueST
else
    lowerST := close + factorST * atrValueST

// Potential Support and Resistance
potentialSupport = ta.lowest(low, smaLength)
potentialResistance = ta.highest(high, smaLength)

// VWAP
//vwapValue = ta.vwap(close, volume)

// Keltner Signals
buySignalKC = close > upperKC and close[1] <= upperKC[1]
sellSignalKC = close < lowerKC and close[1] >= lowerKC[1]

// Super Trend Signals
buySignalST = close > upperST and close[1] <= upperST[1]
sellSignalST = close < lowerST and close[1] >= lowerST[1]

// Plotting
plot(basisKC, color=color.gray, title="Keltner Channel Basis")
plot(upperKC, color=color.blue, title="Upper Keltner Channel")
plot(lowerKC, color=color.blue, title="Lower Keltner Channel")

plot(upperST, color=color.green, title="Super Trend Upper")
plot(lowerST, color=color.red, title="Super Trend Lower")

plot(potentialSupport, color=color.green, title="Potential Support")
plot(potentialResistance, color=color.red, title="Potential Resistance")

//plot(vwapValue, color=color.orange, title="VWAP")

// Plot Bullish and Bearish arrows
plotarrow(buySignalST ? 1 : na, colorup=color.green, offset=-1, title="Bullish Arrow ST")
plotarrow(sellSignalST ? -1 : na, colordown=color.red, offset=-1, title="Bearish Arrow ST")

plotarrow(buySignalKC ? 1 : na, colorup=color.blue, offset=-1, title="Bullish Arrow KC")
plotarrow(sellSignalKC ? -1 : na, colordown=color.orange, offset=-1, title="Bearish Arrow KC")

// Plot candlesticks
plot(open, color=color.gray)
plot(close, color=bullish ? color.green : bearish ? color.red : color.gray)
plot(high, color=bullish ? color.green : bearish ? color.red : color.gray)
plot(low, color=bullish ? color.green : bearish ? color.red : color.gray)

Lebih banyak