
Strategi Kuantitatif “Multi-Indikator Fusion POMDP Inspired Trading System” adalah metode perdagangan yang didasarkan pada analisis teknis dan proses keputusan Markov yang dapat diamati sebagian. Strategi ini dengan cerdik menggabungkan indikator acak yang relatif kuat dan lemah (Stochastic RSI), indikator arus kas (MFI), Bollinger Bands (Bollinger Bands) dan indikator penyebaran garis rata-rata bergerak (MACD) untuk menghasilkan sinyal beli dan jual.
Prinsip inti dari strategi ini didasarkan pada gagasan tentang proses keputusan Markov yang dapat diamati sebagian (POMDP), yang menganggap pasar sebagai sistem yang dapat dilihat sebagian dari statusnya. Status pasar dapat diamati melalui indikator teknis utama berikut:
Bollinger Bands (dalam bahasa Inggris): Menggunakan rata-rata bergerak sederhana 20 periode sebagai lintasan tengah, dengan deviasi standar 2.0, membentuk lintasan ke atas dan ke bawah untuk mengidentifikasi interval fluktuasi harga.
Indikator Relatif Lemah Random (RSI Stokastik): Menggabungkan keuntungan dari RSI dan indikator acak, menetapkan panjang 14 siklus dan parameter smoothing 3 siklus untuk mengidentifikasi overbought overbought status. Ketika K-nilai di bawah 30 dianggap oversold, di atas 70 dianggap overbought.
Indikator aliran dana (MFI)MFI di bawah 40 dianggap sebagai sinyal oversell, dan di atas 60 sebagai sinyal overbuy.
Indikator MACD: Menggunakan pengaturan parameter 12/26/9, hubungan garis MACD dengan garis sinyal digunakan untuk mengkonfirmasi arah tren.
Aturan pengambilan keputusan dalam strategi ini adalah sebagai berikut:
Strategi ini juga mengimplementasikan mekanisme penarikan otomatis berbasis waktu, dengan pengaturan posisi yang otomatis dipadamkan setelah 5 periode kepemilikan, yang secara efektif mengendalikan risiko jangka waktu kepemilikan.
Konfirmasi sinyal multidimensiDengan menggabungkan beberapa indikator teknis (Stochastic RSI, MFI, MACD), strategi dapat melihat kondisi pasar dari berbagai sudut pandang, mengurangi risiko sinyal yang menyesatkan yang mungkin dibawa oleh satu indikator.
Adaptasi Kerangka POMDPPendahuluan pemikiran POMDP memungkinkan strategi untuk membuat keputusan yang relatif optimal di bawah kondisi ketidakpastian dan sebagian observabilitas, lebih sesuai dengan kondisi pasar yang sebenarnya.
Pengendalian Risiko yang JelasDengan menetapkan periode keluar yang tetap (misalnya, 5 periode), strategi ini memungkinkan pengendalian risiko dalam dimensi waktu dan menghindari perluasan kerugian dari tren negatif jangka panjang.
Kompensasi Indikator TeknisStochastic RSI mencerminkan pergerakan harga, MFI menggabungkan informasi harga dan volume transaksi, MACD menangkap perubahan tren, dan Burin Band mendefinisikan rentang fluktuasi.
Stabilitas implementasi kode: Strategi menggunakan math.sum bukan ta.sum untuk menghitung MFI, mengoreksi kemungkinan kesalahan perhitungan dan meningkatkan stabilitas strategi.
Otomatisasi kinerjaImplementasi Pine Script berbasis TradingView memungkinkan strategi untuk secara otomatis menghasilkan sinyal perdagangan dan mengeksekusi, mengurangi intervensi manusia dan pengaruh emosi.
Keterbatasan batas overbought dan oversoldStrategi menggunakan overbought dan oversold thresholds yang tetap (30⁄70 untuk stochastic RSI dan 40⁄60 untuk MFI), yang mungkin tidak selalu optimal dalam berbagai kondisi pasar dan produk yang berbeda, yang dapat menyebabkan penurunan kualitas sinyal.
Waktu adalah pedang bermata dua untuk keluar.: mekanisme keluar dari 5 siklus tetap, meskipun mengendalikan risiko, tetapi juga dapat keluar dari tren menguntungkan prematur, membatasi potensi keuntungan.
Risiko redundansi multi-indikatorMeskipun beberapa indikator memberikan konfirmasi multi-dimensi, mungkin ada beberapa keterkaitan dan redundansi antara indikator, yang dapat menyebabkan bias penguatan sinyal dalam kondisi pasar tertentu.
Adaptasi pasar yang kurangStrategi ini didasarkan pada sinyal overbought dan oversold dan reversal, yang dapat menghasilkan terlalu banyak sinyal salah di pasar yang sedang tren yang kuat, yang menyebabkan perdagangan yang sering dan biaya yang tidak perlu.
Parameter untuk mengoptimalkan ketergantunganEfektivitas strategi sangat bergantung pada pengaturan parameter indikator, dan kombinasi parameter yang berbeda mungkin diperlukan dalam kondisi pasar yang berbeda, meningkatkan kompleksitas pemeliharaan dan penyesuaian strategi.
Kurangnya mekanisme adaptasi volatilitasStrategi ini tidak memiliki mekanisme untuk beradaptasi dengan perubahan volatilitas pasar, dan dapat menghasilkan lebih banyak sinyal palsu dalam lingkungan volatilitas yang tinggi.
Mekanisme penyesuaian parameter dinamisIntroduksi mekanisme penyesuaian parameter berdasarkan kondisi pasar, seperti penyesuaian deviasi standar Brinbands berdasarkan fluktuasi, atau penyesuaian overbought dan oversold thresholds berdasarkan intensitas tren pasar, meningkatkan kemampuan strategi untuk beradaptasi dalam berbagai kondisi pasar.
Mekanisme stop loss yang sempurnaSelain mekanisme keluar dari dimensi waktu, menambahkan mekanisme stop loss berdasarkan perubahan harga, seperti pengaturan titik stop loss berdasarkan ATR, meningkatkan manajemen risiko secara menyeluruh.
Filter lingkungan pasarMenambahkan modul untuk mengidentifikasi kondisi pasar, seperti indikator kekuatan tren atau indikator volatilitas, mengurangi atau menghentikan perdagangan dalam kondisi pasar yang tidak sesuai dengan strategi, dan menghindari terlalu banyak perdagangan dalam kondisi yang tidak menguntungkan.
Sistem penilaian kualitas sinyal: Mengembangkan mekanisme penilaian kualitas sinyal, menilai sinyal berdasarkan faktor-faktor seperti tingkat konsistensi beberapa indikator, lingkungan pasar, keberhasilan sinyal sejarah, hanya melakukan sinyal berkualitas tinggi, meningkatkan efektivitas strategi.
Pembelajaran MesinMenggabungkan kerangka POMDP dengan metode pembelajaran mesin untuk mengoptimalkan strategi pengambilan keputusan melalui pelatihan data historis, sehingga sistem dapat belajar dan memperbaiki dari transaksi masa lalu.
Strategi pengelolaan dana yang optimalMenggunakan mekanisme manajemen posisi dinamis untuk menyesuaikan skala perdagangan berdasarkan kekuatan sinyal, kondisi pasar, dan risiko akun, untuk mencapai manajemen dana yang lebih ilmiah.
“Multi-indicator Fusion POMDP Enlightened Trading System” adalah strategi trading kuantitatif yang menggabungkan berbagai indikator teknis dan kerangka keputusan POMDP. Strategi ini, melalui sinergi indikator seperti Stochastic RSI, MFI, MACD, dan Brin Belt, menyelesaikan sebagian dari masalah observabilitas pasar, memberikan konfirmasi sinyal multi-dimensi untuk keputusan perdagangan.
Keunggulan utama dari strategi ini adalah kemampuan untuk mengamati pasar dari berbagai sudut dan mekanisme pengendalian risiko yang jelas, tetapi juga menghadapi tantangan ketergantungan optimasi parameter dan ketidakmampuan adaptasi terhadap beberapa lingkungan pasar. Strategi ini memiliki potensi untuk meningkatkan stabilitas dan kemampuan adaptasi lebih lanjut dengan memperkenalkan penyesuaian parameter dinamis, memperbaiki mekanisme stop loss, dan menambahkan filter lingkungan pasar.
Secara keseluruhan, ini adalah sistem perdagangan kuantitatif yang dirancang dengan logika yang masuk akal dan jelas, sangat cocok untuk pedagang yang memiliki kemampuan memprediksi pasar tetapi ingin mengendalikan risiko. Dengan terus-menerus mengoptimalkan dan beradaptasi dengan lingkungan pasar yang berbeda, strategi ini dapat menjadi alat yang efektif dalam toolkit pedagang.
/*backtest
start: 2024-07-22 00:00:00
end: 2025-07-20 08:00:00
period: 3h
basePeriod: 3h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT","balance":2000000}]
*/
//@version=6
strategy("Debit Spread POMDP‑Inspired Strategy", overlay=true, margin_long=100, margin_short=100)
// ——— Constants
const int K_OVERSOLD = 30
const int K_OVERBOUGHT = 70
const int MFI_OVERSOLD = 40
const int MFI_OVERBOUGHT = 60
const int EXIT_BARS = 5
// ——— User inputs
stochLength = input.int(14, "Stochastic RSI length")
stochSmooth = input.int(3, "Stochastic smoothing")
mfiLength = input.int(14, "MFI length")
bbLength = input.int(20, "Bollinger length")
bbStdDev = input.float(2.0, "Bollinger std dev")
macdFast = input.int(12, "MACD fast length")
macdSlow = input.int(26, "MACD slow length")
macdSignal = input.int(9, "MACD signal length")
// ——— Bar index tracking for exits
var int callEntryBar = na
var int putEntryBar = na
// ——— Bollinger Bands
basis = ta.sma(close, bbLength)
upper = basis + bbStdDev * ta.stdev(close, bbLength)
lower = basis - bbStdDev * ta.stdev(close, bbLength)
// ——— Stochastic RSI
rsi = ta.rsi(close, stochLength)
k = ta.sma(ta.stoch(rsi, rsi, rsi, stochLength), stochSmooth)
d = ta.sma(k, stochSmooth)
// ——— Manual MFI calculation (FIXED: using math.sum)
tp = (high + low + close) / 3.0
rawMF = tp * volume
posFlow = (tp > tp[1] ? rawMF : 0.0)
negFlow = (tp < tp[1] ? rawMF : 0.0)
posMF = math.sum(posFlow, mfiLength) // FIXED: math.sum instead of ta.sum
negMF = math.sum(negFlow, mfiLength) // FIXED: math.sum instead of ta.sum
moneyRatio = negMF != 0 ? posMF / negMF : 0.0
mfi = negMF != 0 ? 100 - 100 / (1 + moneyRatio) : 0.0
// ——— Manual MACD calculation
fastMA = ta.ema(close, macdFast)
slowMA = ta.ema(close, macdSlow)
macdLine = fastMA - slowMA
signalLine = ta.ema(macdLine, macdSignal)
// ——— POMDP‑inspired decision rules
bullCondition = ((k < K_OVERSOLD) or (mfi < MFI_OVERSOLD)) and (macdLine > signalLine)
bearCondition = ((k > K_OVERBOUGHT) or (mfi > MFI_OVERBOUGHT)) and (macdLine < signalLine)
if bullCondition
strategy.entry("CallDebit", strategy.long)
callEntryBar := bar_index // Track entry bar
if bearCondition
strategy.entry("PutDebit", strategy.short)
putEntryBar := bar_index // Track entry bar
// FIXED: Manual time-based exits using bar_index
if not na(callEntryBar) and bar_index >= callEntryBar + EXIT_BARS
strategy.close("CallDebit")
callEntryBar := na
if not na(putEntryBar) and bar_index >= putEntryBar + EXIT_BARS
strategy.close("PutDebit")
putEntryBar := na
// ——— Plots
plot(basis, color=color.gray, linewidth=1, title="BB Basis")
plot(upper, color=color.orange, linewidth=1, title="BB Upper")
plot(lower, color=color.orange, linewidth=1, title="BB Lower")
plot(k, title="%K", color=color.blue)
plot(d, title="%D", color=color.purple)
plot(mfi, title="MFI", color=color.green)
plot(macdLine - signalLine, title="MACD Histogram", color=color.red, style=plot.style_columns)