Purata bergerak dinamik dan strategi perdagangan saluran Keltner

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

img

Ringkasan: Strategi ini mengintegrasikan purata bergerak dinamik, penunjuk Super Trend, tahap sokongan dan rintangan yang berpotensi, dan Saluran Keltner untuk menjalankan penilaian pelbagai peringkat mengenai turun naik harga dan mencapai perdagangan trend yang automatik.

Logik Strategi:
Strategi ini menggunakan purata bergerak dinamik untuk menentukan arah trend harga jangka sederhana. Khususnya, berdasarkan pilihan pengguna, skrip mengamalkan Purata Bergerak Sederhana (SMA) atau Purata Bergerak Eksponen (EMA). Apabila harga tertinggi, harga terendah dan harga penutupan semuanya lebih tinggi daripada hari sebelumnya, ia menunjukkan trend bullish. Apabila semuanya lebih rendah daripada hari sebelumnya, ia menunjukkan trend penurunan. Berdasarkan ini, digabungkan dengan kedudukan purata bergerak dinamik, isyarat beli dan jual dihasilkan.

Selain itu, strategi ini juga menggunakan penunjuk Super Trend untuk mengenal pasti trend jangka panjang. Penunjuk Super Trend menggabungkan Julat Benar Purata (ATR) dan menghasilkan isyarat beli apabila harga berjalan di atas jalur atas sementara penutupan sebelumnya berada di bawah jalur atas. Ia menghasilkan isyarat jual apabila harga memecahkan di bawah jalur bawah sementara penutupan sebelumnya berada di atas jalur bawah.

Untuk menapis isyarat palsu, strategi ini menggunakan Saluran Keltner untuk merangka jalur saluran atas dan bawah. Digabungkan dengan julat saluran dan penunjuk Super Trend, ia dapat mencapai perdagangan mengikut trend. Khususnya, apabila harga memecahkan jalur atas ke atas dan penutupan semalam berada di bawah jalur atas, isyarat beli yang kuat dihasilkan. Apabila harga memecahkan jalur bawah dan penutupan semalam berada di atas jalur bawah, isyarat jual yang kuat dicetuskan.

Selain itu, skrip ini membantu merangka tahap sokongan dan rintangan yang berpotensi untuk menentukan tahap harga utama. Secara keseluruhan, gabungan beberapa penunjuk dan keadaan pecah yang ketat secara asas meningkatkan kualiti isyarat perdagangan.

Kelebihan:

  1. Gabungan beberapa penunjuk strategi menghasilkan isyarat perdagangan yang jelas. Saluran Keltner menentukan julat harga utama. Digabungkan dengan purata bergerak dinamik dan penunjuk Super Trend, ia menilai arah trend dengan ketat dan berkesan menapis pecah palsu di pasaran.

  2. Syarat penembusan yang ketat memastikan kualiti isyarat dagangan. Harga perlu benar-benar menembusi jalur saluran atas atau bawah, digabungkan dengan kedudukan hari semalam untuk mengelakkan perangkap.

  3. Indikator Super Trend boleh menangkap trend jangka panjang dan mengesan trend arah.

  4. Tahap sokongan dan rintangan yang berpotensi membantu menentukan titik harga utama dan menemui peluang pembalikan.

  5. Frekuensi perdagangan secara keseluruhan adalah sederhana tanpa perdagangan yang terlalu intensif. Ia hanya mengeluarkan isyarat berkualiti tinggi di titik kritikal dengan kadar kemenangan yang agak tinggi.

Risiko:

  1. Dalam pasaran pelbagai, penunjuk boleh mengeluarkan isyarat yang mengelirukan, yang mengakibatkan kerugian pecah yang tidak berkesan. Ini boleh dioptimumkan melalui penyesuaian parameter atau campur tangan manual ke kedudukan keluar.

  2. Titik stop loss apabila memecahkan jalur saluran mungkin terlalu luas dengan risiko tinggi setiap perdagangan. Julat stop loss boleh dikurangkan atau menggunakan stop loss berdasarkan masa.

  3. Apabila menjejaki trend jangka panjang, beberapa peluang pembalikan jangka sederhana mungkin terlepas.

  4. Sistem purata bergerak kadangkala bertindak balas lebih perlahan terhadap peristiwa tiba-tiba.

Arahan pengoptimuman: Berdasarkan persekitaran pasaran yang berbeza dan keutamaan perdagangan, strategi ini boleh dioptimumkan dalam aspek berikut:

  1. Sesuaikan parameter purata bergerak untuk mengoptimumkan kepekaan sistem penunjuk terhadap perubahan harga.

  2. Sesuaikan tempoh ATR dan parameter faktor penunjuk Super Trend untuk mengoptimumkan fungsinya.

  3. Sesuaikan titik stop loss untuk mengimbangi nisbah risiko / ganjaran setiap perdagangan. Stop loss berdasarkan masa dapat mengawal risiko kerugian setiap perdagangan.

  4. Menggabungkan penunjuk bantuan lain seperti Bollinger Bands dan KD untuk menilai lebih lanjut pembetulan tempatan dan peluang pembalikan.

  5. Menggunakan buka, tutup dan lain-lain untuk merangka corak candlestick untuk penilaian visual intuitif tindakan harga.

  6. Melakukan pengoptimuman parameter dan backtesting untuk membandingkan hasil gabungan parameter yang berbeza.

Kesimpulan: Strategi ini mengintegrasikan purata bergerak dinamik, penunjuk Super Trend, Saluran Keltner dan pelbagai penunjuk lain untuk mencapai perdagangan trend berikut automatik. Kelebihan utama termasuk: penjanaan isyarat yang jelas, kadar kemenangan yang agak tinggi; mengesan trend jangka panjang dan menangkap peluang arah; titik stop loss yang munasabah untuk mengawal risiko setiap perdagangan. Gabungan multi-penunjuk yang berkesan menapis secara ketat pecah palsu dan memastikan kualiti isyarat perdagangan yang agak tinggi, sesuai untuk perdagangan automatik. Melalui penyesuaian parameter dan pengoptimuman, strategi ini dapat menyesuaikan diri dengan persekitaran pasaran yang berbeza dan membantu keputusan manual dalam mencari 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 lanjut