Scalping EMA ADX RSI dengan Beli / Jual

Penulis:ChaoZhang, Tarikh: 2022-05-26 17:11:01
Tag:ADXRMARSIEMASMAWMA

Ini adalah penunjuk kajian yang menunjukkan entri dalam strategi yang dilihat di salah satu saluran youtube jadi ia bukan milik saya. Saya tidak boleh mengatakan siapa itu kerana ia adalah bertentangan dengan Peraturan Rumah untuk mengiklankan tetapi anda boleh mengetahui jika anda mencarinya di youtube. Nilai lalai pengayun dan ema disesuaikan seperti yang dicadangkan. Dia mengatakan dia mendapat hasil terbaik dalam jangka masa 5 minit tetapi saya cuba untuk membuat perkara yang boleh diubahsuai sebanyak mungkin supaya anda boleh bermain-main dengan tetapan dan membuat strategi anda sendiri untuk jangka masa yang berbeza jika anda mahu. Disyorkan untuk digunakan dengan carta lilin biasa. Garis biru di bawah menunjukkan ADX berada di atas ambang yang dipilih yang ditetapkan dalam tetapan yang dinamakan Trend Ready Limit. Anda boleh menetapkan pemberitahuan untuk isyarat Beli, Jual atau Beli / Jual bersama-sama.

Strategi kemasukan itu sendiri agak mudah. Peraturan untuk masuk adalah seperti berikut, skrip akan memeriksa semua ini pada automatik dan akan memberi anda membeli atau menjual isyarat: Jangka masa yang disyorkan: 5 minit

Untuk entri panjang:

  • Periksa sama ada harga di atas EMA yang ditetapkan (Anda boleh melumpuhkan peraturan ini jika anda mahu dalam tetapan)
  • RSI adalah dalam Oversold
  • ADX berada di atas ambang Trend Ready yang ditetapkan (bererti terdapat trend yang berlaku)
  • Harga mesti meluluskan trend lilin sebelumnya. Ini bullish untuk entri beli dan bearish untuk entri jual.
  • Masuk dengan stop loss di bawah swing terakhir rendah dengan 1: 1 atau 1.5: 1 mengambil keuntungan nisbah.

Untuk entri ringkas:

  • Periksa jika harga di bawah EMA yang ditetapkan (Anda boleh melumpuhkan peraturan ini jika anda mahu dalam tetapan)
  • RSI adalah dalam Overbought
  • ADX berada di atas ambang Trend Ready yang ditetapkan (bererti terdapat trend yang berlaku)
  • Harga mesti meluluskan trend lilin sebelumnya. Ini bullish untuk entri beli dan bearish untuk entri jual.
  • Masuk dengan stop loss di atas swing tertinggi terakhir dengan nisbah keuntungan 1: 1 atau 1: 1.

Ini adalah indikator pertama saya. Beritahu saya jika anda mahu sebarang kemas kini. Saya tidak pasti jika saya boleh menambah segala-galanya tetapi saya akan cuba bagaimanapun.

Perubahan: Isyarat akan memeriksa sehingga 2 lilin sebelum jika RSI di bawah atau di atas nilai yang ditetapkan untuk menunjukkan isyarat. Ini kerana kadang-kadang isyarat masuk adalah betul tetapi tindak balas mungkin sedikit lewat.

Ujian belakang

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)

Berkaitan

Lebih lanjut