SMA-basierte Doppelantriebsstrategie

Schriftsteller:ChaoZhang, Datum: 2023-11-22
Tags:

img

Übersicht

Diese Strategie baut eine einfache Dual-Thrust-Strategie auf der Basis des SMA-Indikators auf. Sie geht lang, wenn der Preis über den 20-Perioden-Höchsten SMA überschreitet, und geht kurz, wenn der Preis unter den 20-Perioden-Tiefsten SMA überschreitet. Stop-Loss-Ausgänge werden auch festgelegt.

Strategie Logik

Diese Strategie verwendet die 20-Perioden-SMA des höchsten hohen Preises und des niedrigsten niedrigen Preises, um die Richtung für den Handel zu bestimmen. Wenn der Preis über den höchsten SMA überschreitet, wird er als Aufwärtstrend betrachtet, also lang gehen. Wenn der Preis unter den niedrigsten SMA überschreitet, wird er als Abwärtstrend betrachtet, also kurz gehen.

Insbesondere berechnet die Strategie zunächst die 20-Perioden-SMA der höchsten Höchst- und niedrigsten Tiefpreise und zeichnet die Indikatorlinien.

Long Entry: Schlusskurs übersteigt den höchsten SMA
Langer Ausgang: Schlusskurs unter 0,99 * höchster SMA

Kurzer Einstieg: Schlusskurs unterhalb des niedrigsten SMA
Kurzer Ausstieg: Schlusskurs übersteigt 1,01 * niedrigste SMA

So entsteht ein Trend, der der Strategie des doppelten Schubs folgt.

Analyse der Vorteile

Diese Strategie hat folgende Vorteile:

  1. Die Verwendung von SMA zur Bestimmung der Trendrichtung ist einfach und praktisch
  2. Höchste SMA und niedrigste SMA fungieren als Unterstützungs-/Widerstandslinien
  3. Ein vernünftiges Stop-Loss-Design zur Maximierung des Schutzes vor großen Verlusten
  4. Gute Anpassungsfähigkeit, kann für verschiedene Produkte und Zeitrahmen verwendet werden

Risikoanalyse

Diese Strategie birgt auch einige Risiken:

  1. SMA hat Verzögerungseffekt, kann Trendwendepunkte verpassen
  2. Kein Schutz vor plötzlichen Marktereignissen
  3. Auswirkungen auf die Handelskosten nicht berücksichtigt

Diese Risiken können durch Kombination anderer Indikatoren, Einstellung von Stop Loss, Parameter-Tuning usw. kontrolliert und reduziert werden.

Verbesserungsrichtlinien

Diese Strategie kann auch in folgenden Bereichen verbessert werden:

  1. Kombinieren Sie andere Indikatoren wie MACD, KDJ, um den Trend zu bestimmen
  2. Zusätzlicher Schutz bei plötzlichen Ereignissen wie Aussetzung, Preisbegrenzung usw.
  3. Optimieren von SMA-Perioden, finden Sie die beste Parameterkombination
  4. Die besten Parameter für verschiedene Produkte und Zeitrahmen finden
  5. Schätzung der Auswirkungen auf die Handelskosten, Festlegung des optimalen Stop-Loss- und Take-Profits

Schlussfolgerung

Die allgemeine Logik dieser Strategie ist klar und einfach umzusetzen. Durch die Verwendung von SMA zur Bestimmung der Trendrichtung und die Festlegung vernünftiger Ein-/Ausgangsregeln können gute Ergebnisse erzielt werden. Es gibt Raum für weitere Optimierungen und durch Kombination mit anderen Techniken kann es zu einer vielversprechenden Strategie werden, die langfristig verfolgt werden sollte.


/*backtest
start: 2023-11-14 00:00:00
end: 2023-11-21 00:00:00
period: 10m
basePeriod: 1m
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/
// © AlanAntony

//@version=4


strategy("ma 20 high-low",overlay=true)

//compute the indicators

smaH = sma(high, 20)
smaL = sma(low, 20)


//plot the indicators
plot(smaH,title="smaHigh", color=color.green, linewidth=2)


plot(smaL,title="smaLow", color=color.red, linewidth=2)


//trading logic
enterlong = crossover(close,smaH) //positive ema crossover
exitlong = crossunder(close,0.99*smaH)  //exiting long


entershort = crossunder(close,smaL) //negative EMA Crossover
exitshort = crossover(close,1.01*smaH) //exiting shorts


notintrade = strategy.position_size<=0
bgcolor(notintrade ? color.red:color.green)

//execution logic

start = timestamp(2015,6,1,0,0)
//end = timestamp(2022,6,1,0,0)

if time >= start
    strategy.entry( "long", strategy.long,1, when = enterlong)
    strategy.entry( "short", strategy.short,1, when = entershort) 
    
    strategy.close("long", when = exitlong)
    strategy.close("short", when = exitshort)

//if time >= end
   // strategy.close_all()

Mehr