Die Strategie nutzt die RSI-Anzeige, um Überkauf und Überverkauf zu bestimmen, und kombiniert eine Trend-Bestimmesystem mit einer schnellen, mittleren und langsamen Linie, um die Gelegenheit zu bestimmen, eine Position zu eröffnen, wenn die Preise springen.
Wenn die Schnelllinie die Mittellinie durchbricht und der RSI überverkauft ist, machen Sie einen Übertritt
Eintritt des Shortings, wenn der Shorting die Mittellinie durchbricht und der RSI überkauft
Der Stop-Loss ist auf 4% des Einstiegspreises festgelegt.
Die Gewinnmethode besteht darin, die Positionen in Gruppen zu stoppen, zuerst um 20% zu stoppen, dann um 15% zu stoppen, wenn der Preis weiter steigt, und die Positionen auszulassen.
Diese Strategie kombiniert die Gewichtungslinie und den Überkauf-Überverkauf-Indikator RSI, um die Kauf- und Verkaufsmöglichkeiten zu beurteilen, während die Preisentwicklung festgehalten wird. Sie gehört zu den häufigsten Trend-Tracking-Strategien. Durch Parameter-Tests und die Hinzufügung anderer Hilfsindikatoren kann die Strategie weiter optimiert und die Gewinnrate erhöht werden.
/*backtest
start: 2023-11-13 00:00:00
end: 2023-11-20 00:00:00
period: 1m
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/
// © syfuslokust
//@version=4
strategy(shorttitle='CoinruleCombinedCryptoStrat',title='CoinruleCombinedCryptoStrat', overlay=true)
// RSI inputs and calculations
lengthRSI = 14
RSI = rsi(close, lengthRSI)
//Normal
oversold = input(30)
overbought = input(70)
//ALGO
//oversold= input(26)
//overbought= input(80)
//sell pct
SellPct = input(20)
ExitPct = input(15)
//MA inputs and calculations
movingaverage_signal = sma(close, input(9))
movingaverage_fast = sma(close, input(50))
movingaverage_slow = sma(close, input(200))
movingaverage_mid= sma(close, input(100))
//Look Back
inp_lkb = input(12, title='Lookback Long Period')
inp_lkb_2 = input(2, title='Lookback Short Period')
perc_change(lkb) =>
overall_change = ((close[0] - close[lkb]) / close[lkb]) * 100
//Entry
//MA
bullish = crossover(movingaverage_signal, movingaverage_fast)
//Execute buy
strategy.entry(id="long", long = true, when = (RSI < oversold and movingaverage_fast < movingaverage_mid))
//when = crossover(close, movingaverage_signal) and movingaverage_signal < movingaverage_slow and RSI < oversold)
//Exit
//RSI
Stop_loss= ((input (4))/100)
longStopPrice = strategy.position_avg_price * (1 - Stop_loss)
//MA
bearish = crossunder(movingaverage_signal, movingaverage_fast)
//Execute sell
strategy.close("long", qty_percent = SellPct, when = RSI > overbought and movingaverage_fast > movingaverage_mid)
//when = (crossunder(low, movingaverage_signal) and movingaverage_fast > movingaverage_slow and RSI > overbought) or (movingaverage_signal < movingaverage_fast and crossunder(low, movingaverage_fast)) or (low < longStopPrice))
//PLOT
plot(movingaverage_signal, color=color.black, linewidth=2, title="signal")
plot(movingaverage_fast, color=color.orange, linewidth=2, title="fast")
plot(movingaverage_slow, color=color.purple, linewidth=2, title="slow")
plot(movingaverage_mid, color=color.blue, linewidth=2, title="mid")