
Die Kernidee dieser Strategie ist die Kombination von RSI und Moving Averages, um nach Gelegenheiten zu suchen, um die Aktienpreise umzukehren, um einen niedrigen Kauf zu erzielen. Wenn der RSI zeigt, dass die Aktie überverkauft ist, und der Kurs unter dem kurzfristigen Moving Average liegt, wird dies als Kaufsignal verwendet.
Die Strategie nutzt hauptsächlich den RSI-Indikator, um Überkaufe und Überkäufe zu ermitteln, und die Gold- und Goldspirale des beweglichen Durchschnitts, um die Preisentwicklung zu ermitteln. Insbesondere kann der RSI-Indikator effektiv beurteilen, ob eine Aktie überkauft oder überkauft ist. Wenn der RSI unter 30 liegt, gehört er zum Überverkauf.
Wenn der RSI-Indikator unter 40 liegt, also in der Nähe eines Überverkaufs, und der Preis unter dem 9-Tage-Moving-Average-Linien durchbricht, kann man als einen Zeitpunkt beurteilen, in dem der Aktienkurs möglicherweise umkehrt.
Die Strategie kombiniert den RSI mit dem Moving Average, um den richtigen Zeitpunkt für einen Kauf zu bestimmen. Im Gegensatz zu einem einzigen Überverkauf, erhöht die Bedingung für den Moving Average und verhindert die Schwankung der Überverkaufszone. Die Stop-Loss-Stufe ist flexibel und kann von Person zu Person variieren.
Die Strategie ist abhängig von Parameter-Einstellungen wie RSI-Urteil-Termine, Moving-Average-Zeitfenster usw. Verschiedene Parameter können unterschiedliche Ergebnisse bringen.
Darüber hinaus haben die Transaktionskosten einen gewissen Einfluss auf die Gewinne. In der Zukunft kann man überlegen, ob man die Transaktionsmenge oder das Geldmanagement-Modul hinzufügt, um diese zu optimieren.
Es kann in Betracht gezogen werden, die Moving Average-Parameter dynamisch anzupassen, wobei verschiedene Parameter für verschiedene Perioden ausgewählt werden; oder andere Indikatoren, wie KDJ, MACD usw., können eingeführt werden, um eine multikonditionelle Komplexität zu erzeugen.
Es kann auch ein Modul für den Umsatz oder das Geldmanagement eingerichtet werden, um den Umsatzanteil eines einzelnen Handels zu kontrollieren und die Auswirkungen eines einzelnen Verlusts zu reduzieren.
Die Strategie als Ganzes, die Verwendung von RSI-Indikatoren und Moving Averages, um zu bestimmen, wann man kaufen kann, kann die Preise umkehren, und bei Überverkauf zu kaufen, um eine höhere Erfolgsrate zu erzielen. Die Kombination von Stop-Loss-Stops, um die Gewinne zu sperren, kann bessere Wirkung erzielen. Die Richtung der späteren Optimierung kann in Betracht gezogen werden, um mehr Indikatoren hinzuzufügen oder zusätzliche Handels- / Fondsmanagement-Module zu erstellen, um die Strategie zu verstärken.
/*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)