Diese Strategie ist ein Trend-Folgende System, das RSI-Überverkauft Signale, langfristige gleitende Durchschnitte und Volumenbestätigung kombiniert. Es zielt darauf ab, lange Positionen während überverkaufter Bedingungen innerhalb etablierter Aufwärtstrends zu erfassen, die durch Volumenerweiterung validiert werden. Die Strategie nutzt einen 10-Perioden-RSI, doppelte SMAs von 250 und 500 Perioden und einen 20-Perioden-Volumen-gleitenden Durchschnitt als Kernindikatoren.
Die Kernlogik basiert auf drei Schlüsselbedingungen, die in Harmonie funktionieren:
Eine Long-Position wird eingeleitet, wenn alle drei Bedingungen gleichzeitig erfüllt sind. Das Exit-Signal wird durch ein Death Cross ausgelöst (kurzerer MA unter einem längeren MA). Zusätzlich wird ein Stop-Loss von 5% für das Risikomanagement implementiert.
Es handelt sich um eine gut gestaltete Trend-Folge-Strategie mit strenger Logik, die Renditen und Risiken durch mehrere technische Indikatoren effektiv ausgleicht.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-27 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) https://creativecommons.org/licenses/by-nc-sa/4.0/ // © wielkieef //@version=5 strategy(title=' Rsi Long-Term Strategy [15min]', overlay=true, pyramiding=1, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills=false, slippage=0, commission_type=strategy.commission.percent, commission_value=0.03) // Rsi rsi_lenght = input.int(10, title='RSI lenght', minval=0) rsi_up = ta.rma(math.max(ta.change(close), 0), rsi_lenght) rsi_down = ta.rma(-math.min(ta.change(close), 0), rsi_lenght) rsi_value = rsi_down == 0 ? 100 : rsi_up == 0 ? 0 : 100 - 100 / (1 + rsi_up / rsi_down) rsi_overs = rsi_value <= 30 rsi_overb = rsi_value >= 70 // Volume vol_sma_length = input.int(20, title='Volume lenght ', minval=1) Volume_condt = volume > ta.sma(volume, vol_sma_length) * 2.5 //SMA1 lengthSMA1 = input(250, title="Lenght SMA 1") SMA1 = ta.sma(close, lengthSMA1) //plot(SMA1, color=color.rgb(245, 108, 3), linewidth=1, title="SMA250") //SMA2 lengthSMA2 = input(500, title="Lenght SMA 2") SMA2 = ta.sma(close, lengthSMA2) //plot(SMA2, color=#9803f5, linewidth=1, title="SMA500") //Entry Logic Long_cond = (rsi_overs and SMA1 > SMA2 and Volume_condt ) if Long_cond strategy.entry('Long', strategy.long) //Close Logic Long_close = ta.crossunder(SMA1,SMA2) if Long_close strategy.close("Long") //Bar colors Bar_color = Volume_condt ? #fc9802 : SMA1 > SMA2 ? color.rgb(84, 252, 0) : SMA1 < SMA2 ? color.maroon : color.gray barcolor(color=Bar_color) // Rsi value Plotshapes plotshape(rsi_value < 30 and SMA1 > SMA2 and Volume_condt, title='Buy', color=color.new(color.green, 0), style=shape.circle, location=location.belowbar, size=size.tiny, textcolor=color.new(color.black, 0)) plotshape(rsi_value > 70 and SMA1 < SMA2 and Volume_condt, title='Sell', color=color.new(color.red, 0), style=shape.circle, location=location.abovebar, size=size.tiny, textcolor=color.new(color.black, 0)) plotshape(ta.crossunder(SMA1,SMA2) , title='DEATH CROSS', color=#000000, style=shape.xcross, location=location.abovebar, size=size.small, textcolor=color.new(color.black, 0)) //Stop-Loss// this code is from author RafaelZioni, modified by wielkieef pera(pcnt) => strategy.position_size != 0 ? math.round(pcnt / 100 * strategy.position_avg_price / syminfo.mintick) : float(na) stoploss = input.float(title=' stop loss', defval=5.0, minval=0.5) los = pera(stoploss) strategy.exit('SL', loss=los) // by wielkieef