
Strategi ini dengan cerdik menggabungkan rata-rata bergerak bertimbangan volume transaksi (VWMA) dengan indikator yang relatif lemah (ML RSI) yang diperkuat dengan pembelajaran mesin, untuk menciptakan sistem perdagangan dengan probabilitas tinggi. Sistem ini memanfaatkan hubungan harga dengan volume transaksi dan indikator teknis yang dioptimalkan dengan pembelajaran mesin, untuk mengeluarkan perdagangan yang lebih akurat ketika tren pasar jelas. Logika inti dari strategi sinyal meliputi: sinyal beli dihasilkan ketika harga ditutup di atas VWMA dan nilai ML RSI lebih tinggi dari 60; sinyal jual dipicu ketika harga ditutup di bawah VWMA dan nilai ML RSI lebih rendah dari 40.
Prinsip inti dari strategi ini didasarkan pada sinergi antara dua indikator teknis utama:
Transaksi rata-rata bergerak tertimbang (VWMA)Berbeda dengan rata-rata bergerak tradisional, VWMA mempertimbangkan faktor volume transaksi dan memberikan bobot yang lebih besar pada harga pada saat volume transaksi tinggi, sehingga lebih akurat mencerminkan tren pasar. Dalam strategi ini, VWMA digunakan sebagai alat pengakuan tren kunci, yang menunjukkan tren bullish ketika harga berada di atas VWMA, sebaliknya adalah tren bullish.
Pembelajaran Mesin RSI (ML RSI)RSI: Mengurangi kebisingan RSI konvensional dan meningkatkan respons terhadap pergerakan harga dengan menggabungkan RSI tradisional dengan teknik smoothing canggih (seperti ALMA, EMA, dll.). Indikator ini membantu menyaring sinyal lemah dan meningkatkan konfirmasi tren. Secara khusus, strategi memungkinkan untuk memilih beberapa jenis rata-rata bergerak untuk RSI smoothing, termasuk SMA, EMA, DEMA, TEMA, WMA, VWMA, SMMA, HMA, LSMA, dan ALMA dll.
Logika pembelian dirancang dengan mekanisme konfirmasi tertunda: jika hanya memenuhi satu kondisi ((harga lebih tinggi dari VWMA atau ML RSI lebih tinggi dari 60), sistem akan menunggu konfirmasi kondisi kedua untuk masuk. Desain ini sangat mengurangi sinyal palsu dan meningkatkan tingkat keberhasilan perdagangan.
Logika penjualan relatif ketat: meminta harga ditutup di bawah VWMA dan ML RSI turun di bawah 40, sehingga dirancang untuk memastikan bahwa tren benar-benar berbalik sebelum keluar, untuk menghindari keluar prematur.
Sinyal komposit dikonfirmasiAnalisis multi-dimensi yang menggabungkan harga, volume transaksi, dan indikator teknis, mengurangi kemungkinan sinyal palsu dari satu indikator.
Pembelajaran MesinRSI yang dioptimalkan melalui berbagai teknik smoothing, memberikan sinyal yang lebih stabil dan kurang berisik, terutama penggunaan algoritma canggih seperti ALMA (Arnaud Legoux Moving Average), yang secara signifikan meningkatkan kualitas sinyal.
Konfigurasi parameter yang fleksibelStrategi memungkinkan penyesuaian parameter seperti panjang VWMA, metode smoothing RSI ML, nilai sigma ALMA, dan nilai terendah RSI masuk / keluar, sehingga pedagang dapat mengoptimalkan kinerja strategi sesuai dengan kondisi pasar yang berbeda.
Manajemen risiko yang jelasSistem Stop Loss dan Stop Loss terintegrasi 1.5% untuk memastikan bahwa risiko setiap transaksi dapat dikendalikan dan mencegah kerugian yang berlebihan dari satu transaksi.
Mekanisme konfirmasi ganda: Memerlukan dua indikator untuk memenuhi persyaratan secara bersamaan untuk menghasilkan sinyal perdagangan, yang secara signifikan mengurangi tingkat kesalahan penilaian.
Penundaan Konfirmasi DesainUntuk beberapa kondisi, strategi menunggu sampai semua kondisi terpenuhi untuk melakukan transaksi, mengurangi jumlah transaksi yang tidak perlu dan mengurangi biaya transaksi.
Risiko keterlambatanMeskipun ML RSI mengurangi kebisingan melalui metode pembelajaran mesin, VWMA sebagai rata-rata bergerak masih memiliki keterlambatan yang dapat menyebabkan keterlambatan sinyal di pasar yang sangat berfluktuasi. Solusinya adalah menyesuaikan panjang VWMA sesuai dengan volatilitas pasar, dan jika berfluktuasi besar dapat dipersingkat sesuai.
Parameter Trap OptimisasiParameter yang dioptimalkan secara berlebihan dapat menyebabkan over-fitting dan tidak berkinerja baik di dunia nyata. Dianjurkan untuk memverifikasi parameter dengan pengujian ke depan atau sampel uji yang beragam.
Keterbatasan stop loss tetapStop loss fixed stop loss of 1.5% mungkin tidak cocok untuk semua kondisi pasar, terutama di pasar yang sangat fluktuatif. Anda dapat mempertimbangkan untuk menyesuaikan stop loss level secara dinamis menggunakan ATR.
Pembatasan kerangka waktu tunggalStrategi hanya berjalan pada satu kerangka waktu dan mungkin melewatkan titik balik dari tren yang lebih besar. Disarankan untuk menggabungkan analisis multi-kerangka waktu untuk meningkatkan kualitas keputusan.
Masalah RSI yang tetap rendah: 60 dan 40 RSI tetap mungkin tidak cukup fleksibel dalam berbagai kondisi pasar. Pertimbangkan untuk menggunakan threshold dinamis atau menyesuaikan threshold berdasarkan volatilitas sejarah.
Risiko pasar horizontalDi pasar horizontal, harga sering melintasi VWMA dapat memicu overtrading dan meningkatkan biaya. Kondisi penyaringan tambahan dapat ditambahkan, seperti indikator volatilitas atau konfirmasi kekuatan tren.
Integrasi analisis multi-frame waktuIntroduksi pengesahan tren pada kerangka waktu yang lebih tinggi, yang hanya dapat diperdagangkan ketika tren yang lebih besar berlawanan arah, dapat meningkatkan tingkat kemenangan secara signifikan. Misalnya, Anda dapat menambahkan VWMA sundial sebagai filter tren dan hanya melakukan lebih banyak ketika sundial sedang tren ke atas.
Mekanisme Stop Loss DinamisStop loss yang diperuntukkan untuk stop loss yang diperuntukkan untuk stop loss yang diperuntukkan untuk stop loss yang diperuntukkan untuk stop loss yang diperuntukkan untuk stop loss yang diperuntukkan untuk stop loss yang diperuntukkan untuk stop loss yang diperuntukkan untuk stop loss yang diperuntukkan untuk stop loss yang diperuntukkan untuk stop loss yang diperuntukkan untuk stop loss yang diperuntukkan untuk stop loss yang diperuntukkan untuk stop loss yang diperuntukkan untuk stop loss yang diperuntukkan untuk stop loss yang diperuntukkan untuk stop loss yang diperuntukkan untuk stop loss yang diperuntukkan untuk stop loss yang diperuntukkan untuk stop loss.
Tingkat intensitas sinyalSkala kekuatan sinyal berdasarkan jarak dari ML RSI ke penurunan dan hubungan antara harga dan VWMA, dan sesuaikan ukuran posisi untuk manajemen dana yang lebih halus.
Bergabung dengan Identifikasi Lingkungan PasarMenambahkan indikator volatilitas (seperti ATR atau Bollinger Bandwidth) untuk mengidentifikasi kondisi pasar dan menerapkan parameter atau varian strategi yang berbeda dalam situasi yang berbeda.
Masukkan parameter optimasi pembelajaran mesin: Menggunakan teknologi pembelajaran mesin seperti algoritma genetik atau Bayesian optimization, secara otomatis menyesuaikan parameter kebijakan untuk menyesuaikan dengan lingkungan pasar yang berbeda, menghindari over-adaptasi buatan.
Peningkatan algoritma ML RSI: Cobalah algoritma smoothing yang lebih canggih atau tambahkan input indikator teknis lainnya, seperti volume transaksi, volatilitas harga, dan lain-lain, untuk meningkatkan kemampuan prediksi ML RSI lebih lanjut.
Menambahkan indikator sentimen pasarMengintegrasikan indikator sentimen pasar seperti VIX atau opsi yang menyiratkan volatilitas, menyesuaikan perilaku strategi saat sentimen pasar ekstrem, menghindari perdagangan berlebihan dalam lingkungan berisiko tinggi.
Sistem perdagangan dinamis VWMA yang menggabungkan RSI yang diperkuat dengan pembelajaran mesin adalah strategi perdagangan kuantitatif yang canggih yang menggabungkan analisis teknis tradisional dengan teknologi pembelajaran mesin modern. Informasi tren yang diberikan oleh rata-rata bergerak yang ditimbang dengan volume transaksi dikombinasikan dengan informasi momentum yang diberikan oleh indikator RSI yang dioptimalkan dengan pembelajaran mesin, strategi ini mampu menghasilkan perdagangan berkualitas tinggi ketika tren jelas.
Keunggulan utama dari strategi ini adalah mekanisme pengesahan ganda dan konfigurasi parameter yang fleksibel, yang memungkinkan untuk beradaptasi dengan lingkungan pasar yang berbeda. Di samping itu, mekanisme manajemen risiko yang dibangun di dalamnya memastikan bahwa risiko setiap transaksi dapat dikendalikan. Namun, strategi ini juga menghadapi risiko seperti keterlambatan, pembatasan parameter tetap, dan perlu dioptimalkan melalui analisis multi-frame time frame, mekanisme stop loss dinamis, dan sebagainya.
Strategi ini memberikan kerangka dasar yang kuat bagi pedagang kuantitatif, yang dapat disesuaikan dan dioptimalkan lebih lanjut sesuai dengan gaya perdagangan individu dan preferensi pasar. Strategi ini berpotensi untuk mempertahankan kinerja yang stabil di berbagai lingkungan pasar dengan menggabungkan teknologi dan metode yang lebih canggih, seperti analisis multi-frame timeframe, optimasi parameter pembelajaran mesin, dll.
/*backtest
start: 2024-07-08 00:00:00
end: 2025-07-04 08:00:00
period: 4d
basePeriod: 4d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("VWMA + ML RSI Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// === VWMA INPUTS ===
length = input.int(200, minval=1, title="VWMA Length")
src = input.source(hlc3, title="Source")
mult = input.float(3.0, minval=0.001, maxval=50, title="Multiplier")
// === VWMA CALCULATION ===
basis = ta.vwma(src, length)
plot(basis, title="VWMA Basis", color=color.fuchsia, linewidth=2)
// === ML RSI Actual Integration ===
rsiLength = input.int(14, title="RSI Length")
smoothingLength = input.int(3, "Smoothing Length")
mlMaType = input.string("ALMA", "MA Type", options=["SMA", "EMA", "DEMA", "TEMA", "WMA", "VWMA", "SMMA", "HMA", "LSMA", "ALMA"])
almaSigma = input.int(4, "ALMA Sigma")
// === Moving Average Function ===
calcMovingAverage(type, src, length, sigma) =>
float result = na
if type == "SMA"
result := ta.sma(src, length)
else if type == "EMA"
result := ta.ema(src, length)
else if type == "DEMA"
e1 = ta.ema(src, length)
e2 = ta.ema(e1, length)
result := 2 * e1 - e2
else if type == "TEMA"
e1 = ta.ema(src, length)
e2 = ta.ema(e1, length)
e3 = ta.ema(e2, length)
result := 3 * (e1 - e2) + e3
else if type == "WMA"
norm = 0.0
sum = 0.0
for i = 0 to length - 1
weight = (length - i)
norm := norm + weight
sum := sum + src[i] * weight
result := sum / norm
else if type == "VWMA"
result := ta.vwma(src, length)
else if type == "SMMA"
result := ta.rma(src, length)
else if type == "HMA"
result := ta.hma(src, length)
else if type == "LSMA"
result := ta.linreg(src, length, 0)
else if type == "ALMA"
result := ta.alma(src, length, 0.85, sigma)
result
// === Final ML RSI ===
baseRsi = ta.rsi(close, rsiLength)
smoothedRsi = calcMovingAverage(mlMaType, baseRsi, smoothingLength, almaSigma)
finalRsi = smoothedRsi
plot(finalRsi, title="ML RSI", color=color.orange)
// === Buy Condition Flags ===
buyReady = close > basis and finalRsi > 60
// Delayed condition trackers
var bool waitingForRsi = false
var bool waitingForClose = false
if close > basis and finalRsi <= 60
waitingForRsi := true
else if finalRsi > 60 and close <= basis
waitingForClose := true
// Reset flags when both conditions meet
if buyReady
waitingForRsi := false
waitingForClose := false
// Final Buy Condition
shouldBuy = buyReady or (waitingForRsi and finalRsi > 60 and close > basis) or (waitingForClose and close > basis and finalRsi > 60)
// === Strategy Entry ===
if shouldBuy and strategy.position_size == 0
strategy.entry("Long", strategy.long)
// === Take Profit and Stop Loss ===
takeLevel = strategy.position_avg_price * 1.015
stopLevel = strategy.position_avg_price * 0.985
// === Exit Conditions ===
sellCondition = close < basis and finalRsi < 40
if strategy.position_size > 0
strategy.exit("TP/SL", from_entry="Long", limit=takeLevel, stop=stopLevel)
if sellCondition
strategy.close("Long")
// === Buy Signal Plot ===
if shouldBuy and strategy.position_size == 0
label.new(bar_index, low, "BUY", style=label.style_label_up, color=color.green, textcolor=color.white)
// === Sell Signal Plot ===
if sellCondition and strategy.position_size > 0
label.new(bar_index, high, "SELL", style=label.style_label_down, color=color.red, textcolor=color.white)
// === Plotting Levels for Visuals ===
hline(60, "Buy ML RSI Threshold", color=color.green)
hline(40, "Sell ML RSI Threshold", color=color.red)