
Strategi ini adalah sistem dagangan harian ringan yang direka khusus untuk indeks saham berjangka (seperti NASDAQ, S&P 500 ES, Dow Jones YM). Strategi ini berdasarkan pada carta kitaran masa 30 minit, menggunakan indeks yang agak kuat (RSI) sebagai petunjuk teknikal teras, dan sangat terhad untuk melakukan perdagangan dalam tempoh masa perdagangan biasa di Amerika Syarikat (08:30-15:00, hari Isnin hingga Jumaat). Apabila RSI naik melampaui paras jual, sistem secara automatik memasuki kedudukan berganda; apabila RSI turun melampaui paras beli, sistem secara automatik memasuki kedudukan kosong.
Prinsip-prinsip utama strategi ini adalah berdasarkan ciri-ciri pergerakan dinamik indeks ((RSI) yang agak kuat dan mekanisme penapisan tempoh dagangan yang ketat:
Sinyal RSI dihasilkanStrategi: Menggunakan RSI standard, dengan kitaran lalai 14, anda boleh menyesuaikan overbought ((70) dan oversold ((30) had. Menjana isyarat masuk dengan memantau RSI dengan persilangan had ini.ta.crossover(vrsi, overSold)Ia digunakan untuk mengesan apabila RSI melangkaui had jual beli ke atas dan mencetuskan masuk ke pasaran berbilang mata;ta.crossunder(vrsi, overBought)Digunakan untuk mengesan RSI ke bawah yang melintasi batas beli dan mencetuskan masuk kosong.
Sistem penapisan masaStrategi ini mewujudkan mekanisme kawalan masa perdagangan yang tepat, yang hanya menjalankan perdagangan pada waktu perdagangan biasa AS (8:30-15:00, waktu tengah hari, Isnin hingga Jumaat). Ini dicapai melalui kombinasi syarat berikut:
weekdayFilter = dayofweek >= dayofweek.monday and dayofweek <= dayofweek.fridayMekanisme penutupan wajibUntuk mengelakkan risiko semalaman, strategi ini memaksa semua kedudukan untuk diletakkan pada pukul 15:00 setiap hari perdagangan. Kod ini akan mencetuskan perintah penutupan dengan memeriksa sama ada masa semasa telah mencapai atau melebihi masa penutupan:strategy.close_all(comment="Close All by 15:00 CT")。
Pembantu visualStrategi menyediakan pilihan warna latar belakang, menunjukkan latar belakang hijau apabila memegang kedudukan berbilang dan latar belakang merah apabila memegang kedudukan kosong, meningkatkan persepsi intuitif mengenai keadaan perdagangan.
Analisis kod strategi ini dapat meringkaskan kelebihan yang ketara berikut:
Fokus pada dagangan dalam sehariDengan sekatan pada waktu dagangan dan mekanisme penutupan wajib, strategi ini mengelakkan risiko bermalam, mengurangkan risiko risiko dan risiko turun naik yang mungkin dihadapi oleh pemegang kedudukan bermalam.
Menyesuaikan diri dengan pasaranRSI sebagai satu penunjuk reversal, mampu menangkap peluang reversal harga dalam keadaan pasaran overbought dan oversold, sangat sesuai untuk menangkap turun naik harga jangka pendek dalam perdagangan dalam sehari.
Parameter yang boleh disesuaikanStrategi ini menyediakan pelbagai parameter yang boleh disesuaikan, termasuk panjang kitaran RSI, overbought dan oversold, yang membolehkan peniaga menyesuaikan diri dengan baik mengikut keadaan pasaran yang berbeza dan keutamaan risiko peribadi.
Maklumat visual yang jelas: Fungsi latar belakang memberikan status kedudukan yang intuitif, yang membolehkan peniaga mengetahui dengan jelas keadaan kedudukan semasa.
Kod ringkas dan cekapStrategi: mewujudkan kejernihan logik, struktur kod yang lebih sederhana, beban pengiraan yang rendah, sesuai untuk pelaksanaan masa nyata, tidak menyebabkan kelewatan sistem atau masalah prestasi.
Kemunculan semula stabilBerdasarkan data retrospektif pada jangka masa 30 minit kontrak NQ Jun 2025 yang disediakan, strategi ini menunjukkan faktor keuntungan yang tinggi ((4.61) dan kadar kemenangan yang boleh diterima ((57.1%), dengan kawalan penarikan balik maksimum dalam lingkungan yang munasabah ((0.22%)).
Walaupun terdapat banyak kelebihan, strategi ini mempunyai risiko yang berpotensi:
Frekuensi isyarat terhadSinyal silang RSI mungkin agak jarang berlaku dalam tempoh perdagangan dalam sehari, terutamanya apabila trend pasaran jelas, yang boleh menyebabkan kekurangan peluang perdagangan yang menjejaskan pendapatan keseluruhan. Cara penyelesaian: Anda boleh mempertimbangkan untuk menambah indikator tambahan atau menyesuaikan parameter RSI untuk meningkatkan kekerapan isyarat secara sederhana.
Risiko penembusan palsuPenunjuk RSI mungkin menghasilkan isyarat pecah palsu, terutamanya apabila pasaran bergolak dengan kuat tetapi tidak mempunyai arah yang jelas. Penyelesaian: Anda boleh menambah penunjuk pengesahan atau menetapkan syarat penapisan tambahan, seperti pengesahan jumlah transaksi atau penapisan arah trend.
Tetapan zon masa sensitifStrategi bergantung kepada tetapan zon masa yang betul, konfigurasi zon masa yang salah boleh menyebabkan penapisan masa perdagangan gagal. Penyelesaian: Semak dan mengesahkan tetapan zon masa dengan teliti sebelum set nyata untuk memastikan ia sepadan dengan masa perdagangan pasaran sasaran.
Kekurangan mekanisme kawalan kerugianStrategi semasa tidak mempunyai fungsi hentian dinamik, dan mungkin menghadapi kerugian yang lebih besar dalam keadaan pasaran yang melampau. Penyelesaian: mewujudkan mekanisme hentian berdasarkan kadar turun naik atau nombor titik tetap, mengehadkan kerugian maksimum dalam satu perdagangan.
Bergantung pada masa penutupan tetapPenutupan paksa pada 15:00 mungkin menyebabkan kehilangan peluang pembalikan yang berpotensi sebelum penutupan, atau keluar terlalu awal dalam trend yang menguntungkan. Penyelesaian: Anda boleh mempertimbangkan untuk melaksanakan strategi penutupan yang lebih fleksibel, seperti menentukan sama ada kedudukan kosong berdasarkan keadaan trend akhir.
Berdasarkan analisis mendalam mengenai kod strategi, berikut adalah beberapa arah pengoptimuman yang mungkin:
Dinamika RSIMengubah ambang harga yang ditetapkan berdasarkan kadar turun naik sejarah atau ATR (Average True Rate) kepada ambang harga yang disesuaikan secara dinamik untuk menyesuaikan diri dengan ciri-ciri turun naik dalam keadaan pasaran yang berbeza. Dengan cara ini, ambang harga yang lebih luas boleh digunakan dalam pasaran yang bergelombang tinggi dan ambang harga yang lebih sempit dalam pasaran yang bergelombang rendah, meningkatkan kualiti isyarat.
Tambah penapis trendMemperkenalkan penunjuk trend (seperti purata bergerak, MACD atau ADX) sebagai penapis arah, hanya membuka kedudukan di arah trend utama, mengelakkan perdagangan yang kerap dalam pasaran yang disusun, mengurangkan isyarat palsu.
Mempunyai logik setaraf separaBerbeza dengan mekanisme penutupan keseluruhan yang ada, strategi penutupan kumpulan boleh dilaksanakan, seperti penutupan sebahagian kedudukan apabila mencapai matlamat keuntungan tertentu, mengekalkan sebahagian kedudukan untuk menangkap trend yang lebih besar.
Tambah kedudukan untuk menyesuaikan kadar turun naik: Mengubah saiz kedudukan secara dinamik berdasarkan turun naik pasaran (seperti ATR), menambah kedudukan di pasaran turun naik rendah, mengurangkan kedudukan di pasaran turun naik tinggi, mengoptimumkan nisbah pulangan risiko.
Pengesahan jumlah penghantaran bersepadu: Di atas asas penjanaan isyarat RSI, tambah syarat pengesahan jumlah transaksi, dan urus niaga dilakukan hanya jika jumlah transaksi disokong, meningkatkan kebolehpercayaan isyarat.
Mempunyai mekanisme penangguhan kecerdasanMemperkenalkan mekanisme hentian rugi pintar berdasarkan tahap rintangan sokongan atau rentang turun naik terkini, menggantikan kedudukan kosong masa yang mudah, untuk mengawal risiko dengan lebih berkesan.
Strategi dinamik silang indeks yang agak kuat pada masa perdagangan adalah sistem perdagangan dalam hari yang direka dengan baik, yang mewujudkan logik perdagangan yang cekap untuk masa depan indeks saham dengan menggabungkan petunjuk teknikal RSI dan penapisan masa perdagangan yang ketat. Kelebihan utama strategi ini adalah untuk mengelakkan risiko malam hari, menangkap peluang overbought dan oversold dalam hari, dan memberikan maklum balas visual yang jelas. Walaupun terdapat risiko yang berpotensi seperti kekangan isyarat yang terhad dan kurangnya pergerakan, langkah-langkah seperti pengoptimuman dengan melaksanakan nilai RSI yang dinamik, meningkatkan penapisan trend dan pengesahan kuantiti pengubah integratif dapat meningkatkan kestabilan dan keuntungan strategi.
/*backtest
start: 2024-05-27 00:00:00
end: 2024-12-22 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"SOL_USDT"}]
*/
//@version=6
strategy("Futures Trading Hours RSI Strategy", overlay=true)
// ——— INPUTS ——————————————————————————————
length = input(14, "RSI Length")
overSold = input(30, "RSI Oversold Level")
overBought = input(70, "RSI Overbought Level")
price = close
vrsi = ta.rsi(price, length)
// ——— TIME FILTER (CENTRAL TIME) ——————————————————
startHour = 8
startMinute = 30
endHour = 15
endMinute = 0
// Offset in hours from UTC to CST (not accounting for DST)
var timezoneOffset = 0
adjustedTime = time + (timezoneOffset * 60 * 60 * 1000)
adjustedHour = hour(adjustedTime)
adjustedMinute = minute(adjustedTime)
// Only trade Monday (1) through Friday (5) in the chart’s default time zone.
weekdayFilter = dayofweek >= dayofweek.monday and dayofweek <= dayofweek.friday
// Determine if the current bar is within the session (08:30–15:00 CT)
inSession = (adjustedHour > startHour or (adjustedHour == startHour and adjustedMinute >= startMinute)) and (adjustedHour < endHour or (adjustedHour == endHour and adjustedMinute < endMinute))
// ——— SIGNALS ————————————————————————————————
co = ta.crossover(vrsi, overSold)
cu = ta.crossunder(vrsi, overBought)
// ——— ENTRY LOGIC ————————————————————————————
if not na(vrsi) and inSession and weekdayFilter
if co
strategy.entry("RsiLE", strategy.long, comment="RsiLE")
if cu
strategy.entry("RsiSE", strategy.short, comment="RsiSE")
// ——— EXIT ALL ORDERS AT/AFTER 15:00 CT ——————————————————
// Closes any open positions once the clock hits 15:00 CT or later on weekdays
if weekdayFilter and (adjustedHour > endHour or (adjustedHour == endHour and adjustedMinute >= endMinute))
strategy.close_all(comment="Close All by 15:00 CT")
// ——— (Optional) Plot ————————————————————————————
//plot(strategy.equity, title="Equity", color=color.red, linewidth=2, style=plot.style_areabr)
// ——— BACKGROUND SHADING WHEN POSITION IS OPEN ——————————————————
longOpen = strategy.position_size > 0
shortOpen = strategy.position_size < 0
bgcolor(longOpen ? color.new(color.green, 90) : na, title="Long Position Shading")
bgcolor(shortOpen ? color.new(color.red, 90) : na, title="Short Position Shading")