0 beğenilme 0 beğenilmeme
396 kez görüntülendi
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/

// © ArtyFXC

//@version=4

study(title="TMA - RSI Divergence Indicator", shorttitle= "TMA - RSI DIV", format=format.price)

len = 14

//input(title="RSI Period", minval=1, defval=14)

src = close

//input(title="RSI Source", defval=close)

lbR = 5

//input(title="Pivot Lookback Right", defval=5)

lbL = 5

//input(title="Pivot Lookback Left", defval=5)

rangeUpper = 60

//input(title="Max of Lookback Range", defval=60)

rangeLower = 5

//input(title="Min of Lookback Range", defval=5)

plotBull = input(title="Plot Bullish", defval=true)

plotHiddenBull = input(title="Plot Hidden Bullish", defval=true)

plotBear = input(title="Plot Bearish", defval=true)

plotHiddenBear = input(title="Plot Hidden Bearish", defval=true)

bearColor = color.red

bullColor = color.green

hiddenBullColor = color.new(color.green, 80)

hiddenBearColor = color.new(color.red, 80)

textColor = color.white

noneColor = color.new(color.white, 100)

osc = rsi(src, len)

 

// ### Smoothed MA

 

showSmma = input(title="Show Moving Average", type=input.bool, defval=true, group = "Smoothed MA")

 

smmaLen = 50

//input(50, minval=1, title="SMMA Length", group = "Smoothed MA")

smmaSrc = osc

smma = 0.0

smma := na(smma[1]) ? sma(smmaSrc, smmaLen) : (smma[1] * (smmaLen - 1) + smmaSrc) / smmaLen

plot(showSmma ? smma : na, linewidth=2, color=color.white)

 

// End ###

 

lineColor = (osc > smma) ?color.yellow :  color.yellow

 

plot(osc, title="RSI", linewidth=2, color=lineColor)

hline(50, title="Middle Line", linestyle=hline.style_solid)

// obLevel = hline(70, title="Overbought", linestyle=hline.style_dotted)

// osLevel = hline(30, title="Oversold", linestyle=hline.style_dotted)

//fill(obLevel, osLevel, title="Background", color=#9915FF, transp=90)

 

plFound = na(pivotlow(osc, lbL, lbR)) ? false : true

phFound = na(pivothigh(osc, lbL, lbR)) ? false : true

_inRange(cond) =>

bars = barssince(cond == true)

rangeLower <= bars and bars <= rangeUpper

 

//------------------------------------------------------------------------------

// Regular Bullish

// Osc: Higher Low

 

oscHL = osc[lbR] > valuewhen(plFound, osc[lbR], 1) and _inRange(plFound[1])

 

// Price: Lower Low

 

priceLL = low[lbR] < valuewhen(plFound, low[lbR], 1)

bullCond = plotBull and priceLL and oscHL and plFound

 

plot(

     plFound ? osc[lbR] : na,

     offset=-lbR,

     title="Regular Bullish",

     linewidth=2,

     color=(bullCond ? bullColor : noneColor),

     transp=0

     )

 

plotshape(

bullCond ? osc[lbR] : na,

offset=-lbR,

title="Regular Bullish Label",

text=" Bull ",

style=shape.labelup,

location=location.absolute,

color=bullColor,

textcolor=textColor,

transp=0

)

 

//------------------------------------------------------------------------------

// Hidden Bullish

// Osc: Lower Low

 

oscLL = osc[lbR] < valuewhen(plFound, osc[lbR], 1) and _inRange(plFound[1])

 

// Price: Higher Low

 

priceHL = low[lbR] > valuewhen(plFound, low[lbR], 1)

hiddenBullCond = plotHiddenBull and priceHL and oscLL and plFound

 

plot(

plFound ? osc[lbR] : na,

offset=-lbR,

title="Hidden Bullish",

linewidth=2,

color=(hiddenBullCond ? hiddenBullColor : noneColor),

transp=0

)

 

plotshape(

hiddenBullCond ? osc[lbR] : na,

offset=-lbR,

title="Hidden Bullish Label",

text=" H Bull ",

style=shape.labelup,

location=location.absolute,

color=bullColor,

textcolor=textColor,

transp=0

)

 

//------------------------------------------------------------------------------

// Regular Bearish

// Osc: Lower High

 

oscLH = osc[lbR] < valuewhen(phFound, osc[lbR], 1) and _inRange(phFound[1])

 

// Price: Higher High

 

priceHH = high[lbR] > valuewhen(phFound, high[lbR], 1)

 

bearCond = plotBear and priceHH and oscLH and phFound

 

plot(

phFound ? osc[lbR] : na,

offset=-lbR,

title="Regular Bearish",

linewidth=2,

color=(bearCond ? bearColor : noneColor),

transp=0

)

 

plotshape(

bearCond ? osc[lbR] : na,

offset=-lbR,

title="Regular Bearish Label",

text=" Bear ",

style=shape.labeldown,

location=location.absolute,

color=bearColor,

textcolor=textColor,

transp=0

)

 

//------------------------------------------------------------------------------

// Hidden Bearish

// Osc: Higher High

 

oscHH = osc[lbR] > valuewhen(phFound, osc[lbR], 1) and _inRange(phFound[1])

 

// Price: Lower High

 

priceLH = high[lbR] < valuewhen(phFound, high[lbR], 1)

 

hiddenBearCond = plotHiddenBear and priceLH and oscHH and phFound

 

plot(

phFound ? osc[lbR] : na,

offset=-lbR,

title="Hidden Bearish",

linewidth=2,

color=(hiddenBearCond ? hiddenBearColor : noneColor),

transp=0

)

 

plotshape(

hiddenBearCond ? osc[lbR] : na,

offset=-lbR,

title="Hidden Bearish Label",

text=" H Bear ",

style=shape.labeldown,

location=location.absolute,

color=bearColor,

textcolor=textColor,

transp=0

)

 

 

// ### Alerts

 

 

if bearCond

    alert("Bearish Divergence")

else if hiddenBearCond

    alert("Hidden Bearish Divergence")

else if bullCond

    alert("Bullish Divergence")

else if hiddenBullCond

    alert("Hidden Bullish Divergence")

 

 

 

// END ###

 

 

İlgili kodu matriks'e uygun hale getirebilir misiniz ?
System Tester-Bağlı Emirler kategorisinde (52 puan) tarafından | 396 kez görüntülendi

1 cevap

0 beğenilme 0 beğenilmeme
merhaba,

diğer dillere hakim olmadığımızdan bu tür isteklere olumlu dönüş yapamıyoruz,

bilgilerinize
(40,149 puan) tarafından
Hoş geldiniz, Matriks Destek Platformu sizlere sorularınızın hızlıca cevaplanması için bir ortam sağlar. Sorduğunuz ve cevapladığınız soruların ve yorumlarınızın aldığı oylar üzerinden puan kazanırsınız. Puan sistemine bağlı kampanyamızla ücretsiz kullanım avantajlarından faydalanabilirsiniz.



8,637 soru
8,591 cevap
4,821 yorum
19,804 kullanıcı