Ausgespaltete Handelsstrategie

Schriftsteller:ChaoZhang, Datum: 2024-02-23 15:09:48
Tags:

img

Übersicht

Die Spaced Out Trading Strategy ist eine Trend-folgende Strategie, die auf gleitenden Durchschnitten basiert. Sie verwendet einen 30-tägigen exponentiellen gleitenden Durchschnitt (EMA), um Preistrends zu identifizieren und tritt in Trades ein, wenn die Preise über/unter der EMA brechen. Sie tritt aus, wenn die Preise wieder unter/über der EMA-Linie fallen. Diese Strategie funktioniert gut mit 30-minütigen bis täglichen Zeitrahmen.

Strategie Logik

Die Kernlogik beruht auf der Beziehung zwischen Preis und der 30-Tage-EMA, um Ein- und Ausstiegssignale zu erzeugen.

  1. Berechnen Sie den 30-Tage-EMA als Benchmark für den Trend.
  2. Lange Trades werden eingeleitet, wenn die Preise über der EMA liegen.
  3. Exit Trades, wenn die Preise wieder unter die EMA fallen.

Durch die Erfassung von Trend-Ausbrüchen zielt es darauf ab, von Dynamikbewegungen und Trend-nachfolgenden Möglichkeiten zu profitieren.

Analyse der Vorteile

Zu den Hauptvorteilen dieser Strategie gehören:

  1. Einfache Logik, die leicht zu verstehen und zu niedrigen Kosten umzusetzen ist.
  2. Vergleicht Preisschwankungen unter Verwendung der EMA und konzentriert sich auf den Haupttrend.
  3. Der 30-Tage-EMA bietet eine mittelfristige Linse, um sowohl Swing- als auch langfristige Trends zu erfassen.
  4. Anpassungsfähige Parameter, die sich an verschiedene Produkte und Marktsysteme anpassen lassen.

Risiken und Minderungsmaßnahmen

Einige der wichtigsten Risiken sind:

  1. Das Risiko, dass sich die Preise nach einem vorübergehenden Ausbruch der EMA umkehren, kann durch längere EMA-Perioden verringert werden.
  2. Das Risiko von kumulierten Verlusten durch eine anhaltende Trendumkehr kann Stop-Loss-Limits festlegen.
  3. Suboptimales EMA-Periodenrisiko kann adaptive EMA oder mehrere EMAs zusammenstellen.

Möglichkeiten zur Verbesserung

Einige Möglichkeiten, wie die Strategie verbessert werden kann:

  1. Hinzufügen von anpassungsfähigen EMA, die auf die Marktvolatilität und die Vermögensmerkmale zugeschnitten sind.
  2. Aufbau von Multi-EMA-Systemen, die kurz- und langfristige EMA kombinieren.
  3. Einbeziehung von Stop-Loss-Mechanismen, z. B. gleitender Durchschnitts-Stop, Range bound Stop.
  4. Kombination mit anderen Indikatoren, z. B. Momentum, Volatilität zur Signalfilterung.
  5. Parameteroptimierung über maschinelles Lernen.

Zusammenfassung

Die Spaced Out Trading Strategy zielt darauf ab, Trends durch den Handel mit Preisdurchbrüchen von EMA-Leveln zu erfassen. Es ist eine einfache und praktische quantitative Strategie. Mit anpassbaren Verlustlimits und vernünftigen Optimierungen kann es eine stabile Strategie sein, die über mittelfristige bis langfristige Halteperioden hinweg nachhaltige Renditen bietet.


/*backtest
start: 2024-01-23 00:00:00
end: 2024-02-22 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Spaced Out Trading Strategy", overlay=true)

// Define strategy parameters
emaPeriod = input(30, title="EMA Period")  // Longer EMA period for more spaced-out trades
stopLossPct = input(2.0, title="Stop Loss Percentage")  // Stop loss percentage
takeProfitPct = input(3.0, title="Take Profit Percentage")  // Take profit percentage

// Calculate EMA
emaValue = ta.ema(close, emaPeriod)

// Define entry and exit conditions
enterLong = ta.crossover(close, emaValue)
exitLong = ta.crossunder(close, emaValue)

// Place orders
contractsQty = 5  // Number of contracts to buy
var float lastTradePrice = na  // Track the last trade price
if enterLong and strategy.position_size == 0
    strategy.entry("Buy Call", strategy.long, qty = contractsQty)
    lastTradePrice := close
else if exitLong and strategy.position_size > 0
    strategy.close("Buy Call")
    lastTradePrice := na

// Calculate stop loss and take profit
stopLossPrice = lastTradePrice * (1 - stopLossPct / 100)
takeProfitPrice = lastTradePrice * (1 + takeProfitPct / 100)
strategy.exit("Sell Call", "Buy Call", stop = stopLossPrice, limit = takeProfitPrice)

Mehr