Strategie zur Umkehrung des bewegten Durchschnitts

Schriftsteller:ChaoZhang, Datum: 2024-02-19 14:59:10
Tags:

img

Übersicht

Der Kerngedanke dieser Strategie besteht darin, den RSI-Indikator und den gleitenden Durchschnitt zu kombinieren, um Chancen für Aktienpreisumkehrungen zu finden und niedrig zu kaufen und hoch zu verkaufen. Wenn der RSI-Indikator zeigt, dass die Aktie überverkauft ist und der kurzfristige gleitende Durchschnitt unter den Preis überschreitet, dient er als Kaufsignal. Nach dem Setzen des Stop-Loss und des Gewinns warten Sie, bis sich der Preis nach oben umkehrt.

Strategieprinzip

Diese Strategie verwendet hauptsächlich den RSI-Indikator, um überverkaufte und überkaufte Bedingungen zu beurteilen, und das goldene Kreuz und das tote Kreuz des gleitenden Durchschnitts, um Preistrends zu bestimmen. Insbesondere kann der RSI-Indikator effektiv beurteilen, ob eine Aktie überverkauft oder überkauft ist. Wenn der RSI unter 30 liegt, befindet er sich im Überverkaufsbereich. Und wenn der kurzfristige gleitende Durchschnitt (in dieser Strategie auf 9 Tage festgelegt) unter den Preis überschreitet, bedeutet dies, dass der Preis sinkt.

Wenn also der RSI-Indikator unter 40, nahe dem Überverkaufszustand, liegt und der 9-tägige gleitende Durchschnitt unter dem Preis kreuzt, kann dies als möglicher Zeitpunkt für eine Umkehr des Aktienkurses beurteilt werden, um zu kaufen.

Analyse der Vorteile

Diese Strategie kombiniert den RSI-Indikator und den gleitenden Durchschnitt, die effektiv den Zeitpunkt des Kaufs bestimmen können. Im Vergleich zu einem einzigen Urteil über Überverkauf vermeidet das zusätzliche Bedingungsurteil des gleitenden Durchschnitts Schwankungen im Überverkaufsbereich. Die Einstellung von Stop-Loss und Take-Profit ist flexibel und kann von Person zu Person variieren.

Risikoanalyse

Diese Strategie beruht auf Parameter-Einstellungen wie RSI-Urteilsschwelle, gleitendes Durchschnittszeitfenster usw. Verschiedene Parameter können zu unterschiedlichen Ergebnissen führen. Und unter bestimmten Marktbedingungen ist ein Stop-Loss immer noch möglich.

Darüber hinaus werden sich auch Transaktionsgebühren auf den Gewinn auswirken.

Optimierungsrichtung

Überlegen Sie die dynamische Anpassung der gleitenden Durchschnittsparameter, die Auswahl verschiedener Parameter für unterschiedliche Zyklen oder die Einführung anderer Indikatoren zum Beurteilen, z. B. KDJ, MACD usw., um ein umfassendes Urteil auf der Grundlage mehrerer Bedingungen zu bilden.

Es ist auch möglich, ein Handelsvolumen oder ein Kapitalverwaltungsmodul einzurichten, um den Anteil der Mittel, die durch einen einzigen Handel genutzt werden, zu kontrollieren und die Auswirkungen eines einzigen Verlustes zu verringern.

Zusammenfassung

Im Allgemeinen verwendet diese Strategie RSI-Indikatoren und gleitende Durchschnitte, um den Kaufzeitpunkt zu bestimmen, und kann Preisumkehrungen effektiv bestimmen. Kaufen in Überverkauf und Sperren in Gewinne mit Stop-Loss und Take-Profit kann gute Ergebnisse liefern. Für zukünftige Optimierungen lohnt es sich, mehr Indikatoren zu integrieren oder zusätzliche Handels- / Fondsmanagement-Module hinzuzufügen, um die Strategie robuster zu machen.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-24 23:59:59
period: 30m
basePeriod: 15m
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/
// © Coinrule

//@version=4
strategy(shorttitle='MARSI',title='Moving Average', overlay=true, initial_capital=1000,  default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

//Backtest dates
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 1,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2020, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => true

//MA inputs and calculations
inshort=input(9, title='MA short period')
MAshort= sma(close, inshort)

// RSI inputs and calculations
lengthRSI = input(14, title = 'RSI period', minval=1)
RSI = rsi(close, lengthRSI)

//Entry 
strategy.entry(id="long", long = true, when = MAshort<close and RSI<40 and window())

//Exit
longLossPerc = input(title="Long Stop Loss (%)",
     type=input.float, minval=0.0, step=0.1, defval=1.5) * 0.01
longTakePerc = input(title="Long Take Profit (%)",
     type=input.float, minval=0.0, step=0.1, defval=3) * 0.01
longSL  = strategy.position_avg_price * (1 - longLossPerc)
longTP  = strategy.position_avg_price * (1 + longTakePerc)
if (strategy.position_size > 0 and window())
    strategy.exit(id="TP/SL", stop=longSL, limit=longTP)


bgcolor(color = showDate and window() ? color.gray : na, transp = 90)  
plot(MAshort, color=color.purple, linewidth=4)



Mehr