チャートを見ていると「5分足見てるけどこれ1時間足だとEMAどの辺にあるんだろ」って時がありませんか?
普通これを表示するには、5分足で1時間足の200EMAを出したければ 200 × 12 = 2400EMA を設定する計算が必要になります。
でも15分足は?30分足は?といちいち計算して変えるのがとても面倒。
そこで、どの時間足でチャートを見ていても、指定した時間足のMAを自動で表示してくれるインジケーターを作りました。
マルチタイムフレームMA インジケーター

コチラが実際にチャートに表示させたインジケーター。複数の時間足のMAラインが1つのチャート上に表示されています。

パラメータ画面でラインごとに細かく設定できます。
設定項目は1本につき4つです。
- 表示する:このラインを表示するかどうかのオンオフ
- タイプ:MAの種類(EMA / SMA / WMA / HMA / RMA)
- 時間枠:どの時間足のMAを表示するか
- 期間:MA期間の数値
例えば「時間枠:1時間 / 200EMA」にしておけば、5分足で見ていても15分足で見ていても、常に1時間足の200EMAが表示されます。
チャートの時間足を切り替えるたびに設定し直す必要がないので、かなり楽になります。
ラインは最大10本、不要なものは非表示に
このインジは最大10本のMAラインを設定できます。
7〜10本目はデフォルトで非表示になっているので、普段は使いたい本数だけONにして使ってください。
「とりあえず日足・4時間・1時間の3本だけ出しておく」という使い方もできますし、「全時間足の主要MAを一気に表示したい」という場合は10本フル稼働も可能です。
MAのタイプはEMA・SMA・WMA・HMA・RMAから選べる
このインジではラインごとにMAのタイプを変えられます。
EMA(指数移動平均)は直近のローソク足に重みをかけるMAです。トレーダーの間で一番よく使われているタイプですね。反応が早いのが特徴です。
SMA(単純移動平均)は全期間を均等に扱う一番シンプルなMAです。機関投資家も意識しやすいラインとして使われることが多い印象です。
WMA(加重移動平均)は直近を重視しつつ、EMAよりも素直な動きをします。EMAとSMAの中間くらいのイメージです。
HMA(ハル移動平均)はラグ(遅れ)を極力少なくするよう設計されたMAです。反応が早くてなめらかなので、トレンドをいち早く捉えたい人に向いています。
RMA(Wilders MA)はRSIの計算に使われているMAです。EMAよりさらに滑らかで、ノイズが少ないのが特徴です。
どれが正解というわけではなく、好みと手法に合わせて選んでください。迷ったらまずEMAで問題ないと思います。
マルチタイムフレームMAインジケーター

Tradingviewでは「Multi-Timeframe MA 10 EMA SMA WMA HMA RMA」という名前で無料公開しています。
ご自由にお使いください。
ただ、設定画面が英語なので日本語が良い方は下のコードを使ってください。
//@version=6
indicator("Multi-Timeframe MA 10 EMA SMA WMA HMA RMA", shorttitle="MTF MA", overlay=true)
// MA1
ma1_show = input.bool(true, "表示する", group="MA1")
ma1_type = input.string("EMA", "タイプ", options=["EMA", "SMA", "WMA", "HMA", "RMA"], group="MA1")
ma1_tf = input.timeframe("D", "時間枠", group="MA1")
ma1_length = input.int(20, "期間", minval=1, group="MA1")
ma1_color = input.color(color.blue, "色", group="MA1")
// MA2
ma2_show = input.bool(true, "表示する", group="MA2")
ma2_type = input.string("EMA", "タイプ", options=["EMA", "SMA", "WMA", "HMA", "RMA"], group="MA2")
ma2_tf = input.timeframe("240", "時間枠", group="MA2")
ma2_length = input.int(50, "期間", minval=1, group="MA2")
ma2_color = input.color(color.red, "色", group="MA2")
// MA3
ma3_show = input.bool(true, "表示する", group="MA3")
ma3_type = input.string("EMA", "タイプ", options=["EMA", "SMA", "WMA", "HMA", "RMA"], group="MA3")
ma3_tf = input.timeframe("60", "時間枠", group="MA3")
ma3_length = input.int(100, "期間", minval=1, group="MA3")
ma3_color = input.color(color.green, "色", group="MA3")
// MA4
ma4_show = input.bool(true, "表示する", group="MA4")
ma4_type = input.string("EMA", "タイプ", options=["EMA", "SMA", "WMA", "HMA", "RMA"], group="MA4")
ma4_tf = input.timeframe("15", "時間枠", group="MA4")
ma4_length = input.int(200, "期間", minval=1, group="MA4")
ma4_color = input.color(color.orange, "色", group="MA4")
// MA5
ma5_show = input.bool(true, "表示する", group="MA5")
ma5_type = input.string("EMA", "タイプ", options=["EMA", "SMA", "WMA", "HMA", "RMA"], group="MA5")
ma5_tf = input.timeframe("5", "時間枠", group="MA5")
ma5_length = input.int(10, "期間", minval=1, group="MA5")
ma5_color = input.color(color.purple, "色", group="MA5")
// MA6
ma6_show = input.bool(true, "表示する", group="MA6")
ma6_type = input.string("EMA", "タイプ", options=["EMA", "SMA", "WMA", "HMA", "RMA"], group="MA6")
ma6_tf = input.timeframe("1", "時間枠", group="MA6")
ma6_length = input.int(5, "期間", minval=1, group="MA6")
ma6_color = input.color(color.yellow, "色", group="MA6")
// MA7(デフォルト非表示)
ma7_show = input.bool(false, "表示する", group="MA7")
ma7_type = input.string("EMA", "タイプ", options=["EMA", "SMA", "WMA", "HMA", "RMA"], group="MA7")
ma7_tf = input.timeframe("W", "時間枠", group="MA7")
ma7_length = input.int(20, "期間", minval=1, group="MA7")
ma7_color = input.color(color.teal, "色", group="MA7")
// MA8(デフォルト非表示)
ma8_show = input.bool(false, "表示する", group="MA8")
ma8_type = input.string("EMA", "タイプ", options=["EMA", "SMA", "WMA", "HMA", "RMA"], group="MA8")
ma8_tf = input.timeframe("W", "時間枠", group="MA8")
ma8_length = input.int(50, "期間", minval=1, group="MA8")
ma8_color = input.color(color.maroon, "色", group="MA8")
// MA9(デフォルト非表示)
ma9_show = input.bool(false, "表示する", group="MA9")
ma9_type = input.string("EMA", "タイプ", options=["EMA", "SMA", "WMA", "HMA", "RMA"], group="MA9")
ma9_tf = input.timeframe("M", "時間枠", group="MA9")
ma9_length = input.int(20, "期間", minval=1, group="MA9")
ma9_color = input.color(color.aqua, "色", group="MA9")
// MA10(デフォルト非表示)
ma10_show = input.bool(false, "表示する", group="MA10")
ma10_type = input.string("EMA", "タイプ", options=["EMA", "SMA", "WMA", "HMA", "RMA"], group="MA10")
ma10_tf = input.timeframe("M", "時間枠", group="MA10")
ma10_length = input.int(50, "期間", minval=1, group="MA10")
ma10_color = input.color(color.lime, "色", group="MA10")
// タイプ別MA計算(request.securityに渡す用)
calc_ma(src, length, ma_type) =>
half = math.round(length / 2)
sq = math.round(math.sqrt(length))
switch ma_type
"SMA" => ta.sma(src, length)
"WMA" => ta.wma(src, length)
"RMA" => ta.rma(src, length)
"HMA" => ta.wma(2 * ta.wma(src, half) - ta.wma(src, length), sq)
=> ta.ema(src, length)
// マルチタイムフレームで取得
get_ma(src, length, tf, ma_type) =>
request.security(syminfo.tickerid, tf, calc_ma(src, length, ma_type), gaps=barmerge.gaps_on)
// 各MAの計算(非表示時はna)
ma1 = ma1_show ? get_ma(close, ma1_length, ma1_tf, ma1_type) : na
ma2 = ma2_show ? get_ma(close, ma2_length, ma2_tf, ma2_type) : na
ma3 = ma3_show ? get_ma(close, ma3_length, ma3_tf, ma3_type) : na
ma4 = ma4_show ? get_ma(close, ma4_length, ma4_tf, ma4_type) : na
ma5 = ma5_show ? get_ma(close, ma5_length, ma5_tf, ma5_type) : na
ma6 = ma6_show ? get_ma(close, ma6_length, ma6_tf, ma6_type) : na
ma7 = ma7_show ? get_ma(close, ma7_length, ma7_tf, ma7_type) : na
ma8 = ma8_show ? get_ma(close, ma8_length, ma8_tf, ma8_type) : na
ma9 = ma9_show ? get_ma(close, ma9_length, ma9_tf, ma9_type) : na
ma10 = ma10_show ? get_ma(close, ma10_length, ma10_tf, ma10_type) : na
// プロット
plot(ma1, title="MA 1", color=ma1_color, linewidth=2)
plot(ma2, title="MA 2", color=ma2_color, linewidth=2)
plot(ma3, title="MA 3", color=ma3_color, linewidth=2)
plot(ma4, title="MA 4", color=ma4_color, linewidth=2)
plot(ma5, title="MA 5", color=ma5_color, linewidth=2)
plot(ma6, title="MA 6", color=ma6_color, linewidth=2)
plot(ma7, title="MA 7", color=ma7_color, linewidth=2)
plot(ma8, title="MA 8", color=ma8_color, linewidth=2)
plot(ma9, title="MA 9", color=ma9_color, linewidth=2)
plot(ma10, title="MA 10", color=ma10_color, linewidth=2)
組み合わせの例
参考までに設定例をいくつか。
上位足の主要MAをまとめて表示する使い方
MA1:日足 200EMA / MA2:4時間 200EMA / MA3:1時間 200EMA という形で上位足の200EMAを3本並べておくと、サポートやレジスタンスになりやすいゾーンが一目でわかります。
複数期間のMAでリボンを作る使い方
同じ時間足でMA期間を20・50・100・200と変えて並べると、いわゆる「MAリボン」になります。ラインの並び順でトレンドの強さを確認するのに使えます。
マルチタイムで同じ期間を並べる使い方
MA1:1時間 50EMA / MA2:4時間 50EMA / MA3:日足 50EMA という形で、異なる時間足の同じ期間のMAを並べる見方もあります。複数の時間足で同じラインが同じ方向を向いているかどうかをトレード判断に使えます。
使ってみた感想
マルチタイムフレームのMAは、正直なくても困るわけじゃないですが、あると判断がかなりスムーズになります。
特に「上位足でどの辺にいるかを常に意識しながらトレードしたい」という人には向いていると思います。
チャートの時間足を切り替えるたびに設定を変えなくていいのが地味に便利で、使い始めると手放せなくなりますよ。
あと、MT4やMT5などでチャートを見ている方はぜひ一度TradingViewを見てみてください。



コメント