Strategi ini adalah sistem perdagangan analisis teknikal yang komprehensif yang menggabungkan beberapa petunjuk teknikal yang biasa digunakan untuk menghasilkan isyarat jual beli. Strategi ini menggunakan rata-rata bergerak (MA), indeks kekuatan relatif (RSI), Bollinger Bands (Bollinger Bands), petunjuk Supertrend dan harga purata bertimbangan kuantitatif (VWAP) untuk menilai trend pasaran dan membuat keputusan perdagangan melalui persilangan dan penembusan indikator ini.
Moving Average ((MA): Strategi menggunakan dua indeks moving average ((EMA), iaitu jangka pendek ((9 kitaran) dan jangka panjang ((21 kitaran)). Apabila garis purata jangka pendek melintasi garis purata jangka panjang, ia dianggap sebagai isyarat membeli; sebaliknya, apabila garis purata jangka pendek melintasi garis purata jangka panjang, ia dianggap sebagai isyarat menjual.
Indeks Relatif Lemah ((RSI): Strategi menggunakan penunjuk RSI 14 kitaran. Walaupun kod tidak menggunakan RSI secara langsung untuk menghasilkan isyarat perdagangan, RSI boleh digunakan untuk menentukan sama ada pasaran berada dalam keadaan overbought atau oversold, memberikan rujukan tambahan untuk penunjuk lain.
Bollinger Bands: Strategi menggunakan Bollinger Bands 20 kitaran, bandwidth adalah 2 kali standard perbezaan. Bollinger Bands boleh digunakan untuk menentukan ruang pergerakan harga, dan apabila harga menyentuh atau menembusi ke bawah, mungkin menunjukkan pembalikan trend.
Indikator Supertrend: Ini adalah petunjuk trend yang dikira berdasarkan ATR (Rang Real Rata-rata). Apabila garis Supertrend bergerak dari bawah harga ke atas, ia menghasilkan isyarat beli; apabila bergerak dari atas ke bawah, ia menghasilkan isyarat jual.
VWAP: VWAP dipetik pada carta yang boleh digunakan untuk menentukan di mana harga semasa terletak berbanding dengan purata harian, memberikan rujukan tambahan untuk membuat keputusan perdagangan.
Warna latar belakang: Strategi mengubah warna latar belakang carta mengikut arah trend indikator Supertrend, hijau menunjukkan trend menaik, merah menunjukkan trend menurun, secara intuitif menunjukkan trend keseluruhan pasaran.
Isyarat perdagangan akhir strategi ini adalah berdasarkan penyambungan antara purata bergerak jangka pendek dan jangka panjang. Isyarat beli dicetuskan apabila rata-rata jangka pendek melintasi rata-rata jangka panjang; Isyarat jual dicetuskan apabila rata-rata jangka pendek melintasi rata-rata jangka panjang.
Analisis komprehensif pelbagai petunjuk: Dengan menggabungkan beberapa petunjuk teknikal, strategi dapat menganalisis pasaran dari pelbagai sudut, meningkatkan kebolehpercayaan dan ketepatan isyarat. Kaedah ini dapat mengurangkan isyarat palsu yang mungkin dibawa oleh satu petunjuk.
Pengesanan Trend: Strategi ini berpusat pada trend pasaran, yang membantu menangkap pergerakan pasaran yang besar dan meningkatkan peluang keuntungan.
Kesan visual: Strategi memetakan pelbagai petunjuk dan isyarat di atas carta, termasuk perubahan warna latar belakang, yang membolehkan peniaga memahami keadaan pasaran dan peluang perdagangan yang berpotensi secara intuitif.
Fleksibiliti: Strategi menyediakan pelbagai parameter yang boleh disesuaikan, yang membolehkan peniaga mengoptimumkan mengikut keadaan pasaran yang berbeza dan keutamaan peribadi.
Analisis pasaran yang menyeluruh: Strategi ini dapat memberikan analisis pasaran yang menyeluruh dengan mempertimbangkan trend harga (moving average), turun naik (bulling band), momentum (RSI) dan jumlah transaksi (VWAP).
Perdagangan automatik: Strategi membolehkan perdagangan automatik di platform TradingView, mengurangkan kesan emosi buatan manusia, meningkatkan objektiviti dan disiplin perdagangan.
Kelebihan pengoptimuman: Terdapat risiko kelebihan pengoptimuman kerana strategi mengandungi banyak petunjuk dan parameter. Kelebihan pengoptimuman mungkin menyebabkan strategi berfungsi dengan baik pada data sejarah, tetapi tidak berfungsi dengan baik dalam perdagangan sebenar.
Lagging isyarat: purata bergerak dan lain-lain petunjuk teknikal biasanya mempunyai lagging, yang boleh menyebabkan pengunduran yang lebih besar berhampiran titik peralihan trend.
Perdagangan yang kerap: Dalam pasaran yang bergolak, purata bergerak mungkin sering bersilang, menyebabkan terlalu banyak isyarat perdagangan dan kos perdagangan yang tinggi.
Perubahan keadaan pasaran: Strategi mungkin berfungsi dengan baik dalam keadaan pasaran tertentu, tetapi keberkesanannya mungkin menurun dengan ketara apabila keadaan pasaran berubah.
Konflik penunjuk: Pelbagai penunjuk mungkin menghasilkan isyarat yang bertentangan pada masa-masa tertentu, yang boleh menyebabkan kesukaran dan ketidakpastian dalam membuat keputusan perdagangan.
Kekurangan pengurusan risiko: Kod tidak mempunyai tetapan berhenti dan henti yang jelas, yang boleh menyebabkan kerugian yang berlebihan dalam keadaan yang tidak baik.
Memperkenalkan parameter dinamik: Anda boleh mempertimbangkan untuk menyesuaikan parameter purata bergerak dan Brinband mengikut dinamik turun naik pasaran untuk menyesuaikan diri dengan keadaan pasaran yang berbeza.
Tambah syarat penapisan: Syarat penapisan tambahan boleh ditambah, seperti pengesahan jumlah dagangan atau penunjuk kekuatan trend, untuk mengurangkan isyarat palsu dan meningkatkan kualiti perdagangan.
Mempunyai hentian dan hentian: Menambah mekanisme hentian dan hentian yang sesuai dalam strategi untuk mengawal risiko dan mengunci keuntungan.
Optimumkan masa masuk: Anda boleh mempertimbangkan untuk mengoptimumkan masa masuk dengan menggabungkan isyarat RSI dan Bollinger Bands, seperti masuk di kawasan RSI overbought / oversold dan harga berhampiran dengan sempadan Bollinger Bands.
Bergabung dengan pengenalan rejim pasaran: mengenal pasti keadaan pasaran yang berbeza (trend, getaran) dan menggunakan strategi perdagangan yang berbeza dalam keadaan yang berbeza.
Memperbaiki penggunaan penunjuk Supertrend: Anda boleh mempertimbangkan untuk menggunakan penunjuk Supertrend sebagai alat penilaian trend utama, dan bukan hanya untuk perubahan warna latar belakang.
Menambah penunjuk sentimen: memperkenalkan penunjuk sentimen pasaran berdasarkan jumlah transaksi atau kadar turun naik untuk membantu menilai keadaan keseluruhan pasaran dan titik perubahan yang berpotensi.
Menerapkan pengurusan kedudukan: menyesuaikan saiz kedudukan mengikut kekuatan isyarat dan dinamik turun naik pasaran untuk mengoptimumkan nisbah risiko-keuntungan.
“Strategi Pemantauan Trend Portfolio Multi-Indikator” adalah sistem perdagangan analisis teknikal yang komprehensif yang menghasilkan isyarat perdagangan dengan menggabungkan beberapa petunjuk teknikal yang biasa digunakan. Kelebihan utama strategi ini adalah kaedah analisis pasaran yang komprehensif dan keupayaan pemantauan trend, yang dapat menilai keadaan pasaran dari pelbagai sudut dan membuat keputusan perdagangan. Walau bagaimanapun, strategi ini juga menghadapi risiko seperti pengoptimuman berlebihan, kelewatan isyarat dan perdagangan yang kerap.
Untuk meningkatkan lagi keberkesanan strategi, langkah-langkah pengoptimuman seperti memperkenalkan penyesuaian parameter dinamik, menambah syarat penapisan, mewujudkan mekanisme hentian kerugian, mengoptimumkan masa masuk, mengenali rejim pasaran. Selain itu, penggunaan indikator Supertrend yang lebih baik, penambahan indikator sentimen dan pengurusan kedudukan yang berkesan juga merupakan arah yang patut dijelajahi.
Secara keseluruhannya, strategi ini menyediakan pedagang dengan kerangka analisis teknikal yang komprehensif, tetapi dalam aplikasi sebenar, penyesuaian dan pengoptimuman yang sesuai diperlukan berdasarkan keadaan pasaran tertentu dan pilihan risiko peribadi. Dengan ujian dan penambahbaikan yang berterusan, strategi ini berpotensi menjadi alat perdagangan yang kuat untuk membantu pedagang membuat keputusan yang lebih bijak dalam pasaran yang berubah-ubah yang kompleks.
/*backtest
start: 2023-06-15 00:00:00
end: 2024-06-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Comb Backtest Debug", overlay=true)
// Input Parameters
lengthMA1 = input.int(9, title="Short-term MA Length")
lengthMA2 = input.int(21, title="Long-term MA Length")
lengthRSI = input.int(14, title="RSI Length")
lengthBB = input.int(20, title="Bollinger Bands Length")
multBB = input.float(2.0, title="Bollinger Bands Multiplier")
lengthSupertrend = input.int(3, title="Supertrend Length")
multSupertrend = input.float(3.0, title="Supertrend Multiplier")
Periods = input.int(10, title="ATR Period")
src = input.source(hl2, title="Source")
Multiplier = input.float(3.0, title="ATR Multiplier", step=0.1)
changeATR = input.bool(true, title="Change ATR Calculation Method?")
highlighting = input.bool(true, title="Highlighter On/Off?")
// Moving Averages
ma1 = ta.ema(close, lengthMA1)
ma2 = ta.ema(close, lengthMA2)
// RSI
rsi = ta.rsi(close, lengthRSI)
// Bollinger Bands
basis = ta.sma(close, lengthBB)
dev = multBB * ta.stdev(close, lengthBB)
upperBB = basis + dev
lowerBB = basis - dev
// ATR Calculation
atr2 = ta.sma(ta.tr, Periods)
atr = changeATR ? ta.atr(Periods) : atr2
// Supertrend Calculation
up = src - (Multiplier * atr)
up1 = nz(up[1], up)
up := close[1] > up1 ? math.max(up, up1) : up
dn = src + (Multiplier * atr)
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? math.min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
// VWAP
vwap = ta.vwap(close)
// Plotting Supertrend
upPlot = plot(trend == 1 ? up : na, title="Up Trend", style=plot.style_line, linewidth=2, color=color.new(color.green, 70))
dnPlot = plot(trend == 1 ? na : dn, title="Down Trend", style=plot.style_line, linewidth=2, color=color.new(color.red, 70))
// Buy and Sell Signals for Supertrend
buySignal = trend == 1 and trend[1] == -1
sellSignal = trend == -1 and trend[1] == 1
plotshape(buySignal ? up : na, title="UpTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(color.green, 70), text="BUY", transp=0)
plotshape(sellSignal ? dn : na, title="DownTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(color.red, 70), text="SELL", transp=0)
// Highlighting the Trend
mPlot = plot(ohlc4, title="", style=plot.style_circles, linewidth=0)
longFillColor = highlighting ? (trend == 1 ? color.new(color.green, 90) : color.white) : color.white
shortFillColor = highlighting ? (trend == -1 ? color.new(color.red, 90) : color.white) : color.white
fill(mPlot, upPlot, title="UpTrend Highlighter", color=longFillColor)
fill(mPlot, dnPlot, title="DownTrend Highlighter", color=shortFillColor)
// Plot Moving Averages
plot(ma1, title="Short-term MA", color=color.new(color.blue, 70), linewidth=2)
plot(ma2, title="Long-term MA", color=color.new(color.red, 70), linewidth=2)
// Plot RSI
hline(70, "Overbought", color=color.new(color.red, 70))
hline(30, "Oversold", color=color.new(color.green, 70))
plot(rsi, title="RSI", color=color.new(color.purple, 70), linewidth=2)
// Plot Bollinger Bands
plot(basis, title="BB Basis", color=color.new(color.orange, 70))
p1 = plot(upperBB, title="BB Upper", color=color.new(color.gray, 70))
p2 = plot(lowerBB, title="BB Lower", color=color.new(color.gray, 70))
fill(p1, p2, color=color.new(color.silver, 90), transp=90)
// Plot VWAP
plot(vwap, title="VWAP", color=color.new(color.green, 70), linewidth=2)
// Background Color Based on Supertrend
bgcolor(trend == 1 ? color.new(color.green, 90) : color.new(color.red, 90), title="Background Color", transp=90)
// Simplified Buy and Sell Conditions for Testing
buyCondition = ta.crossover(ma1, ma2)
sellCondition = ta.crossunder(ma1, ma2)
// Debugging plots
plotchar(buyCondition, char='B', location=location.belowbar, color=color.new(color.green, 70), size=size.small, title="Buy Condition")
plotchar(sellCondition, char='S', location=location.abovebar, color=color.new(color.red, 70), size=size.small, title="Sell Condition")
// Strategy orders for backtesting
if (buyCondition)
strategy.entry("Buy", strategy.long)
if (sellCondition)
strategy.entry("Sell", strategy.short)
// Alerts for Combined Buy and Sell Conditions
alertcondition(buyCondition, title="Combined Buy Alert", message="Combined Buy Signal")
alertcondition(sellCondition, title="Combined Sell Alert", message="Combined Sell Signal")
alertcondition(buySignal, title="SuperTrend Buy", message="SuperTrend Buy!")
alertcondition(sellSignal, title="SuperTrend Sell", message="SuperTrend Sell!")
changeCond = trend != trend[1]
alertcondition(changeCond, title="SuperTrend Direction Change", message="SuperTrend has changed direction!")