
Die Strategie basiert auf einem 30-minütigen Zeitzyklus, der auf einem relativ schwachen Index (RSI) basiert, und ist streng auf den normalen US-Handelszeiten (08:30-15:00, Montag bis Freitag) beschränkt. Wenn der RSI nach oben über die Verkaufsmarke hinausgeht, tritt das System automatisch in die Mehrheit; wenn der RSI nach unten die Kaufmarke überschreitet, tritt das System automatisch in die Leerposition. Um das Übernachtungsrisiko zu vermeiden, werden alle Positionen am Ende der Tagesöffnung gehandelt (mit 15:00 Uhr).
Die Kernprinzipien der Strategie basieren auf der dynamischen Volatilität des relativ starken Index (RSI) und einem strengen Perioden-Filtermechanismus:
RSI-Signal erzeugtDie Strategie verwendet den Standard-RSI-Indikator mit einer Standard-Periode von 14, kann überkaufen (70%) und überverkaufen (30%) Grenzwerte. Durch die Überwachung der Kreuzung des RSI mit diesen Grenzwerten werden Einstiegssignale erzeugt.ta.crossover(vrsi, overSold)Der RSI wird verwendet, um die Überschreitung der Verkaufstörgrenze nach oben zu erkennen, um einen Mehrkopf-Eintritt auszulösen.ta.crossunder(vrsi, overBought)Dies wird verwendet, um zu erkennen, ob der RSI nach unten über die Überkauf-Schwelle hinausgeht, um die Einführung von Leerköpfen auszulösen.
ZeitfilterDie Strategie implementiert eine präzise Zeiteinteilung, die nur während der normalen US-Handelszeit (08.30 bis 15.00 Uhr Zentralzeit, Montag bis Freitag) ausgeführt wird. Dies wird durch die folgende Kombination von Bedingungen erreicht:
weekdayFilter = dayofweek >= dayofweek.monday and dayofweek <= dayofweek.fridayZwangsvollstreckungCode: Um das Übernachtungsrisiko zu vermeiden, wird die Strategie dazu benutzt, alle Positionen um 15:00 Uhr an jedem Handelstag auszugleichen. Der Code wird ausgelöst, indem er überprüft, ob die aktuelle Zeit erreicht oder überschritten wurde:strategy.close_all(comment="Close All by 15:00 CT")。
Visuelle UnterstützungStrategie: Die Strategie bietet eine optionelle Hintergrundfarbe, die einen grünen Hintergrund bei der Haltung von mehreren Positionen und einen roten Hintergrund bei der Haltung von leeren Positionen anzeigt, um die intuitive Wahrnehmung des Handelszustands zu verbessern.
Eine Analyse des Codes der Strategie zeigt folgende deutliche Vorteile:
Konzentrieren Sie sich auf das TagesgeschäftDie Strategie vermeidet das Risiko von Übernachtungen durch die Einschränkung der Handelszeiten und die Zwangsverschließung, wodurch die Gefahr von Übernachtungen verringert wird.
Anpassung an den MarktDer RSI ist ein umkehrender Indikator, der die Gelegenheit eines Preiswechsels in einem überkauften oder überverkauften Markt effektiv erfasst. Er ist besonders geeignet, kurzfristige Preisschwankungen im Tageshandel zu erfassen.
Anpassbarkeit der ParameterDie Strategie bietet mehrere anpassbare Parameter, darunter die Länge der RSI-Zyklen, Überkauf-Überverkauf-Tiefststände usw., die es dem Händler ermöglichen, sich optimal an unterschiedliche Marktbedingungen und persönliche Risikopräferenzen anzupassen.
Klare visuelle RückmeldungDie Hintergrundfarbe bietet eine intuitive Positionseinstellung, die es dem Händler ermöglicht, den aktuellen Stand der Position auf einen Blick zu sehen.
Code ist einfach und effizientStrategie: Implementierung einer klaren Logik, einer vereinfachten Code-Struktur, geringer Rechenlasten, Echtzeit-Ausführung ohne Systemverzögerungen oder Leistungsprobleme.
Nachweis von stabiler LeistungDie Strategie zeigte einen hohen Gewinnfaktor ((4,61)) und eine akzeptable Siegquote ((57,1%), wobei die maximale Rückzugskontrolle in einem vernünftigen Bereich lag ((0,22%)), basierend auf den Retrospektiven für den 30-Minuten-Zeitrahmen des NQ-Vertrags vom Juni 2025.
Obwohl diese Strategie viele Vorteile hat, gibt es folgende potenzielle Risiken:
Die Signalfrequenz ist begrenztRSI-Kreuzsignale können relativ selten sein, besonders wenn die Markttrends klar sind, was zu unzureichenden Handelsmöglichkeiten führen kann, die sich auf die Gesamtergebnisse auswirken. Lösung: Es kann in Erwägung gezogen werden, zusätzliche Indikatoren hinzuzufügen oder die RSI-Parameter anzupassen, um die Signalfrequenz moderat zu erhöhen.
Falsche DurchbruchgefahrDer RSI-Indikator kann falsche Durchbruchsignale erzeugen, insbesondere wenn die Marktfluktuation stark ist, aber keine klare Richtung vorhanden ist. Lösung: Die Bestätigungsindikatoren können hinzugefügt werden oder zusätzliche Filterbedingungen wie die Bestätigung des Umsatzes oder die Filterung der Trendrichtung können gesetzt werden.
ZeitzonenempfindlichDie Strategie hängt von der richtigen Zeitzone-Einstellung ab, die falsche Zeitzone-Konfiguration kann dazu führen, dass die Handelszeiten-Filterfunktion ausfällt. Lösung: Vor dem Lauf der Börse die Zeitzone-Einstellung sorgfältig überprüfen und verifizieren, um sicherzustellen, dass sie genau mit den Handelszeiten des Zielmarkts übereinstimmt.
Fehlende SchadensbegrenzungDie Strategie hat keine dynamische Stop-Loss-Funktion und kann unter extremen Marktbedingungen zu hohen Verlusten führen. Lösung: Ein Stop-Loss-Mechanismus basierend auf Volatilität oder festen Punkten, der den maximalen Verlust eines einzelnen Handels einschränkt.
Abhängig von festen SchließzeitenLösungen: Eine flexiblere Schließungsstrategie kann in Erwägung gezogen werden, z. B. die Entscheidung, ob die Position auf der Grundlage der Schlepptrendlage platziert wird.
Basierend auf einer eingehenden Analyse des Strategie-Codes sind folgende Optimierungsmöglichkeiten möglich:
Dynamische RSI-TermineUmwandlung von festen Überkauf-Überverkauf-Schwellen in Schwellen, die dynamisch auf der historischen Volatilität oder der ATR (Average True Range) basieren und an die Volatilität in verschiedenen Marktumgebungen angepasst sind. Dadurch können breitere Schwellen in hoch- und schmalere Schwellen verwendet werden, um die Signalqualität zu verbessern.
Trendfilter hinzufügenEinführung von Trendindikatoren (wie beispielsweise Moving Averages, MACDs oder ADXs) als Richtungsfilter, nur in Richtung des Haupttrends zu handeln, um häufigen Handel in den Kursen zu vermeiden und falsche Signale zu reduzieren.
Implementierung einer teilweisen Playoff-LogikIm Gegensatz zu den derzeitigen vollständigen Ausgleichsmechanismen kann eine Bündelung der Ausgleichsmechanismen realisiert werden, z. B. die Ausgleichsmechanismen, bei denen ein Teil der Position bei Erreichen eines gewissen Gewinnziels ausgeschaltet wird, um einen Teil der Position zu behalten, um einen größeren Trend zu erfassen.
Eintritt in eine VolatilitätsanpassungspositionPositionsgröße basierend auf der dynamischen Marktfluktuation (z. B. ATR), Erhöhung der Positionen in den niedrig-volatilen Märkten, Verringerung der Positionen in den hoch-volatilen Märkten, Optimierung des Risikorrendit.
Integrierte UmsatzbestätigungAuf Basis der RSI-Signalerzeugung erhöht sich die Signalsicherheit durch die Erhöhung der Bestätigungsbedingungen für die Transaktionsmenge und die Ausführung von Transaktionen nur unter der Voraussetzung, dass die Transaktionsmenge unterstützt wird.
Die Implementierung eines intelligenten Stop Loss MechanismusEinführung eines intelligenten Stop-Loss-Mechanismus, der auf Widerstandspunkten oder kurzfristigen Schwankungsbereichen basiert, anstelle eines einfachen Zeit-Plugs, um das Risiko effektiver zu steuern.
Eine dynamische Strategie mit relativ starken Index-Kreuzungen während der Handelszeit ist ein kunstvoll gestaltetes Tageshandelssystem, das durch die Kombination von RSI-Techniken und strengen Handelszeitenfiltern eine effiziente Handelslogik für Aktienindex-Futures ermöglicht. Die Kernvorteile der Strategie liegen darin, Übernachtrisiken zu vermeiden, Überkauf- und Verkaufsmöglichkeiten innerhalb des Tages zu erfassen und klare visuelle Rückmeldungen zu liefern. Trotz der potenziellen Risiken wie begrenzter Signalfrequenz und des Mangels an dynamischen Verluststopps können Maßnahmen wie die Implementierung von dynamischen RSI-Höhen, die Erhöhung der Trendfilterung und die Optimierung der Synthesizer-Bestätigung die Stabilität und Profitabilität der Strategie erheblich verbessern.
/*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")