Durchschnittliche Umkehrung mit inkrementeller Eintrittsstrategie

Schriftsteller:ChaoZhang, Datum: 2024-01-29 15:47:24
Tags:

img

Übersicht

Die von HedgerLabs entwickelte Mean Reversion with Incremental Entry Strategie ist ein fortschrittliches Handelsstrategieskript, das sich auf die Mean Reversion-Technik auf den Finanzmärkten konzentriert.

Strategie Logik

Der Mittelpunkt dieser Strategie ist der Simple Moving Average (SMA), um den sich alle Ein- und Ausstiege drehen.

Einzigartig an dieser Strategie ist das inkrementelle Einstiegssystem. Es startet eine erste Position, wenn der Preis um einen bestimmten Prozentsatz von der MA abweicht. Nachfolgende Einträge werden dann in inkrementellen Schritten, wie vom Händler definiert, durchgeführt, wenn sich der Preis weiter von der MA entfernt. Dies zielt darauf ab, von steigender Volatilität zu profitieren.

Die Strategie verwaltet Positionen intelligent, indem sie bei einem Kurs unter dem MA lang und bei einem Kurs über dem MA kurz geht, um sich an sich ändernde Marktbedingungen anzupassen.

Ausgänge werden bestimmt, wenn der Preis den MA berührt, mit dem Ziel, Positionen an potenziellen Umkehrpunkten für optimierte Ergebnisse zu schließen.

Mit aktiviertem Calc_on_every_tick bewertet die Strategie den Markt kontinuierlich, um eine rasche Reaktion zu gewährleisten.

Analyse der Vorteile

Die Strategie der mittleren Umkehrung mit inkrementellem Eintritt hat folgende Hauptvorteile:

  1. Sehr systematisch, um emotionale Störungen zu reduzieren.
  2. Inkrementeller Einstieg bringt größeren Gewinn bei hoher Volatilität
  3. Anpassungsfähige Parameter wie MA-Periode passen zu verschiedenen Instrumenten
  4. Intelligentes Positionsmanagement passt sich automatisch Long/Short an
  5. Optimale Ausgangsziele für die Umkehrung zu geschlossenen Positionen

Risikoanalyse

Zu den zu berücksichtigenden Risiken gehören:

  1. Ausfall aus der Abhängigkeit von technischen Indikatoren
  2. Trendlosigkeit, die zu längeren Rückzügen führt
  3. Schlechte MA-Einstellungen führen zu häufigen Stopp-outs
  4. Größere Positionsgröße aufgrund eines inkrementellen Eintrags

Ausgänge können optimiert, Trendfilter hinzugefügt und die Positionsgröße reduziert werden, um die oben genannten Risiken zu mindern.

Möglichkeiten zur Verbesserung

Die Strategie kann verbessert werden, indem

  1. Hinzufügen von Trendfiltern, um ungünstige Trades zu vermeiden
  2. Optimierung der Einstiegsraten mit Volatilität
  3. Einbeziehung von Trailing Stops zur Gewinnsicherung
  4. Experimentieren mit verschiedenen gleitenden Durchschnitten
  5. Verwendung von Filtern zur Verringerung falscher Signale

Schlussfolgerung

Die Mean Reversion mit Incremental Entry Strategie konzentriert sich auf Mean Reversion-Techniken mit einem systematisierten Inkrementellen Positionsgrößenansatz. Mit anpassbaren Einstellungen ist sie an verschiedene Handelsinstrumente angepasst.


/*backtest
start: 2023-12-29 00:00:00
end: 2024-01-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Mean Reversion with Incremental Entry by HedgerLabs", overlay=true, calc_on_every_tick=true)

// Input for adjustable settings
maLength = input.int(30, title="MA Length", minval=1)
initialPercent = input.float(5, title="Initial Percent for First Order", minval=0.01, step=0.01)
percentStep = input.float(1, title="Percent Step for Additional Orders", minval=0.01, step=0.01)

// Calculating Moving Average
ma = ta.sma(close, maLength)

// Plotting the Moving Average
plot(ma, "Moving Average", color=color.blue)

var float lastBuyPrice = na
var float lastSellPrice = na

// Function to calculate absolute price percentage difference
pricePercentDiff(price1, price2) =>
    diff = math.abs(price1 - price2) / price2 * 100
    diff

// Initial Entry Condition Check Function
initialEntryCondition(price, ma, initialPercent) =>
    pricePercentDiff(price, ma) >= initialPercent

// Enhanced Entry Logic for Buy and Sell
if (low < ma)
    if (na(lastBuyPrice))
        if (initialEntryCondition(low, ma, initialPercent))
            strategy.entry("Buy", strategy.long)
            lastBuyPrice := low
    else
        if (low < lastBuyPrice and pricePercentDiff(low, lastBuyPrice) >= percentStep)
            strategy.entry("Buy", strategy.long)
            lastBuyPrice := low

if (high > ma)
    if (na(lastSellPrice))
        if (initialEntryCondition(high, ma, initialPercent))
            strategy.entry("Sell", strategy.short)
            lastSellPrice := high
    else
        if (high > lastSellPrice and pricePercentDiff(high, lastSellPrice) >= percentStep)
            strategy.entry("Sell", strategy.short)
            lastSellPrice := high

// Exit Conditions - Close position if price touches the MA
if (close >= ma and strategy.position_size > 0)
    strategy.close("Buy")
    lastBuyPrice := na

if (close <= ma and strategy.position_size < 0)
    strategy.close("Sell")
    lastSellPrice := na

// Reset last order price when position is closed
if (strategy.position_size == 0)
    lastBuyPrice := na
    lastSellPrice := na


Mehr