Strategi perdagangan kuantitatif terobosan pita sempit rata-rata pergerakan ganda kemiringan dinamis

SMA ATR RR Elephant Bar Color Change Narrow Band Slope Angle
Tanggal Pembuatan: 2025-05-14 15:19:51 Akhirnya memodifikasi: 2025-05-14 15:19:51
menyalin: 0 Jumlah klik: 281
2
fokus pada
319
Pengikut

Strategi perdagangan kuantitatif terobosan pita sempit rata-rata pergerakan ganda kemiringan dinamis Strategi perdagangan kuantitatif terobosan pita sempit rata-rata pergerakan ganda kemiringan dinamis

Ringkasan

Strategi ini menggunakan hubungan antara jangka pendek (20 siklus) dan jangka panjang (200 siklus) Simple Moving Average (SMA), menggabungkan dinamika harga, volatilitas, dan bentuk kejatuhan, untuk mencari peluang perdagangan yang memiliki probabilitas tinggi untuk terobosan di daerah sempit. Strategi ini memiliki ciri-ciri utama di dalam daerah sempit yang terkait erat dengan rata-rata bergerak, mengidentifikasi “tiang gajah” dan sinyal warna yang memiliki arah yang kuat, sambil memanfaatkan tingkat stop loss dan pengelolaan tingkat pengembalian risiko yang telah ditentukan.

Prinsip Strategi

Prinsip-prinsip inti dari strategi ini didasarkan pada sinergi dari beberapa faktor kunci berikut:

  1. Sistem rata-rata bergerak gandaStrategi: Menggunakan 20 siklus SMA dan 200 siklus SMA untuk membuat kerangka perdagangan. Sistem mencari sinyal perdagangan potensial ketika jarak antara dua garis rata-rata relatif kecil (dalam keadaan band sempit, selisihnya kurang dari 1,5%).

  2. Verifikasi rata-rata kemiringanStrategi: Dengan menghitung sudut SMA 20 periode (dengan menggunakan fungsi inverse), memastikan bahwa pasar memiliki momentum yang cukup, dan hanya mempertimbangkan masuk jika sudut lebih besar dari 30 derajat.

  3. Jenis sinyal masuk

    • Sinyal masuk utama ((“pilar gajah”): ini adalah sinyal tindakan harga yang kuat, yang membutuhkan panjang pilar lebih dari 1,5 kali ATR, dan dengan titik tinggi lebih tinggi dari pilar sebelumnya ((multihead) atau titik rendah lebih rendah dari pilar sebelumnya ((head)).
    • Sinyal masuk sekunder ((“perubahan warna”): ini adalah sinyal tambahan yang dipicu ketika warna meja berubah dari merah menjadi hijau ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
  4. Kerangka Manajemen Risiko

    • Stop loss setup: Stop loss setup untuk multi-head trading di ATR dua kali lipat di bawah titik terendah atau dua kali lipat di bawah harga masuk; Stop loss setup untuk head trading kosong di ATR dua kali lipat di atas titik tertinggi atau dua kali lipat di atas harga masuk.
    • Pendapatan bertingkat: Menggunakan rasio risiko-pengembalian 2.5R dan 4.0R untuk menetapkan dua harga target, dengan stop loss bergerak ke titik keseimbangan untung-rugi ketika harga target pertama tercapai.
    • Manajemen Posisi: 10% dari dana akun digunakan untuk setiap transaksi, dan maksimum dua kali overlay yang diizinkan.
  5. Pertimbangan kondisi pasarStrategi untuk menilai kondisi pasar dengan menghitung jarak relatif antara dua garis rata:

    • Kondisi jalur sempit: jarak rata-rata kurang dari 1.5%, cocok untuk mencari peluang terobosan.
    • Status broadband: jarak rata-rata lebih dari 2%, menunjukkan tren telah terbentuk, tidak cocok untuk entri baru.

Syarat masuk multihead: Keadaan narrow band + Slip efektif + Harga penutupan lebih tinggi dari SMA20 + SMA20 lebih tinggi dari SMA200 + bentuk tiang gajah. Syarat masuk kosong: Keadaan narrow band + Slip efektif + Harga penutupan di bawah SMA20 + SMA20 di bawah SMA200 + bentuk tiang gajah.

Keunggulan Strategis

Dengan analisis mendalam dari kode, strategi ini memiliki keuntungan yang signifikan sebagai berikut:

  1. Mekanisme multiple confirmationStrategi ini menggabungkan faktor konfirmasi dari beberapa dimensi, seperti hubungan rata-rata, kemiringan rata-rata, posisi harga, dan bentuk kejatuhan khusus, yang secara efektif memfilter sinyal berkualitas rendah dan meningkatkan kualitas transaksi.

  2. Adaptasi dengan kondisi pasarDengan membedakan status narrowband dan broadband, strategi dapat mencari peluang dalam kondisi pasar yang paling sesuai dan menghindari mengejar tinggi dan rendah dalam tren yang telah berkembang.

  3. Manajemen risiko dinamis: Menggunakan ATR sebagai alat untuk mengukur volatilitas, memastikan bahwa target stop loss dan profit dapat disesuaikan dengan dinamika volatilitas pasar saat ini, bukan menggunakan poin tetap.

  4. Strategi untuk mendapatkan keuntungan bertingkatDengan menggunakan strategi dua tahapan, sebagian keuntungan dan keuntungan akhir, Anda dapat mengunci sebagian keuntungan Anda dalam kondisi yang menguntungkan, dan tidak akan kehilangan tren besar dengan meninggalkan pasar terlalu dini.

  5. Mekanisme Peningkatan Posisi Cerdas: Memberikan kesempatan untuk meningkatkan posisi dengan sinyal perubahan warna, memungkinkan untuk meningkatkan posisi dalam tren yang sama hingga dua kali, mengoptimalkan efisiensi pemanfaatan modal.

  6. Perlindungan Stop Loss MobileStop loss akan secara otomatis dipindahkan ke titik keseimbangan untung-rugi ketika harga mencapai target keuntungan pertama, untuk mencapai perdagangan “nol risiko” dan melindungi keuntungan yang telah diperoleh.

  7. Bantuan visualStrategi menyediakan petunjuk visual dan dashboard yang jelas untuk membantu pedagang secara intuitif mengidentifikasi sinyal dan kondisi pasar, mempermudah proses pengambilan keputusan.

  8. Mengintegrasikan perilaku harga dengan indikator teknisIni adalah salah satu contoh yang paling jelas dari apa yang terjadi di pasar Forex saat ini, yaitu dengan menggabungkan teori perilaku harga Oliver Velez dengan indikator teknologi tradisional untuk menciptakan sistem perdagangan yang lebih stabil.

Risiko Strategis

Meskipun strategi ini dirancang dengan baik, risiko dan tantangan potensial yang dihadapi adalah:

  1. Parameter SensitivitasKinerja strategi sangat bergantung pada pengaturan parameter kunci seperti siklus SMA, panjang ATR, dan rasio pengembalian risiko. Pasar dan kerangka waktu yang berbeda mungkin memerlukan kombinasi parameter yang berbeda, yang memerlukan pengembalian dan optimalisasi sejarah yang memadai.

  2. Risiko Penembusan PalsuPenembusan di zona sempit kadang-kadang merupakan penembusan palsu, terutama dalam lingkungan pasar yang rendah. Meskipun strategi menggunakan “tiang gajah” diperlukan untuk mengurangi penembusan palsu, penembusan palsu tidak dapat dihindari sepenuhnya.

  3. Titik Slip dan Risiko EksekusiDalam perdagangan yang dilakukan secara real-time, terutama ketika terjadi fluktuasi besar, mungkin ada masalah dengan slippage yang menyebabkan harga masuk yang sebenarnya tidak sesuai dengan harga yang ideal, yang mempengaruhi struktur risiko-pengembalian secara keseluruhan.

  4. Tantangan Manajemen UangFasilitasi: menggunakan 10% dana tetap dan memungkinkan dua kali penambahan, yang dapat menyebabkan risiko yang terlalu besar jika terjadi kerugian berturut-turut atau fluktuasi pasar yang tajam.

  5. Terlalu bergantung pada garis rata-rataStrategi ini bergantung pada arah tren yang ditentukan oleh SMA, tetapi dalam pasar yang bergejolak, garis rata-rata dapat sering berselisih dan menghasilkan terlalu banyak sinyal palsu.

  6. Kurangnya penyaringan pasarStrategi tidak disesuaikan dengan kondisi pasar makro yang berbeda (seperti volatilitas tinggi atau rendah, bull market atau bear market) dan mungkin tidak berkinerja baik pada fase pasar tertentu.

  7. Kurva dana mundurOleh karena strategi ini memungkinkan untuk melakukan kenaikan posisi, perubahan tren yang tiba-tiba dapat menyebabkan penarikan akun yang lebih besar, terutama ketika pasar berbalik setelah dua kali kenaikan posisi.

Solusinya meliputi: menambahkan filter lingkungan pasar tambahan, menyesuaikan rasio pengelolaan dana, menyesuaikan parameter secara dinamis sesuai dengan kondisi pasar yang berbeda, dan mempertimbangkan untuk menambahkan indikator teknis lainnya untuk mengkonfirmasi sinyal.

Arah optimasi strategi

Berdasarkan analisis kode, strategi ini dapat dioptimalkan dalam beberapa arah:

  1. Dinamika batas sempit: Strategi saat ini menggunakan 1.5% dan 2% yang tetap sebagai batas penilaian untuk band sempit dan band lebar. Anda dapat mempertimbangkan untuk menyesuaikan batas-batas ini berdasarkan dinamika fluktuasi tingkat historis, sehingga strategi lebih sesuai dengan lingkungan pasar yang berbeda. Alasan optimasi: Pasar dan kerangka waktu yang berbeda memiliki karakteristik fluktuasi yang berbeda, sehingga batas-batas tetap mungkin tidak cukup fleksibel.

  2. Peningkatan sistem rata-rataAnda dapat mempertimbangkan untuk menambahkan rata-rata rata-rata jangka menengah (seperti SMA 50 periode) untuk membentuk sistem tiga rata-rata, atau mencoba mengganti SMA dengan rata-rata bergerak indeks (EMA) untuk meningkatkan sensitivitas terhadap perubahan harga. Alasan untuk mengoptimalkan: Menambahkan titik acuan jangka menengah dapat memberikan pandangan pasar yang lebih menyeluruh, dan EMA lebih sensitif terhadap reaksi perubahan harga terbaru.

  3. Perbaikan perhitungan slopePerhitungan slope saat ini relatif sederhana, dan dapat dipertimbangkan untuk mendapatkan indikasi arah yang lebih stabil dengan menggunakan slope regresi linier atau perubahan slope multi-siklus. Alasan optimasi: Perhitungan slope satu titik mudah dipengaruhi oleh fluktuasi jangka pendek, dan perbaikan dapat meningkatkan stabilitas penilaian arah.

  4. Menambahkan konfirmasi pengiriman: Meningkatkan kondisi volume transaksi pada sinyal masuk, seperti meminta “tiang gajah” yang disertai dengan terobosan yang lebih tinggi dari volume transaksi rata-rata. Alasan optimasi: Volume transaksi adalah faktor konfirmasi penting efektivitas perubahan harga, yang dapat secara signifikan mengurangi terobosan palsu.

  5. Rasio risiko-pengembalian dinamisRasio laba atas risiko yang disesuaikan secara dinamis dengan volatilitas pasar atau persentase ATR, Rasio RR yang lebih tinggi digunakan di pasar yang kurang berfluktuasi, pengaturan yang lebih konservatif digunakan di pasar yang lebih berfluktuasi. Alasan untuk optimalisasi: Potensi keuntungan yang berbeda dalam lingkungan yang berfluktuasi berbeda, dan penyesuaian dinamis dapat mengoptimalkan ekspektasi keuntungan dari setiap perdagangan.

  6. Optimalkan kondisi kenaikanOptimalisasi: Kondisi penambahan posisi yang lebih ketat dapat meningkatkan tingkat keberhasilan posisi tambahan dan mengurangi risiko secara keseluruhan.

  7. Filter lingkungan pasar: Menambahkan filter lingkungan pasar makro, seperti indikator volatilitas (seperti VIX) atau indikator intensitas tren, untuk mengurangi atau menghentikan perdagangan dalam lingkungan pasar yang tidak menguntungkan. Alasan optimasi: Performa strategi sangat bervariasi di berbagai tahap pasar, filter lingkungan dapat menghindari perdagangan dalam kondisi yang tidak menguntungkan.

  8. Adaptasi strategi untuk menghentikan kerugian: Mengembangkan strategi stop loss yang beradaptasi berdasarkan struktur pasar, seperti menggunakan titik tinggi dan rendah di masa depan, persentase volatilitas, atau struktur harga sebagai titik acuan stop loss yang dinamis. Alasan optimasi: Stop loss dengan kelipatan ATR tetap terkadang tidak cocok dengan struktur pasar, dan metode yang beradaptasi lebih sesuai dengan perilaku harga yang sebenarnya.

Meringkaskan

Strategi perdagangan kuantitatif terobosan pita sempit rata-rata bergerak yang bergerak adalah sistem perdagangan komprehensif yang menggabungkan berbagai elemen analisis teknis, yang menyediakan pedagang dengan cara yang terstruktur untuk berpartisipasi dalam pasar melalui persyaratan masuk yang didefinisikan dengan baik, mekanisme konfirmasi bertingkat, dan kerangka manajemen risiko yang baik. Strategi ini didasarkan pada konsep analisis teknis dasar seperti SMA, ATR, dan perilaku harga, tetapi mengintegrasikan elemen ini ke dalam sistem perdagangan yang jelas melalui metodologi Oliver Velez.

Keunggulan inti dari strategi ini adalah kemampuannya untuk mengidentifikasi peluang terobosan dengan probabilitas tinggi di daerah yang sempit dengan rata-rata bergerak dan untuk mengkonfirmasi efektivitas sinyal melalui pola harga tertentu seperti “tiang gajah” dan “perubahan warna”. Sementara itu, struktur manajemen risiko yang baik memastikan keamanan dana dan perlindungan keuntungan.

Namun, strategi ini juga menghadapi masalah seperti sensitivitas parameter, risiko terobosan palsu, dan tantangan pengelolaan dana. Strategi ini dapat ditingkatkan lebih lanjut untuk meningkatkan stabilitas dan fleksibilitas dengan mengoptimalkan margin banding, meningkatkan sistem rata-rata, meningkatkan perhitungan kemiringan, menambahkan konfirmasi transaksi, menerapkan rasio pengembalian risiko dinamis, mengoptimalkan kondisi penambahan posisi, menambahkan penyaringan lingkungan pasar, dan mengembangkan strategi penghentian kerugian yang beradaptasi.

Secara keseluruhan, ini adalah strategi perdagangan kuantitatif yang dirancang dengan logika yang masuk akal dan jelas yang cocok untuk investor dengan pengalaman perdagangan tertentu, terutama bagi para pedagang yang lebih memilih analisis teknis dan metode perdagangan sistematis. Dengan pengoptimalan parameter dan manajemen risiko yang tepat, strategi ini berpotensi untuk mencapai kinerja perdagangan yang stabil di berbagai lingkungan pasar.

Kode Sumber Strategi
/*backtest
start: 2024-05-13 00:00:00
end: 2025-05-12 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy("Oliver Velez Advanced Strategy v2", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10, pyramiding=2, calc_on_order_fills=true, calc_on_every_tick=true)

// === INPUTS ===
smaLen1 = input.int(20, title="SMA Short")
smaLen2 = input.int(200, title="SMA Long")
atrLen = input.int(14, title="ATR Length")
rr1 = input.float(2.5, title="RR for Partial Profit", step=0.1)
rr2 = input.float(4.0, title="RR for Final Profit", step=0.1)

// === INDICATORS ===
sma20 = ta.sma(close, smaLen1)
sma200 = ta.sma(close, smaLen2)
atr = ta.atr(atrLen)
angle = math.atan(sma20 - sma20[1]) * 180 / math.pi

// === STATES ===
isNarrow = math.abs(sma20 - sma200) / sma200 < 0.015
isWide = math.abs(sma20 - sma200) / sma200 >= 0.02
validSlope = angle > 30

// === CANDLE PATTERNS ===
elephant_long = close > open and (close - open) > 1.5 * atr and high > high[1]
elephant_short = close < open and (open - close) > 1.5 * atr and low < low[1]
color_change_long = close > open and close[1] < open[1]
color_change_short = close < open and close[1] > open[1]

// === LONG ENTRY ===
long_primary = isNarrow and validSlope and close > sma20 and sma20 > sma200 and elephant_long
long_add = isNarrow and color_change_long and close > sma20
long_entry_price = close
long_stop = math.min(low, close - 2 * atr)
long_risk = long_entry_price - long_stop
long_tp1 = long_entry_price + rr1 * long_risk
long_tp2 = long_entry_price + rr2 * long_risk

// === SHORT ENTRY ===
short_primary = isNarrow and validSlope and close < sma20 and sma20 < sma200 and elephant_short
short_add = isNarrow and color_change_short and close < sma20
short_entry_price = close
short_stop = math.max(high, close + 2 * atr)
short_risk = short_stop - short_entry_price
short_tp1 = short_entry_price - rr1 * short_risk
short_tp2 = short_entry_price - rr2 * short_risk

// === LONG EXECUTION ===
if (long_primary)
    strategy.entry("Long Entry", strategy.long, comment="Elephant Bar Long")
    strategy.exit("Long TP1", from_entry="Long Entry", limit=long_tp1, stop=long_stop)
    strategy.exit("Long TP2", from_entry="Long Entry", qty_percent=50, limit=long_tp2)

if (long_add)
    strategy.entry("Long Add", strategy.long, comment="Color Change Long")
    strategy.exit("Add TP1", from_entry="Long Add", limit=long_tp1, stop=long_stop)
    strategy.exit("Add TP2", from_entry="Long Add", qty_percent=50, limit=long_tp2)

// === SHORT EXECUTION ===
if (short_primary)
    strategy.entry("Short Entry", strategy.short, comment="Elephant Bar Short")
    strategy.exit("Short TP1", from_entry="Short Entry", limit=short_tp1, stop=short_stop)
    strategy.exit("Short TP2", from_entry="Short Entry", qty_percent=50, limit=short_tp2)

if (short_add)
    strategy.entry("Short Add", strategy.short, comment="Color Change Short")
    strategy.exit("Short TP1 Add", from_entry="Short Add", limit=short_tp1, stop=short_stop)
    strategy.exit("Short TP2 Add", from_entry="Short Add", qty_percent=50, limit=short_tp2)

// === BREAKEVEN CHECK ===
var float breakeven_price = na
long_breakeven_trigger = high >= long_tp1
short_breakeven_trigger = low <= short_tp1
breakeven_price := long_breakeven_trigger or short_breakeven_trigger ? close : breakeven_price

// === ALERTS ===
alertcondition(long_primary, title="Long Elephant", message="Elephant Bar Long Entry Triggered!")
alertcondition(long_add, title="Color Change Long", message="Color Change Long Entry Triggered!")
alertcondition(long_breakeven_trigger, title="Long Breakeven", message="Move SL to Breakeven for Long")

alertcondition(short_primary, title="Short Elephant", message="Elephant Bar Short Entry Triggered!")
alertcondition(short_add, title="Color Change Short", message="Color Change Short Entry Triggered!")
alertcondition(short_breakeven_trigger, title="Short Breakeven", message="Move SL to Breakeven for Short")

// === PLOTTING ===
plot(sma20, color=color.orange, title="SMA 20")
plot(sma200, color=color.blue, title="SMA 200")
bgcolor(isNarrow ? color.new(color.green, 85) : na)
plotshape(long_primary, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, text="E")
plotshape(long_add, style=shape.circle, location=location.belowbar, color=color.lime, size=size.tiny, text="A")
plotshape(short_primary, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, text="E")
plotshape(short_add, style=shape.circle, location=location.abovebar, color=color.maroon, size=size.tiny, text="A")

// === DASHBOARD ===
var label dash = na
label.delete(dash)
dash := label.new(x=bar_index, y=high, text=
     "Oliver Velez Strategy\n" +
     "SMA 20 Slope: " + str.tostring(angle, "#.##") + "°\n" +
     "State: " + (isNarrow ? "NARROW" : "WIDE") + "\n" +
     "Last Entry: " + (long_primary ? "Long E-Bar" : long_add ? "Long Add" : short_primary ? "Short E-Bar" : short_add ? "Short Add" : "None") + "\n" +
     "Breakeven: " + (breakeven_price != na ? str.tostring(breakeven_price, "#.##") : "No"), style=label.style_label_left, color=color.new(color.black, 85), textcolor=color.white)