Exp MA Rounding Candle MMRec Strategie
Überblick
Die Exp MA Rounding Candle MMRec Strategie ist der StockSharp-Port des MQL5-Expertenberaters Exp_MA_Rounding_Candle_MMRec. Das Originalsystem basiert auf einem benutzerdefinierten „MA Rounding Candle"-Indikator, der jede Marktkerze in eine geglättete synthetische Kerze umwandelt und deren Farbwechsel verfolgt. Die C#-Version reproduziert dasselbe Verhalten, indem sie die Indikatorlogik on-the-fly neu aufbaut und auf den resultierenden Farbstrom reagiert.
Aufbau des MA Rounding Candle
- Jede eingehende Kerze wird durch vier identische gleitende Durchschnitte (Open, High, Low, Close) verarbeitet. Die unterstützten Glättungstypen sind Simple, Exponential, Smoothed (RMA/SMMA) und Weighted.
- Die rohe gleitende Durchschnittsausgabe wird durch den ursprünglichen „Rounding"-Filter geleitet. Der Filter akzeptiert einen neuen Wert nur, wenn er sich vom vorherigen Ausgabewert um mehr als
RoundingFactor * PriceStepunterscheidet. Andernfalls wird der vorherige gerundete Wert beibehalten. Dies reproduziert das MQL5-Verhalten, bei dem das Signal bei kleinen Schwankungen flach bleibt. - Ein Gap-Filter verankert den gerundeten Open am vorherigen gerundeten Close, wenn die absolute Differenz zwischen dem realen Open und Close kleiner als
GapSize * PriceStepist. Dies verhindert, dass kleine Doji-Kerzen die Farbe der synthetischen Kerze ändern. - Nach dem Runden wird die Indikatorfarbe definiert als:
2– bullische synthetische Kerze (open < close)0– bärische synthetische Kerze (open > close)1– neutrale Kerze (open == close)
Die Strategie speichert nur die letzten wenigen Farbwerte (genug für den konfigurierten Look-back) und führt keine lange Historie, entsprechend dem Original-Experten.
Signallogik
Signale werden auf abgeschlossenen Kerzen mit einem konfigurierbaren SignalBar-Offset ausgewertet:
SignalBargibt an, wie viele geschlossene Kerzen zurück als Trigger-Bar behandelt werden sollen (0= aktuelle geschlossene Bar,1= die zuletzt vollständig geschlossene Bar, etc.).- Die Strategie prüft auch die Farbe der unmittelbar vorhergehenden Bar (
SignalBar + 1). - Ein bullisch-zu-nicht-bullischer Übergang (
color[SignalBar + 1] = 2undcolor[SignalBar] != 2) erzeugt:- optionales Schließen bestehender Short-Positionen (
EnableShortExits), und - optionales Öffnen einer neuen Long-Position (
EnableLongEntries).
- optionales Schließen bestehender Short-Positionen (
- Ein bärisch-zu-nicht-bärischer Übergang (
color[SignalBar + 1] = 0undcolor[SignalBar] != 0) erzeugt:- optionales Schließen bestehender Long-Positionen (
EnableLongExits), und - optionales Öffnen einer neuen Short-Position (
EnableShortEntries).
- optionales Schließen bestehender Long-Positionen (
Das Positionsmanagement folgt dem Original-EA: Ausstiege werden vor neuen Einstiegen ausgeführt, und beim Richtungswechsel fügt die Strategie den Absolutwert der bestehenden Position zum Basis-Handelsvolumen hinzu, sodass die Nettogröße mit der gewünschten Richtung übereinstimmt.
Parameter
| Parameter | Standard | Beschreibung |
|---|---|---|
CandleType |
1-Stunden-Zeitrahmen | Kerzenserie zur Steuerung der Strategie. |
SmoothingMethod |
Simple |
Gleitender Durchschnittstyp für alle gerundeten Preisreihen. |
MaLength |
12 |
Anzahl der Perioden, die vom gewählten gleitenden Durchschnitt verwendet werden. |
RoundingFactor |
50 |
Multiplikator, der auf den PriceStep des Instruments angewendet wird, um den Rundungsschwellenwert zu erstellen. Größere Werte lassen die gerundete Reihe seltener ändern. |
GapSize |
10 |
Multiplikator, der auf den PriceStep für den Gap-Filter angewendet wird, der den gerundeten Open bei kleinen Kerzen am vorherigen gerundeten Close verankert. |
SignalBar |
1 |
Wie viele geschlossene Kerzen zurück für das Signal analysiert werden. |
TradeVolume |
1 |
Basis-Positionsvolumen für neue Einstiege. Der Parameter wird mit der eingebauten Strategy.Volume-Eigenschaft synchronisiert. |
EnableLongEntries / EnableShortEntries |
true |
Schalter für Long/Short-Einstiege. |
EnableLongExits / EnableShortExits |
true |
Schalter zum Schließen bestehender Positionen. |
Implementierungshinweise
- Nur die in StockSharp verfügbaren Glättungsmodi werden bereitgestellt. Exotische MQL5-spezifische Glätter (JJMA, JurX, VIDYA, AMA, etc.) sind in diesem Port nicht vorhanden.
- Der komplexe Money-Management-Rekalkulierer des Original-EA wird durch einen einzigen
TradeVolume-Parameter ersetzt. Dies hält die Strategie deterministisch und einfacher innerhalb von StockSharp zu optimieren. - Alle preisbasierten Schwellenwerte (
RoundingFactor,GapSize) werden in Preisschritten interpretiert, indem der Wert bei jeder Kerzenverarbeitung mitSecurity.PriceStepmultipliziert wird. - Die Strategie verwendet die High-Level-Kerzenabonnement-API (
SubscribeCandles) und arbeitet strikt auf abgeschlossenen Kerzen, genau wie der MQL5-Experte, der aufIsNewBarwartet, bevor er Aufträge ausgibt. - Long/Short-Schutz, Trailing Stops und andere Ausstiege wurden absichtlich weggelassen, da sie nicht Teil der ursprünglichen Implementierung waren.
Verwendung
- Hängen Sie die Strategie an das gewünschte Instrument an und weisen Sie über
CandleTypeeine geeignete Kerzenserie zu (z. B.TimeSpan.FromHours(1).TimeFrame()). - Konfigurieren Sie die Glättungsmethode, die Länge des gleitenden Durchschnitts, den Rundungsfaktor und den Gap-Filter, um die Einstellungen des Original-EA oder Ihre eigenen Optimierungsergebnisse zu replizieren.
- Setzen Sie
TradeVolumeauf die Lotgröße, die Sie handeln möchten. Die Strategie synchronisiert automatisch die interneVolume-Eigenschaft mit diesem Parameter. - Aktivieren oder deaktivieren Sie Long/Short-Einstiege und -Ausstiege je nach gewünschtem Verhalten.
- Starten Sie die Strategie. Trades werden generiert, wenn die MA Rounding Candle-Farbe die konfigurierten Übergänge durchführt.
Die README spiegelt die in CS/ExpMaRoundingCandleMmrecStrategy.cs enthaltene C#-Implementierung wider und sollte als Referenzdokumentation für diesen Port verwendet werden.