Blau TVI Zeitgesteuerte Umkehr-Strategie
Zusammenfassung
- Konvertiert vom MetaTrader 5-Experten Exp_BlauTVI_Tm.mq5 in
MQL/21014. - Reimplementiert die Blau Tick Volume Index (TVI)-Logik mit drei konfigurierbaren Glättungsstufen.
- Generiert Umkehr-Trades, wenn der geglättete TVI die Steigung wechselt, und beschränkt Aufträge optional auf eine benutzerdefinierte Handelssitzung.
- Unterstützt optionale Stop-Loss- und Take-Profit-Schutz in Preispunkten.
Blau Tick Volume Index-Logik
Der ursprüngliche Experte verwendet den benutzerdefinierten BlauTVI-Indikator, der Auf- und Abwärtsbewegungen des Tick-Volumens zählt und das Ergebnis mehrfach glättet. Der C#-Port behält dieselbe Idee bei:
- Rohe Auf-/Abwärts-Tick-Zählung
UpTicks = (Volume + (Close - Open) / PriceStep) / 2DownTicks = Volume - UpTicks- Das Kerzenvolumen wird als Ersatz für das Tick-Volumen verwendet, da der StockSharp-Feed keine Tick-Zählungen für aggregierte Kerzen bereitstellt.
- Stufe 1-Glättung –
UpTicksundDownTickswerden mit dem ausgewählten gleitenden Durchschnittstyp (EMA,SMA,SMMA,WMA,JMA) und LängeLength1geglättet. - Stufe 2-Glättung – die Ausgaben der Stufe 1 werden erneut mit Länge
Length2geglättet. - TVI-Berechnung –
TVI = 100 * (Up2 - Down2) / (Up2 + Down2). - Stufe 3-Glättung – der TVI wird noch einmal mit Länge
Length3geglättet, um Rauschen zu reduzieren.
Die Strategie speichert eine kurze rollende Historie der finalen TVI-Werte, um den SignalBar-Versatz zu replizieren, der vom ursprünglichen EA verwendet wird (CopyBuffer mit Versatz SignalBar).
Handelsregeln
- Signalsteigungserkennung
- Wenn der vorherige TVI-Wert (
SignalBar + 1) kleiner als der ältere Wert (SignalBar + 2) ist, gilt der TVI als aufwärts drehend. Wenn der neueste verfügbare Wert ebenfalls größer als der vorherige ist, wird ein bullisches Umkehrsignal erzeugt. - Wenn der vorherige TVI-Wert größer als der ältere Wert ist, dreht der TVI abwärts. Wenn der neueste Wert unter dem vorherigen liegt, wird ein bärisches Umkehrsignal erzeugt.
- Wenn der vorherige TVI-Wert (
- Positionsverwaltung
- Long-Einstiege erfordern
EnableBuyOpen = true, das obige bullische Signal und eine nicht-positive aktuelle Position. Die Strategie schließt alle bestehenden Short-Positionen vor dem Kauf, indem sie die absolute Short-Größe zum konfiguriertenVolumehinzufügt. - Short-Einstiege erfordern
EnableSellOpen = true, das bärische Signal und eine nicht-negative Position. - Long-Ausstiege werden ausgelöst, wenn die TVI-Steigung bärisch wird und
EnableBuyClose = true. - Short-Ausstiege werden ausgelöst, wenn die TVI-Steigung bullisch wird und
EnableSellClose = true.
- Long-Einstiege erfordern
- Zeitfilter
- Wenn
EnableTimeFilter = true, öffnet die Strategie nur innerhalb des Fensters [StartHour:StartMinute,EndHour:EndMinute] neue Positionen. Overnight-Sitzungen werden unterstützt (Start > Ende). Positionen werden zwangsweise geschlossen, sobald die Zeit die Sitzung verlässt.
- Wenn
- Schutz
StopLossPointsundTakeProfitPointswerden durch Multiplikation mit demPriceStepdes Instruments in absolute Preisabstände umgerechnet und anStartProtectionübergeben. Auf null setzen, um zu deaktivieren.
Parameter
| Parameter | Beschreibung |
|---|---|
Volume |
Ordergröße für jeden Einstieg (zusätzliche Kontrakte werden hinzugefügt, um die entgegengesetzte Exposition abzudecken). |
CandleType |
Kerzendatentyp/-zeitrahmen für alle Berechnungen (Standard: 4-Stunden-Zeitrahmen). |
MaType |
Gleitender Durchschnittstyp für alle Glättungsstufen (EMA, SMA, SMMA, WMA, JMA). |
Length1, Length2, Length3 |
Glättungslängen für jede Stufe der Blau TVI-Berechnung. |
SignalBar |
Versatz für die TVI-Werte in der Signalgenerierung (1 entspricht der vorherigen geschlossenen Kerze wie die MQL-Version). |
EnableBuyOpen, EnableSellOpen |
Öffnen von Long-/Short-Positionen bei Signalen erlauben. |
EnableBuyClose, EnableSellClose |
Schließen bestehender Long-/Short-Positionen bei Steigungsumkehr erlauben. |
EnableTimeFilter |
Umschalter für das Handelssitzungsfenster. |
StartHour, StartMinute, EndHour, EndMinute |
Sitzungsgrenzen in Börsenzeitzone. Unterstützt Intraday- und Overnight-Bereiche. |
StopLossPoints, TakeProfitPoints |
Feste Schutzabstände in Preispunkten (0 deaktiviert jeden Schutz). |
Implementierungshinweise
- Die StockSharp-Umgebung stellt keine Tick-Zählungen für aggregierte Kerzen bereit, daher wird das Kerzenvolumen statt des Tick-Volumens verwendet. Dies hält das Verhalten nah am ursprünglichen Indikator, während es mit verfügbaren Daten kompatibel bleibt.
- Die Strategie verfolgt nur eine kompakte TVI-Historie (wenige neueste Werte), um den
SignalBar-Versatz zu replizieren, ohne die Repository-Richtlinie zu verletzen, die große benutzerdefinierte Sammlungen abrät. StartProtectionwird nur initialisiert, wenn ein gültigerPriceStepverfügbar ist; andernfalls wird auf Schutz ohne feste Ziele zurückgegriffen.- Alle Kommentare wurden auf Englisch umgeschrieben, um den Repository-Regeln zu entsprechen, und Tabulatoren werden für Einrückungen gemäß
AGENTS.mdverwendet.
Verwendungshinweise
- Mit dem Standard-H4-Zeitrahmen und EMA-Glättung beginnen, die den ursprünglichen Experteneinstellungen entsprechen.
SignalBarauf 0 anpassen, wenn Sie es vorziehen, auf der letzten geschlossenen Kerze zu agieren, anstatt einen Balken zu warten, aber beachten, dass dies von der MQL-Logik abweicht.- Bei Instruments mit unregelmäßigen Handelszeiten den Zeitfilter konfigurieren, um Signale während illiquider Perioden zu vermeiden.
- Mit Portfolio-Level-Geldmanagement kombinieren, wenn dynamische Dimensionierung benötigt wird;
Volumeist designbedingt statisch und spiegelt den Fixed-Lot-Ansatz des Quell-EAs wider.