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)