
Strategi sinyal kosong SPY adalah sistem perdagangan kuantitatif yang didasarkan pada kerangka waktu 5 menit yang dirancang khusus untuk pasar SPY. Strategi ini menangkap sinyal penurunan pasar melalui analisis komprehensif tentang hubungan antara harga dan titik resistensi, indikator RSI, indikator momentum MACD, dan faktor multi-dimensi seperti volume transaksi. Sistem ini akan memicu sinyal perdagangan kosong ketika harga mendekati titik resistensi dan memenuhi kondisi bullish tertentu.
Strategi ini didasarkan pada verifikasi kolaboratif dari beberapa indikator teknis, yang mencakup beberapa elemen utama:
Identifikasi titik resistansi: Sistem menentukan titik resistensi dengan menghitung harga tertinggi untuk periode mundur yang ditentukan (default 20 siklus). Kondisi masuk pertama terpenuhi ketika harga mendekati titik resistensi (terletak dalam kisaran 1% di bawah titik resistensi) atau melewati titik resistensi ke bawah.
Filter RSIStrategi ini membutuhkan RSI ((20 siklus) di bawah batas default ((default 45), untuk memastikan bahwa pasar berada dalam keadaan relatif oversold atau bias netral.
Kekuatan MACD dikonfirmasi: Menggunakan MACD ((12,26,9) indikator untuk menentukan arah momentum, ketika garis MACD di bawah garis sinyal, menunjukkan bahwa harga memiliki momentum ke bawah, sesuai dengan arah strategi kosong.
Verifikasi pengirimanStrategi ini memerlukan transaksi saat ini lebih dari 20 kali lipat dari rata-rata bergerak sederhana (SMA) (default 1.5) untuk memastikan ada cukup partisipasi pasar untuk mendukung perubahan harga.
Mekanisme Keluar Dinamis: Menggunakan indikator ATR 14 siklus untuk menghitung stop loss dan stop loss level. Stop loss target ditetapkan sebagai harga masuk dikurangi ATR dikali keuntungan kali ((default 1.5)), stop loss level sebagai harga masuk ditambah ATR dikali kerugian kali ((default 1.0)).
Ketika semua kondisi terpenuhi secara bersamaan, strategi memicu sinyal masuk kosong dan mengelola perdagangan sesuai dengan kondisi keluar dinamis yang telah ditetapkan.
Konfirmasi sinyal multidimensiStrategi: Menggabungkan harga, indikator teknis, dan volume transaksi untuk analisis multi-dimensi, efektif memfilter sinyal palsu, meningkatkan kualitas perdagangan. Harga dekat dengan titik resistensi, RSI rendah, MACD ke bawah dan volume transaksi yang meningkat. Kombinasi kondisi, dapat secara efektif menangkap peluang shorting yang nyata.
Waktu masuk yang tepatDengan mengidentifikasi hubungan antara harga dan titik resistensi, strategi dapat masuk dengan tepat di titik balik teknis, meningkatkan probabilitas keuntungan.
Manajemen risiko dinamis: Mengadopsi mekanisme stop loss berbasis ATR yang dinamis, membuat manajemen risiko beradaptasi dengan volatilitas pasar, memberikan stop loss yang lebih longgar dalam lingkungan yang bergejolak tinggi, dan memperketat stop loss dalam lingkungan yang bergejolak rendah, mengoptimalkan rasio risiko-penghasilan.
Adaptif: Parameter strategi sangat dapat disesuaikan, pengguna dapat menyesuaikan parameter seperti RSI threshold, volume transaksi, dan ATR multiplier sesuai dengan kondisi pasar dan preferensi risiko pribadi, untuk mengoptimalkan strategi secara fleksibel.
Fokus pada transaksi berkualitasStrategi yang lebih ketat, menghindari overtrading, fokus pada menangkap peluang shorting dengan probabilitas tinggi, mengurangi biaya transaksi dan gangguan emosional.
Risiko Penembusan Palsu: Harga mungkin rebound dengan cepat setelah penembusan resistensi sementara, menyebabkan sinyal yang salah. Solusinya adalah dengan menambahkan filter waktu, yang meminta harga untuk bertahan di bawah resistensi untuk waktu tertentu, atau menambahkan sinyal konfirmasi seperti analisis morfologi pivot.
Risiko perdagangan berlawanan: Di pasar bullish yang kuat, shorting mungkin menghadapi tantangan untuk terus naik. Disarankan untuk menambahkan filter tren jangka panjang, dan menonaktifkan atau meningkatkan batas sinyal pada tren naik.
Parameter SensitivitasPerforma strategi sangat sensitif terhadap perubahan parameter seperti RSI, dan volume transaksi. Analisis historis dan sensitivitas yang komprehensif disarankan untuk menemukan kombinasi parameter yang optimal dan memeriksa validitas parameter secara teratur.
Risiko likuiditasPada saat volume perdagangan rendah, kondisi terobosan volume mungkin tidak dapat diandalkan. Solusi adalah dengan meningkatkan batasan pada pilihan waktu perdagangan, menghindari saat kurangnya likuiditas pasar.
Tidak cukup stop loss dinamisATR tunggal mungkin tidak cukup dioptimalkan dalam berbagai kondisi pasar. ATR adaptif dapat dipertimbangkan berdasarkan volatilitas, atau dalam kombinasi dengan kekuatan tren untuk menyesuaikan level stop loss secara dinamis.
Filter trenMenambahkan mekanisme penilaian tren jangka panjang, seperti rasio rata-rata siklus 20⁄50 atau indikator tren dengan periode yang lebih lama, memastikan strategi berjalan di arah tren pasar secara keseluruhan dan menghindari perdagangan berlawanan. Ini dapat meningkatkan peluang menang dan mengurangi kerugian yang tidak perlu.
Filter waktuTambahkan fitur penyaringan waktu untuk menghindari periode pasar tertentu, seperti 30 menit sebelum buka atau selama rilis data ekonomi besar, di mana volatilitas biasanya tidak dapat diprediksi dan dapat menyebabkan kinerja strategi yang buruk.
Parameter adaptasi: Mengimplementasikan mekanisme penyesuaian parameter berdasarkan volatilitas pasar, seperti meningkatkan RSI threshold atau volume transaksi multiplier ketika volatilitas meningkat, sehingga strategi dapat beradaptasi dengan lebih baik terhadap perubahan lingkungan pasar.
Sinyal penguat dikonfirmasi: Pertimbangkan untuk menambahkan analisa pola grafik atau identifikasi pola perilaku harga sebagai sinyal konfirmasi tambahan untuk meningkatkan keakuratan masuk. Misalnya, meminta munculnya pola penurunan harga di dekat titik masuk seperti “bintang senja” atau “pola penurunan harga”.
Strategi berangkat berpasangan: Mengoptimalkan mekanisme keluar tunggal saat ini, untuk menerapkan strategi keluar batch. Misalnya, ketika harga mencapai tingkat keuntungan tertentu, tutup sebagian dari posisi, sementara memindahkan kerugian sisa posisi ke garis biaya atau posisi keuntungan, secara efektif mengunci sebagian dari keuntungan dan membiarkan keuntungan terus tumbuh.
Analisis multi-frame waktu: Mengintegrasikan pengesahan sinyal pada kerangka waktu yang lebih tinggi (misalnya 15 menit, 1 jam), memastikan bahwa sinyal jangka pendek konsisten dengan tren kerangka waktu yang lebih besar, meningkatkan stabilitas strategi.
SPY Enhanced Overhead Signal Strategy adalah sistem perdagangan kuantitatif yang efisien berdasarkan beberapa indikator teknis dan kondisi masuk yang tepat. Dengan menganalisis secara komprehensif hubungan harga dan resistensi, RSI, MACD momentum dan perubahan volume transaksi, strategi dapat menangkap peluang shorting yang memiliki probabilitas tinggi di pasar.
Keunggulan inti dari strategi ini adalah penyaringan persyaratan masuk yang ketat dan waktu yang tepat untuk menghindari overtrading dan gangguan emosional. Pada saat yang sama, kemampuan strategi untuk beradaptasi dan parameter yang dapat disesuaikan membuatnya dapat beradaptasi dengan lingkungan pasar yang berbeda. Meskipun demikian, pengguna masih perlu memperhatikan risiko potensial seperti false breakout, perdagangan berlawanan, dan sensitivitas parameter, dan mengoptimalkannya sesuai dengan kinerja perdagangan aktual.
Kinerja strategi dapat ditingkatkan lebih lanjut dengan menambahkan langkah-langkah optimasi seperti penyaringan tren, penyaringan waktu, parameter penyesuaian dan analisis multi-frame waktu. Secara keseluruhan, ini adalah strategi perdagangan kuantitatif yang jelas, logis, dan memiliki nilai aplikasi praktis yang sesuai untuk pedagang berpengalaman untuk digunakan dalam perdagangan langsung dengan manajemen risiko yang tepat.
/*backtest
start: 2024-03-31 00:00:00
end: 2025-03-29 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=6
strategy("SPY Enhanced Short Signals – Fixed", overlay=true, initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// ===== Inputs =====
length = input.int(20, "Lookback Period", minval=5)
rsiThreshold = input.float(45, "RSI Threshold", minval=1, maxval=50)
volMultiplier = input.float(1.5, "Volume Spike Multiplier", step=0.1)
// ATR multipliers for dynamic exits
atrProfitMultiplier = input.float(1.5, "ATR Profit Multiplier", step=0.1)
atrLossMultiplier = input.float(1.0, "ATR Stop Loss Multiplier", step=0.1)
// ===== Level Calculations =====
support = ta.lowest(low, length)
resistance = ta.highest(high, length)
// ===== Short Entry Conditions =====
// nearResistance: Price is within 1% *below* resistance.
nearResistance = close >= resistance * 0.99
// bearishRSI: RSI (period 20) must be below the specified threshold.
bearishRSI = ta.rsi(close, 20) < rsiThreshold
// MACD for momentum
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
bearishMomentum = macdLine < signalLine
// Volume spike: volume exceeds the 20-period SMA times the multiplier.
volSMA = ta.sma(volume, 20)
volumeSpike = volume > volSMA * volMultiplier
// Compute the crossunder result once and assign it to a global variable.
crossunderRes = ta.crossunder(close, resistance)
// Combine conditions: Enter short if either nearResistance or a crossunder occurs, and RSI, MACD, and volume conditions are met.
enterShort = (nearResistance or crossunderRes) and bearishRSI and bearishMomentum and volumeSpike
// ===== Dynamic Exit Conditions =====
dynamicATR = ta.atr(14)
dynamicProfit = dynamicATR * atrProfitMultiplier
dynamicLoss = dynamicATR * atrLossMultiplier
// ===== Execute Short Trade =====
if (enterShort)
strategy.entry("Short", strategy.short)
strategy.exit("Exit Short", "Short", limit = strategy.position_avg_price - dynamicProfit, stop = strategy.position_avg_price + dynamicLoss)
// ===== Plotting =====
plot(resistance, title="Resistance", color=color.red, linewidth=2)
plot(support, title="Support", color=color.green, linewidth=2)
plotshape(enterShort, title="SELL Signal", style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, text="SELL")