Die Ressourcen sind geladen. Beförderung...

Der Wert des Scalping-Systems ist der Wert des Scalping-Systems, das für den Scalping verwendet wird.

Schriftsteller:ChaoZhang, Datum: 2023-12-01 17: 56:56
Tags:

img

Übersicht

Die Strategie trägt den Namen RSI und Moving Average Combination MT5 Martingale Scalping Strategy. Sie kombiniert den doppelten gleitenden Durchschnittsindikator und den Relative Strength Index (RSI) Indikator, um den Hochfrequenz-Scalping-Handel zu implementieren und gleichzeitig das Martingale-Positionsdurchschnittsprinzip zu verwenden, um das Gesamtrisikoniveau der Strategie zu steuern.

Strategie Logik

  1. Die Strategie verwendet zunächst den Stochindikator, um einen benutzerdefinierten Oszillator mit dem Parameter-OszillatorPeriod auf 5 zu zeichnen, und setzt die oberen und unteren Schwellenwerte k1 und k2 zum Aufbau des Konsolidierungszones.

  2. Als nächstes wird der RSI-Indikator eingesetzt, um überkaufte und überverkaufte Phänomene zu identifizieren. Der RSI-Indikator kann effektiv den Zeitpunkt der Marktdurchdringung der oberen und unteren Grenzen identifizieren. Diese Strategie setzt die überkaufte Linie des RSI auf 70 und die überverkaufte Linie auf 30.

  3. Darüber hinaus führt die Strategie auch den TrendActivity-Faktor als Haupttrendfilter ein. Wenn der Stochastikindikator und der RSI gleichzeitig die Umkehrbedingungen erfüllen, überprüft er auch, ob der Haupttrend noch aktiv genug ist, um Verluste aufgrund falscher Ausbrüche auf dem Schockmarkt zu vermeiden.

  4. Schließlich wird durch die dynamische Anpassung des Handelsvolumens zusätzliche Positionen platziert, wenn die Ausgangsposition Verlust erleidet, um einen Break-even zu erzielen und somit den maximalen Drawdown zu kontrollieren.

Analyse der Vorteile

  1. Die Einbeziehung des RSI-Indikators kann zu einer effektiven Identifizierung von Überkauf- und Überverkaufsphänomenen beitragen, um den Zeitpunkt der Umkehr zu beurteilen.

  2. Wenn man den Oszillator so einstellt, dass er den Konsolidierungsbereich bestimmt, kann man einige falsche Breakout-Signale herausfiltern.

  3. Die Festlegung des Haupttrendfilters verhindert Verluste auf volatilen Märkten.

  4. Die durchschnittliche Martingale-Position kontrolliert effektiv die maximale Auslastung der Strategie und ist der Schlüssel zu einer nachhaltigen Rentabilität.

Risikoanalyse

  1. Unter abnormalen Marktbedingungen kann der RSI-Indikator versagen und zu einer Fehleinschätzung von Überkauf- und Überverkaufszuständen führen.

  2. Eine falsche Einstellung des Oszillators kann auch zu einer übermäßigen Signalfilterung oder zur Identifizierung falscher Ausbrüche führen, was eine Optimierung der Parameter auf Basis historischer Marktdaten erfordert.

  3. Die Martingale-Positionsdurchschnittswerte führen in bestimmten Umgebungen zu Kaskadenverlusten.

  4. Die Strategie wurde nur auf 15-minütigen Daten des Währungspaares GBPUSD überprüft.

Optimierungsrichtlinien

  1. Optimierung der Parameter des RSI, um Parameter zu finden, die besser für das aktuelle Marktumfeld geeignet sind.

  2. Testen und optimieren Sie die Parameter des Oszillators, damit er die Konsolidierungszone genauer beurteilen kann.

  3. Fügen Sie Stop-Loss-Logik hinzu. Stoppen Sie Verluste aktiv, wenn Verluste ein bestimmtes Niveau erreichen, um einzelne Verluste effektiv zu kontrollieren.

  4. Optimieren Sie die Einstellregeln des Haupttrendfilters, um zu vermeiden, dass Umkehrmöglichkeiten verpasst werden.

  5. Versuche verschiedene zusätzliche Positionsgröße Einstellungen. müssen sicherstellen, dass die zusätzliche Menge ist nicht zu groß, um schnelle Verluste verursachen.

Zusammenfassung

Diese Strategie kombiniert den doppelten gleitenden Durchschnittsindikator, den RSI-Indikator und den benutzerdefinierten Oszillator, um die oberen und unteren Grenzdurchbruchphänomene kurzfristig zu beurteilen, und verwendet den Haupttrendfilter, um falsche Ausbrüche für einen effizienten Scalping-Handel zu vermeiden. Gleichzeitig wird das klassische Martingale-Positionsdurchschnittsprinzip eingeführt, um das Gesamtrisikoniveau zu kontrollieren. Die Strategie hat das Potenzial, nach Parameteroptimierung und striktem Risikomanagement stabile Renditen zu erzielen.


/*backtest
start: 2022-11-24 00:00:00
end: 2023-11-30 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © cloudofw

//@version=5
strategy("F2.2 Martingale Scalping Strategy", overlay=true)

// Input parameters
rsiOverbought = input.int(70, "RSI Overbought Threshold")
rsiOversold = input.int(30, "RSI Oversold Threshold")
oscillatorPeriod = input.int(5, "Period for oscillator")
k1 = input.float(0.2, "K1 for oscillator's zone")
k2 = input.float(0.5, "K2 for oscillator's zone")
trendActivity = input.float(1.0, "Main Trend filter", minval=0.1)
decreasePerOrder = input.float(0.1, "Trend filter decrease per order", minval=0.01)

// Calculate custom oscillator and RSI
oscillator = ta.stoch(close, high, low, oscillatorPeriod)
rsiValue = ta.rsi(close, 14)

zoneHigh = 100 - k1 * 100
zoneLow = k2 * 100

// Entry conditions
longCondition = oscillator < zoneLow and trendActivity > 0 and rsiValue < rsiOversold
shortCondition = oscillator > zoneHigh and trendActivity > 0 and rsiValue > rsiOverbought

// Martingale logic
var lot_multiplier = 1.0
var last_lot_size = strategy.equity * 0.01
var trade_1_profit = 0.0
if (strategy.position_size != 0)
    lot_multiplier := last_lot_size / strategy.position_size < 1.5 ? lot_multiplier * 1.5 : 1.0
    trade_1_profit := strategy.grossprofit
else
    lot_multiplier := 1.0
    trade_1_profit := 0.0
lot_size = strategy.equity * 0.01 * lot_multiplier + trade_1_profit
last_lot_size := lot_size

// Trading logic
if longCondition and strategy.position_size == 0
    strategy.entry("Long", strategy.long)
    
if shortCondition and strategy.position_size == 0
    strategy.entry("Short", strategy.short)

// Exit conditions
if longCondition == false and strategy.position_size > 0
    strategy.close("Long")

if shortCondition == false and strategy.position_size < 0
    strategy.close("Short")

// Indicators on chart
plotshape(series=longCondition, title="Buy Entry", location=location.belowbar, color=color.green, style=shape.labelup, text="Buy")
plotshape(series=shortCondition, title="Sell Entry", location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell")

plot(oscillator, color=color.blue, title="Oscillator")
hline(zoneHigh, "Upper Zone", color=color.red)
hline(zoneLow, "Lower Zone", color=color.green)


Mehr

Das ist Zhang.Was ist die Ursache, dass die Simulation direkt kopiert wird, um zu entdecken, dass die Zählpunkte erreicht werden, ohne dass eine Zähloperation durchgeführt wurde?