Handelsstrategie für die Kombination von SMA und RSI

Schriftsteller:ChaoZhang, Datum: 2023-10-08 11:40:49
Tags:

Übersicht

Diese Strategie basiert auf den Indikatoren Simple Moving Average (SMA) und Relative Strength Index (RSI). Sie geht kurz, wenn der RSI über ein definiertes Einstiegsniveau geht und der Schlusskurs unterhalb des SMA liegt, wobei der Trailing Stop Loss oder der RSI-ausgelöste Stop Loss verwendet wird. Die Strategie kombiniert Trendfolgende und Überkauf/Überverkauf Indikatoren und zielt darauf ab, Umkehrmöglichkeiten im mittelfristigen Zeitrahmen zu erfassen.

Strategie Logik

  1. Verwenden Sie den SMA (200 Perioden), um die allgemeine Trendrichtung zu bestimmen.

  2. Verwenden Sie den RSI (14 Perioden), um Überkauf/Überverkauf zu identifizieren.

  3. Wenn der RSI über 54 oder unter 32 steigt, schließen Sie die Position.

  4. Es gibt drei Arten von Stop-Loss: Preis-Stop, RSI-Stop und Profit-Stop.

Stärken

  1. Die Kombination von Trend- und Überkauf-/Überverkaufsindicatoren verbessert die Zeitgenauigkeit der Einträge.

  2. Ein Trailing Stop Loss kann die Gewinne entsprechend der Echtzeit-Kursänderung schützen und einen starren Stop Loss vermeiden.

  3. Der RSI-Zwei-Wege-Auslöser hilft, Gewinne zu erzielen und übermäßige Rücknahmeverluste zu verhindern.

  4. Durch die Verwendung einfacher Indikatoren mit festen Parametern ist die Umsetzung für den mittelfristigen Handel einfach.

Risiken

  1. Die SMA- und RSI-Parameter können nicht für alle Produkte und Zeitrahmen geeignet sein und müssen optimiert werden.

  2. Handelskosten wie Slippage und Provisionen werden ignoriert, was sich auf das tatsächliche PnL auswirkt.

  3. Andere Faktoren wie Volumen und Marktstruktur werden nicht berücksichtigt, was zu unzuverlässigen Signalen führt.

  4. Übermäßige Abhängigkeit von Indikatoren und Ignorieren der Preisbewegung selbst kann den Umkehrzeitpunkt verpassen.

  5. Die Stop-Loss-Methode ist relativ starr und kann sich nicht an große Marktveränderungen anpassen.

Verbesserungen

  1. Test und Optimierung der SMA-Periode und RSI-Parameter, um die beste Kombination zu finden.

  2. Überlegen Sie, ob Sie einen Volumenindikator hinzufügen, um einen falschen Ausbruch bei niedrigem Volumen zu vermeiden.

  3. Testkombinationen mit anderen Indikatoren wie MACD, Bollinger Bands usw.

  4. Fügen Sie maschinelle Lernalgorithmen hinzu, die die Signalgenauigkeit verbessern, indem sie mit historischen Daten trainiert werden.

  5. Optimieren Sie den Stop-Loss, um flexibler zu sein und sich an Marktveränderungen anzupassen.

  6. Zusätzliches Risikomanagement zur Kontrolle des Betrags eines einzelnen Verlustes.

Schlussfolgerung

Diese Strategie integriert die Stärken der SMA- und RSI-Indikatoren und filtert einige laute Handelsmöglichkeiten aus. Ihre einfache Logik ist einfach zu implementieren, erfordert jedoch immer noch eine Optimierung von Parametern und Regeln sowie eine angemessene Risikokontrolle, um langfristig stabil zu funktionieren.


/*backtest
start: 2022-10-01 00:00:00
end: 2023-10-07 00:00:00
period: 2d
basePeriod: 1d
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/
// © abdllhatn

//@version=5
// strategy("Alpha Short SMA and RSI Strategy", overlay=true, initial_capital=10000, default_qty_value=100)

// Inputs
sma_length = input(200, title="SMA Length")
rsi_length = input(14, title="RSI Length")
rsi_entry = input(51, title="RSI Entry Level")
rsi_stop = input(54, title="RSI Stop Level")
rsi_take_profit = input(32, title="RSI Take Profit Level")

// Indicators
sma_value = ta.sma(close, sma_length)
rsi_value = ta.rsi(close, rsi_length)

var float trailingStop = na
var float lastLow = na

// Conditions
shortCondition = ta.crossover(rsi_value, rsi_entry) and close < sma_value
if (shortCondition)
    strategy.entry("Sell", strategy.short)
    trailingStop := na
    lastLow := na

if (strategy.position_size < 0)
    if (na(lastLow) or close < lastLow)
        lastLow := close
        trailingStop := close

if not na(trailingStop) and close > trailingStop
    strategy.close("Sell")

if (rsi_value >= rsi_stop)
    strategy.close("Sell")

if (rsi_value <= rsi_take_profit)
    strategy.close("Sell")

// Plot
plot(sma_value, color=color.red, linewidth=2)




Mehr