Scalping EMA ADX RSI mit Kauf/Verkauf

Schriftsteller:ChaoZhang, Datum: 26.5.2022 17:11:01 Uhr
Tags:ADXRMARSIEMASMAWMA

Dies ist ein Studienindikator, der die Einträge in der Strategie zeigt, die in einem der YouTube-Kanäle gesehen werden, so dass es nicht zu mir gehört. Ich kann nicht sagen, wer es ist, weil es gegen die Hausregeln ist, zu werben, aber Sie können es herausfinden, wenn Sie es auf YouTube suchen. Standardwerte von Oszillatoren und EMA angepasst, wie vorgeschlagen. Er sagt, er hat die besten Ergebnisse in 5 Minuten Zeitrahmen bekommen, aber ich habe versucht, die Dinge so modifizierbar wie möglich zu machen, so dass Sie mit den Einstellungen herummischen und Ihre eigene Strategie für verschiedene Zeitrahmen erstellen können, wenn Sie möchten.

Die Einstiegsstrategie selbst ist ziemlich einfach. Die Regeln für den Einstieg sind wie folgt, das Skript wird all dies auf Auto überprüfen und wird Ihnen Kauf-oder Verkaufssignal geben: Empfohlene Zeit: 5 min.

Für den langen Eintritt:

  • Überprüfen Sie, ob der Preis über dem eingestellten EMA liegt (Diese Regel kann in den Einstellungen deaktiviert werden, wenn Sie möchten)
  • RSI ist in Überverkauft
  • ADX liegt über der festgelegten Trend Ready-Schwelle (Das bedeutet, dass ein Trend stattfindet)
  • Der Preis muss den Trend der vorherigen Kerzen bestätigen. Dies ist bullish für Kauf-Einträge und bearish für Verkaufseinträge.
  • Eintritt mit einem Stop-Loss unter dem letzten Schwingen-Tief mit einem Take-Profit-Verhältnis von 1:1 oder 1,5:1.

Für den kurzen Eintrag:

  • Überprüfen Sie, ob der Preis unter dem eingestellten EMA liegt (Diese Regel kann in den Einstellungen deaktiviert werden, wenn Sie möchten)
  • RSI ist in Überkauf
  • ADX liegt über der festgelegten Trend Ready-Schwelle (Das bedeutet, dass ein Trend stattfindet)
  • Der Preis muss den Trend der vorherigen Kerzen bestätigen. Dies ist bullish für Kauf-Einträge und bearish für Verkaufseinträge.
  • Eintritt mit einem Stop-Loss über dem letzten Swing-Hoch mit einem Take-Profit-Verhältnis von 1:1 oder 1,5:1.

Das ist mein erster Indikator. Lassen Sie mich wissen, wenn Sie irgendwelche Updates wollen. Ich bin nicht sicher, ob ich alles hinzufügen kann, aber ich werde es trotzdem versuchen.

Ändert: Signale werden bis zu 2 Kerzen vorher überprüft, wenn der RSI unter oder über dem eingestellten Wert ist, um das Signal anzuzeigen.

Zurückprüfung

img


/*backtest
start: 2022-04-25 00:00:00
end: 2022-05-24 23:59:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
indicator(title='EMA RSI ADX Scalping Alerts', shorttitle="ERA Scalper", overlay=true)

//Define MA Inputs and group them
maType = input.string(title="MA Type", options=["EMA", "SMA", "WMA", "VWMA", "HMA", "RMA", "DEMA", "TEMA", "LSMA", "ZLSMA"], defval="EMA", group='MA Settings')
emaSource = input.source(title='MA Source', defval=close, group='MA Settings')
emaLength = input.int(title='MA Length', defval=50, minval=1, maxval=999, group='MA Settings')

//Other Moving Avarage Calculations
e1 = ta.ema(emaSource, emaLength)
e2 = ta.ema(e1, emaLength)
dema = 2 * e1 - e2

ema1 = ta.ema(emaSource, emaLength)
ema2 = ta.ema(ema1, emaLength)
ema3 = ta.ema(ema2, emaLength)
tema = 3 * (ema1 - ema2) + ema3

lsmaOffset = input.int(title="LSMA Offset", defval=0, minval=0, maxval=100, tooltip='Only used if you choose the LSMA and ZLSMA(Zero Lag LSMA) Option between MA Types', group='MA Settings')
lsma = ta.linreg(emaSource, emaLength, lsmaOffset)
lsma2 = ta.linreg(lsma, emaLength, lsmaOffset)
eq = lsma-lsma2
zlsma = lsma+eq

// Switch between different MA Types
emaValue = switch maType
    "EMA" => ta.ema(emaSource, emaLength)
    "SMA" => ta.sma(emaSource, emaLength)
    "WMA" => ta.wma(emaSource, emaLength)
    "VWMA" => ta.vwma(emaSource, emaLength)
    "HMA" => ta.hma(emaSource, emaLength)
    "RMA" => ta.rma(emaSource, emaLength) 
    "DEMA" => dema
    "TEMA" => tema 
    "LSMA" => lsma
    "ZLSMA" => zlsma
    =>
        runtime.error("No matching MA type found.")
        float(na)
    
//Define RSI inputs and group them
rsiSource = input.source(title='RSI Source', defval=close, group='RSI Settings')
rsiLength = input.int(title='RSI Length', defval=3, minval=0, maxval=100, group='RSI Settings')
rsiValuee = ta.rsi(rsiSource, rsiLength)
rsiOverbought = input.int(title='RSI Overbought Level', defval=80, group='RSI Settings')
rsiOversold = input.int(title='RSI Oversold Level', defval=20, group='RSI Settings')

//Define overbought and oversold conditions
isRsiOB = rsiValuee >= rsiOverbought
isRsiOS = rsiValuee <= rsiOversold

//ADX Inputs and calculation of the value
adxlen = input.int(5, title='ADX Smoothing', group='ADX Settings')
dilen = input.int(5, title='DI Length', group='ADX Settings')
dirmov(len) =>
    up = ta.change(high)
    down = -ta.change(low)
    plusDM = na(up) ? na : up > down and up > 0 ? up : 0
    minusDM = na(down) ? na : down > up and down > 0 ? down : 0
    truerange = ta.rma(ta.tr, len)
    plus = fixnan(100 * ta.rma(plusDM, len) / truerange)
    minus = fixnan(100 * ta.rma(minusDM, len) / truerange)
    [plus, minus]
adx(dilen, adxlen) =>
    [plus, minus] = dirmov(dilen)
    sum = plus + minus
    adx = 100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
    adx
sig = adx(dilen, adxlen)

//Define the input and value where it is considered that there is a trend going on
adxLimit = input.int(title='Trend Ready Limit', defval=30, minval=0, maxval=100, group='ADX Settings')
trendReady = sig > adxLimit

//Draw trend ready at the bottom of the chart for better viewing so that you can change the value based on what you see easier
plotADX = input(title='Draw Trend Ready On Chart', defval=false)
readyFold = plotADX and sig > adxLimit
plotchar(series=readyFold, title='Trend Ready', location=location.bottom, color=color.new(color.blue, 0), size=size.small, char='_')

//Plot the EMA on chart
enableEmaRule = input(title='Enable MA Rule', defval=true)

//Define the signal conditions and choice to add or leave out MA Rule if you wish so
alertLong = enableEmaRule ? low > emaValue and (rsiValuee <= rsiOversold or rsiValuee[1] <= rsiOversold or rsiValuee[2] <= rsiOversold) and sig > adxLimit and close > high[1] : (rsiValuee <= rsiOversold or rsiValuee[1] <= rsiOversold or rsiValuee[2] <= rsiOversold) and sig > adxLimit and close > high[1]
alertShort = enableEmaRule ? high < emaValue and (rsiValuee >= rsiOverbought or rsiValuee[1] >= rsiOverbought or rsiValuee[2] >= rsiOverbought) and sig > adxLimit and close < low[1] : (rsiValuee >= rsiOverbought or rsiValuee[1] >= rsiOverbought or rsiValuee[2] >= rsiOverbought) and sig > adxLimit and close < low[1]
plot(enableEmaRule ? emaValue : na, color=color.new(color.red, 0), title='MA')

//Buy and Sell Shapes on Chart
plotshape(alertLong, title='Buy', location=location.belowbar, color=color.new(color.green, 0), size=size.small, style=shape.triangleup, text='Buy')
plotshape(alertShort, title='Sell', location=location.abovebar, color=color.new(color.red, 0), size=size.small, style=shape.triangledown, text='Sell')

//Alerts
alertcondition(title='Buy Alert', condition=alertLong, message='Long Conditions are Met')
alertcondition(title='Sell Alert', condition=alertShort, message='Short Conditions are Met')
alertcondition(title='Buy / Sell Alert', condition=alertLong or alertShort, message='Conditions Met for Buy or Short')

if alertLong
    strategy.entry("Enter Long", strategy.long)
else if alertShort
    strategy.entry("Enter Short", strategy.short)

Verwandt

Mehr