RicardoSantos

[RS]Modified McClellan Oscilator Candles V1

Experimental:
Update: added option for reading ADVN and DECN indexs from NYSE.
نص برمجي مفتوح المصدر

قام مؤلف هذا النص البرمجي بنشره وجعله مفتوح المصدر، بحيث يمكن للمتداولين فهمه والتحقق منه، وهو الأمر الذي يدخل ضمن قيم TradingView. تحياتنا للمؤلف! يمكنك استخدامه مجانًا، ولكن إعادة استخدام هذا الكود في منشور تحكمه قواعد الموقع. يمكنك جعله مفضلاً لاستخدامه على الرسم البياني.

إخلاء المسؤولية

لا يُقصد بالمعلومات والمنشورات أن تكون، أو تشكل، أي نصيحة مالية أو استثمارية أو تجارية أو أنواع أخرى من النصائح أو التوصيات المقدمة أو المعتمدة من TradingView. اقرأ المزيد في شروط الاستخدام.

هل تريد استخدام هذا النص البرمجي على الرسم البياني؟
study(title="[RS]Modified McClellan Oscilator Candles V1")
//  ||----------------------------------------------------------------------------------------------------------------------------
//  source: http://stockcharts.com/school/doku.php?id=chart_school:technical_indicators:mcclellan_oscillator
//  Ratio Adjusted Net Advances (RANA): (Advances - Declines)/(Advances + Declines)
//
//    McClellan Oscillator: 19-day EMA of RANA - 39-day EMA of RANA
//
//  19-day EMA* = (Current Day RANA - Prior Day EMA) * .10 + Prior Day EMA)
//  39-day EMA* = (Current Day RANA - Prior Day EMA) * .05 + Prior Day EMA)
//
//  * The first EMA calculation is a simple average. 
//  ||----------------------------------------------------------------------------------------------------------------------------
fast_length = input(title='EMA - Fast Length:', type=integer, defval=19)
slow_length = input(title='EMA - Slow Length:', type=integer, defval=39)
USE_RANA = input(title='Use Ratio Adjustment Net Advancement:', type=bool, defval=true)
SHOW_SIGNAL = input(title='Show Lines:', type=bool, defval=true)
smooth_length = input(title='Smooth Signal Length:', type=integer, defval=4)
USE_NYSE_ADVDEC = input(title='Use NYSE ADV/DEC Index:', type=bool, defval=false)

advance = USE_NYSE_ADVDEC ? security('ADVN', period, close) : cum(close > open ? close - open : 0)
decline = USE_NYSE_ADVDEC ? security('DECN', period, close) : cum(close < open ? open - close : 0)

adv_dec = USE_RANA ? ((advance-decline)/(advance+decline)) : change(close)
ma_fast = ema(adv_dec, fast_length)
ma_slow = ema(adv_dec, slow_length)

mcl_osc = ma_fast-ma_slow

signal_slow = sma(mcl_osc, smooth_length)
signal_slower = sma(mcl_osc, smooth_length*2)

palete = mcl_osc >= signal_slow ? lime : red
plotcandle(signal_slow, mcl_osc, mcl_osc, signal_slower, color=palete, wickcolor=gray)

plot(not SHOW_SIGNAL ? na : mcl_osc, color=mcl_osc>0?green:mcl_osc<0?maroon:gray, editable=true)
hline(0, color=black, editable=true)

signal = not SHOW_SIGNAL ? na : sma(mcl_osc, smooth_length)
plot(not SHOW_SIGNAL ? na : signal, color=black, linewidth=2, editable=true)