RicardoSantos

[RS]Multiple Moving Averages System V3

Multiple moving averages system with color coding and hardcoded lengths based on time frame, if you have any suggestions feel free to post or pm.
Скрипт с открытым кодом

В истинном духе TradingView автор этого скрипта опубликовал его с открытым исходным кодом, чтобы трейдеры могли понять, как он работает, и проверить на практике. Вы можете воспользоваться им бесплатно, но повторное использование этого кода в публикации регулируется Правилами поведения. Вы можете добавить этот скрипт в избранное и использовать его на графике.

Отказ от ответственности

Все виды контента, которые вы можете увидеть на TradingView, не являются финансовыми, инвестиционными, торговыми или любыми другими рекомендациями. Мы не предоставляем советы по покупке и продаже активов. Подробнее — в Условиях использования TradingView.

Хотите использовать этот скрипт на графике?
study(title="[RS]Multiple Moving Averages System V3", shorttitle="[RS]MMAS.V3", overlay=true)
useDPO = input(true)
src = ohlc4

ma_length00 = period == "1" ? 15 : 
        period == "5" ? 24 : // 2 hours
        period == "15" ? 12 : 
        period == "30" ? 8 : 
        period == "45" ? 8 : 
        period == "60" ? 24 : 
        period == "120" ? 12 : 
        period == "240" ? 6 : 
        period == "D" ? 5 : 
        period == "W" ? 4 : 
        period == "M" ? 6 : 13

ma_length01 = period == "1" ? 60 : 
        period == "5" ? 288 : // 1 day
        period == "15" ? 48 : 
        period == "30" ? 48 : 
        period == "45" ? 32 : 
        period == "60" ? 120 : 
        period == "120" ? 58 : 
        period == "240" ? 30 : 
        period == "D" ? 20 : 
        period == "W" ? 12 : 
        period == "M" ? 24 : 34

ma_length02 = period == "1" ? 1440 : 
        period == "5" ? 1440 : // 1 week
        period == "15" ? 480 : 
        period == "30" ? 240 : 
        period == "45" ? 160 : 
        period == "60" ? 576 : // 1 month
        period == "120" ? 240 : 
        period == "240" ? 120 : 
        period == "D" ? 60 : 
        period == "W" ? 52 : 
        period == "M" ? 60 : 144


ema1 = sma(src, ma_length00)
ema2 = sma(src, ma_length01)
ema3 = sma(src, ma_length02)

// ma color system:
c(ma) => ma < close ? green : maroon

p1 = plot(ema1, color=c(ema1), linewidth=3, title="ma1")
p2 = plot(ema2, color=c(ema2), linewidth=3, title="ma2")
p3 = plot(ema3, color=c(ema3), linewidth=3, title="ma3")

// ||------------------------------------------||
// ||---    DPO Weighted MA & Bar Colors    ---||
// ||------------------------------------------||

// DPO
dpo_weight = input(0.125)
dpo_length = round(1 + ma_length00 / 10)
dpo_src = ohlc4

dpo_disp = (dpo_src - sma(dpo_src[round(dpo_length/2) + 1], dpo_length))
dpo = (dpo_src - sma(dpo_src, dpo_length))

dpo_f = (dpo / dpo_src) * 1
dpo_df = (dpo_disp / dpo_src) * 1

dpo_trend = dpo_df - dpo_f
dpo_cycle = dpo_trend + dpo_df

dpo_diff = dpo_cycle-dpo_trend

// ma
ma1 = sma(dpo_src, dpo_length)
ma2 = sma(ma1 + (ma1 * (dpo_diff-dpo_trend))*dpo_weight, 6) 

bgsrc = useDPO ? dpo_src : sma(src, dpo_length)
plot(bgsrc, color=silver, linewidth=1)

bc = bgsrc > ma2 and ema1 < ohlc4 ?
        close > open ? lime : green :
        bgsrc < ma2 and ema1 > ohlc4 ?
        close > open ? red : maroon :
        close > open ? silver : gray

barcolor(bc)