Đường Moving Average đa khung thời gian trên TradingView

Trong khi sử dụng các đường trung bình trượt (Moving Average) phân tích thị trường, mọi người thường sử dụng nhiều khung thời gian khác nhau. Ứng với mỗi khung thời gian thì đường trung bình trượt sẽ được tính từ "số nến" tại khung thời gian đó. Ví dụ đường MA(10) trên khung ngày sẽ là trung bình 10 ngày, trong khi trên khung giờ thì là trung bình của 10 giờ. Vậy nếu chúng ta muốn nhìn đường MA(10) tính bằng ngày trên khung 1 giờ thì phải làm sao? Đó là lúc chúng ta phải dùng đường Moving Average đa khung thời gian.

Mình đã phát triển một script nhỏ trên nền tảng tradingview để chúng ta có thể xem nhiều đường MA với các khung thời gian khác nhau trên cùng một biểu đồ. Mọi người có thể sử dụng tại đây.

Script hỗ trợ 5 đường MA khác nhau, sử dụng đường nào các bạn tick vào ô tương ứng. Có 4 loại đường MA được hỗ trợ là SMA(trung bình trượt), EMA(trung bình hàm mũ), WMA(trung bình gia quyền) và VWMA (trung bình gia quyền khối lượng) tùy chọn khung thời gian (mục Resolution) và độ dài.

Màn hình setting

Toàn bộ Script các bạn có thể lấy từ tradingview hoặc dưới đây:

// show the same moving average on any timeframe
study("Multi Time Frame Moving Average", "MTF MA", overlay=true)
src = input(title="Source", type=source, defval=close)
//--input--
ma1 = input(title="use MA1 ?", type=bool, defval=true)
ma1_type = input(title="MA1 Type: SMA, EMA, WMA, VWMA", type=string, defval="SMA")
ma1_res = input(title="MA1 resolution ?", type=resolution, defval="D")
ma1_len = input(title="MA1 lengh ?", type=integer, defval=50, minval=1)

ma2 = input(title="use MA2 ?", type=bool, defval=true)
ma2_type = input(title="MA2 Type: SMA, EMA, WMA, VWMA", type=string, defval="SMA")
ma2_res = input(title="MA2 resolution ?", type=resolution, defval="D")
ma2_len = input(title="MA2 lengh ?", type=integer, defval=200, minval=1)

ma3 = input(title="use MA3 ?", type=bool, defval=true)
ma3_type = input(title="MA3 Type: SMA, EMA, WMA, VWMA", type=string, defval="SMA")
ma3_res = input(title="MA3 resolution ?", type=resolution, defval="W")
ma3_len = input(title="MA3 lengh ?", type=integer, defval=200, minval=1)

ma4 = input(title="use MA4 ?", type=bool, defval=true)
ma4_type = input(title="MA4 Type: SMA, EMA, WMA, VWMA", type=string, defval="EMA")
ma4_res = input(title="MA4 resolution ?", type=resolution, defval="M")
ma4_len = input(title="MA4 lengh ?", type=integer, defval=5, minval=1)

ma5 = input(title="use MA5 ?", type=bool, defval=true)
ma5_type = input(title="MA1 Type: SMA, EMA, WMA, VWMA", type=string, defval="EMA")
ma5_res = input(title="MA5 resolution ?", type=resolution, defval="M")
ma5_len = input(title="MA5 lengh ?", type=integer, defval=10, minval=1)
//--Function
variant(type, src, len) =>
v1 = sma(src, len)                                            // Simple
v2 = ema(src, len)                                            // Exponential
v3 = wma(src, len)                                            // Weighted
v4 = vwma(src, len)                                           // Volume Weighted
// return variant, defaults to SMA if input invalid.
type=="EMA"?v2 : type=="WMA"?v3 : type=="VWMA"?v4 : v1
//--output--
outma1 = iff(ma1, security(tickerid, ma1_res, variant(ma1_type, src, ma1_len)), na)
outma2 = iff(ma2, security(tickerid, ma2_res, variant(ma2_type, src, ma2_len)), na)
outma3 = iff(ma3, security(tickerid, ma3_res, variant(ma3_type, src, ma3_len)), na)
outma4 = iff(ma4, security(tickerid, ma4_res, variant(ma4_type, src, ma4_len)), na)
outma5 = iff(ma5, security(tickerid, ma5_res, variant(ma5_type, src, ma5_len)), na)
//--plot--
plot(outma1, title="MA1", color = red)
plot(outma2, title="MA2", color = green)
plot(outma3, title="MA3", color = purple)
plot(outma4, title="MA4", color = orange)
plot(outma5, title="MA5", color = blue)

Show Comments

Get the latest posts delivered right to your inbox.