TradingViewでインジケーターを使いこなす — 移動平均線クロスアラートの作り方
はじめに
「チャートにインジケーターを表示したい。でも種類が多すぎて、どれを使えばいいか分からない…」
FXを始めてチャート分析に興味を持つと、まず最初にぶつかる壁がこれです。
移動平均線、RSI、MACD、ボリンジャーバンド…。名前は聞いたことがある。でも設定画面を開いた瞬間、パラメータだらけで固まる。
そんな人にまず伝えたいのは、チャートツールはTradingViewを使えばいいということ。
TradingViewは、世界中のトレーダーが使っている無料のチャートツールです。ブラウザで動くから、ソフトのインストールも不要。そして最大の強みがPine Scriptという独自のプログラミング言語。
「プログラミング?自分には無理でしょ」
いいえ。Pine Scriptは、プログラミング経験ゼロの人でも使えるくらいシンプルな言語です。今回はその証拠として、移動平均線のクロスアラートを一緒に作ります。コピペで動くコードを載せるので、安心してください。
TradingViewの基本
まずはTradingViewの基本をざっと押さえておきましょう。
チャート画面
TradingViewにアクセスすると、すぐにチャートが表示されます。無料プランでも十分使えます。
画面の構成はシンプルです。
- 中央:チャート本体(ローソク足、ラインなど)
- 上部:通貨ペアの検索バー、時間足の切り替え
- 左側:描画ツール(トレンドライン、フィボナッチなど)
- 下部:Pine Scriptエディタ(後で使います)
インジケーターの追加
チャート上部の「インジケーター」ボタン(fx のアイコン)をクリックすると、インジケーターの検索画面が開きます。
ここから好きなインジケーターを検索して追加するだけ。これがTradingViewの基本的なインジケーターの使い方です。
アラート機能
TradingViewには強力なアラート機能があります。
- 「価格が○○円を超えたら通知」
- 「RSIが70を超えたら通知」
- 「移動平均線がクロスしたら通知」
こういった条件を設定しておくと、スマホに通知が届きます。チャートをずっと見ている必要がなくなるわけです。
無料プランだとアラート数に制限がありますが、それでも十分実用的です。
内蔵インジケーターの使い方
まずは自作の前に、TradingViewに最初から入っているインジケーターの使い方を見ておきましょう。
移動平均線(MA)
最も基本的なインジケーター。一定期間の終値の平均値をつないだ線です。
追加手順:
- チャート上部の「インジケーター」をクリック
- 検索バーに「MA」または「Moving Average」と入力
- 「Moving Average」を選択
- チャートに線が表示される
デフォルトでは期間9の単純移動平均線(SMA)が表示されます。設定アイコン(歯車マーク)をクリックすれば、期間を変更できます。
よく使われる期間の組み合わせ:
| 用途 | 短期 | 長期 |
|---|---|---|
| 短期トレード | 5日 | 25日 |
| 中期トレード | 25日 | 75日 |
| 長期トレード | 75日 | 200日 |
RSI(相対力指数)
「買われすぎ」「売られすぎ」を数値で判断するインジケーター。0〜100の範囲で動きます。
追加手順:
- 「インジケーター」をクリック
- 「RSI」と検索
- 「Relative Strength Index」を選択
- チャート下部にRSIが表示される
一般的な判断基準:
- 70以上:買われすぎ(そろそろ下がるかも)
- 30以下:売られすぎ(そろそろ上がるかも)
ただし、強いトレンドではRSIが70以上に張り付くこともあるので、RSIだけで売買判断するのは危険です。あくまで参考指標のひとつ。
MACD
移動平均線を応用したインジケーター。トレンドの方向と強さを教えてくれます。
追加手順:
- 「インジケーター」をクリック
- 「MACD」と検索
- 「MACD」を選択
- チャート下部にMACDが表示される
MACDラインとシグナルラインの2本の線がクロスするタイミングが、エントリーのヒントになります。
Pine Scriptとは
ここからが本題です。
Pine Scriptは、TradingView専用のプログラミング言語です。これを使うと、自分だけのインジケーターやアラート条件を作れます。
Pine Scriptでできること
- オリジナルインジケーターの作成(複数の条件を組み合わせた独自のサイン)
- アラート条件の自作(「○○かつ○○の時に通知」)
- チャート上に矢印やラベルを表示
- バックグラウンドの色を変える(条件に応じてチャートの背景色を変更)
Pine Script v6の基本構文
2026年現在、Pine Scriptの最新バージョンはv6です。基本的な構造はこうなっています。
//@version=6
indicator("インジケーター名", overlay=true)
// 入力パラメータ
len = input.int(14, "期間")
// 計算
value = ta.sma(close, len)
// 表示
plot(value, "SMA", color.blue)
たったこれだけ。各行の意味を簡単に説明すると…
//@version=6:Pine Scriptのバージョン指定indicator():「これはインジケーターです」という宣言。overlay=trueはチャートの上に重ねて表示する設定input.int():ユーザーが設定画面で変更できるパラメータta.sma():単純移動平均線を計算する関数plot():計算した値をチャート上に線として描画
「プログラミング」と聞くと難しそうですが、Pine Scriptはやっていることが数学の計算と、その結果の表示だけ。だから短いコードで実用的なものが作れます。
実践:移動平均線クロスアラートを作る
それでは実際に作ってみましょう。
完成するもの:
- 短期移動平均線(5日)と長期移動平均線(25日)をチャートに表示
- ゴールデンクロス(短期が長期を上抜け)で緑の▲マーク
- デッドクロス(短期が長期を下抜け)で赤の▽マーク
- それぞれアラート通知を設定可能
Step 1:Pine Scriptエディタを開く
- TradingViewでチャートを開く
- チャート下部にある「Pine Script」タブをクリック
- エディタが開く
- 「新規作成」→「インジケーター」を選択
- テンプレートのコードが表示される(これは全部消してOK)
Step 2:コードを書く
エディタに以下のコードを貼り付けてください。そのままコピペで動きます。
//@version=6
indicator("MA Cross Alert", overlay=true)
shortLen = input.int(5, "短期MA期間")
longLen = input.int(25, "長期MA期間")
shortMA = ta.sma(close, shortLen)
longMA = ta.sma(close, longLen)
plot(shortMA, "短期MA", color.blue)
plot(longMA, "長期MA", color.red)
bullCross = ta.crossover(shortMA, longMA)
bearCross = ta.crossunder(shortMA, longMA)
plotshape(bullCross, "ゴールデンクロス", shape.triangleup, location.belowbar, color.green, size=size.small)
plotshape(bearCross, "デッドクロス", shape.triangledown, location.abovebar, color.red, size=size.small)
alertcondition(bullCross, "ゴールデンクロス", "短期MAが長期MAを上抜け")
alertcondition(bearCross, "デッドクロス", "短期MAが長期MAを下抜け")
全部で18行。これだけで、移動平均線の表示・クロス検出・アラート条件の設定が完了します。
Step 3:チャートに適用する
- コードを貼り付けたら、エディタ上部の「チャートに追加」ボタンをクリック
- チャート上に青い線(短期MA)と赤い線(長期MA)が表示される
- クロスした場所に緑の▲や赤の▽が表示される
もしエラーが出た場合は、コードが正しくコピーされているか確認してください。余計な空白や改行が入ると動かないことがあります。
Step 4:アラートを設定する
- チャート上部の「アラート」ボタン(ベルのアイコン)をクリック
- 「条件」のドロップダウンから「MA Cross Alert」を選択
- 「ゴールデンクロス」または「デッドクロス」を選ぶ
- 通知方法を選択(アプリ通知、メール、ポップアップなど)
- 「作成」をクリック
これで、移動平均線がクロスした瞬間にスマホに通知が届くようになります。
チャートを開いていなくても通知が来るので、仕事中や外出中でもエントリーチャンスを逃しません。
コードの解説
「コピペで動いたけど、何をやっているか分からない…」という方のために、1行ずつ解説します。
バージョン宣言とインジケーター定義
//@version=6
indicator("MA Cross Alert", overlay=true)
//@version=6:Pine Scriptのバージョン6を使うという宣言。おまじないみたいなものですindicator("MA Cross Alert", overlay=true):このスクリプトは「MA Cross Alert」という名前のインジケーターです、という定義。overlay=trueは「メインチャートの上に重ねて表示する」という設定。falseにするとRSIのようにチャート下部に別枠で表示されます
入力パラメータ
shortLen = input.int(5, "短期MA期間")
longLen = input.int(25, "長期MA期間")
input.int():整数の入力パラメータを作る関数- 最初の引数(5や25)はデフォルト値
- 2つ目の引数は設定画面に表示されるラベル名
- これを使うと、コードを書き換えなくても設定画面から期間を変更できる
移動平均線の計算
shortMA = ta.sma(close, shortLen)
longMA = ta.sma(close, longLen)
ta.sma():単純移動平均線(Simple Moving Average)を計算する関数close:各ローソク足の終値shortLen:さっき定義した期間(デフォルト5)- つまり「直近5本の終値の平均値」と「直近25本の終値の平均値」を計算しています
線の描画
plot(shortMA, "短期MA", color.blue)
plot(longMA, "長期MA", color.red)
plot():計算した値をチャート上に線として描画する関数- 第1引数:表示する値
- 第2引数:線の名前(凡例に表示される)
- 第3引数:線の色
クロスの検出
bullCross = ta.crossover(shortMA, longMA)
bearCross = ta.crossunder(shortMA, longMA)
ここが一番重要な部分です。
ta.crossover(A, B):AがBを下から上に抜けた瞬間にtrueを返すta.crossunder(A, B):AがBを上から下に抜けた瞬間にtrueを返す
短期MAが長期MAを上抜ける = ゴールデンクロス(上昇のサイン) 短期MAが長期MAを下抜ける = デッドクロス(下降のサイン)
この2つの関数は、Pine Scriptで最もよく使われる関数のひとつです。
マークの表示
plotshape(bullCross, "ゴールデンクロス", shape.triangleup, location.belowbar, color.green, size=size.small)
plotshape(bearCross, "デッドクロス", shape.triangledown, location.abovebar, color.red, size=size.small)
plotshape():条件がtrueの時にチャート上にマーク(形状)を表示する関数shape.triangleup:上向き三角(▲)shape.triangledown:下向き三角(▽)location.belowbar:ローソク足の下に表示location.abovebar:ローソク足の上に表示
ゴールデンクロスは下に緑▲、デッドクロスは上に赤▽。視覚的にクロスのタイミングが一目で分かります。
アラート条件の定義
alertcondition(bullCross, "ゴールデンクロス", "短期MAが長期MAを上抜け")
alertcondition(bearCross, "デッドクロス", "短期MAが長期MAを下抜け")
alertcondition():アラートの条件を定義する関数- 第1引数:アラートを発動する条件(
true/false) - 第2引数:アラートの名前
- 第3引数:アラートのメッセージ
この関数を書いておくと、アラート設定画面のドロップダウンに選択肢として表示されます。コード上でアラートを「作る」のではなく、「作れるようにする」という役割です。実際のアラート作成はStep 4で行います。
カスタマイズのヒント
基本のコードが動いたら、少しアレンジしてみましょう。
EMA(指数移動平均線)に変更する
SMA(単純移動平均線)よりも直近の値動きに敏感に反応するのがEMAです。
変更は1行だけ。ta.sma を ta.ema に書き換えるだけです。
shortMA = ta.ema(close, shortLen)
longMA = ta.ema(close, longLen)
EMAのほうがクロスのタイミングが少し早くなります。短期トレードにはEMA、中長期にはSMAが好まれることが多いです。
RSIフィルタを追加する
「ゴールデンクロスしたけど、RSIが80で買われすぎだった…」というケースを避けるために、RSIフィルタを加えることもできます。
rsiValue = ta.rsi(close, 14)
bullCross = ta.crossover(shortMA, longMA) and rsiValue < 70
bearCross = ta.crossunder(shortMA, longMA) and rsiValue > 30
これで、ゴールデンクロスかつRSIが70未満の時だけサインが出るようになります。「買われすぎの状態でのゴールデンクロスは無視する」というフィルタです。
背景色を変える
トレンドの方向に応じて、チャートの背景色を変えることもできます。
bgcolor(shortMA > longMA ? color.new(color.green, 90) : color.new(color.red, 90))
短期MAが長期MAの上にある時(上昇トレンド)は薄い緑、下にある時(下降トレンド)は薄い赤。90は透明度で、0が不透明、100が完全に透明です。
これを追加すると、今がどちらのトレンドかがひと目で分かるようになります。
期間の組み合わせを変える
デフォルトの5日・25日以外にも、よく使われる組み合わせがあります。
| 組み合わせ | 短期 | 長期 | 特徴 |
|---|---|---|---|
| 超短期 | 5 | 20 | シグナル多め。ダマシも多い |
| 短期(デフォルト) | 5 | 25 | バランス型 |
| 中期 | 25 | 75 | シグナル少なめ。信頼度高め |
| 長期 | 75 | 200 | 大きなトレンド転換を捉える |
設定画面から期間を変えられるので、いろいろ試してみてください。短期にするほどシグナルは増えますが、ダマシ(偽のサイン)も増えます。長期にすると精度は上がりますが、シグナルの回数が減ります。
自分のトレードスタイルに合った期間を見つけるのが大事です。
公開インジケーターの探し方
Pine Scriptを一から書かなくても、他のトレーダーが作ったインジケーターを使うという手もあります。
TradingViewには「コミュニティスクリプト」という仕組みがあり、世界中のユーザーが自作インジケーターを公開しています。
コミュニティスクリプトの使い方
- チャート上部の「インジケーター」をクリック
- 検索バーにキーワードを入力(例:「EMA cross alert」「RSI divergence」)
- 「コミュニティスクリプト」タブに切り替え
- 気になるスクリプトをクリックして詳細を確認
- 「お気に入りに追加」でチャートに適用
良いスクリプトの見分け方
- いいね数が多い(100以上なら定番)
- 説明が丁寧(使い方やロジックが書かれている)
- 最近更新されている(古すぎるとv6非対応の場合がある)
- ソースコードが公開されている(オープンソース。中身を確認できる)
逆に、「勝率95%」「必勝法」みたいな派手な謳い文句のスクリプトは要注意。インジケーターはあくまで補助ツール。聖杯(必ず勝てる手法)は存在しません。
おすすめの検索キーワード
- 「MA cross」:移動平均線クロス系
- 「RSI divergence」:RSIダイバージェンス(乖離)
- 「support resistance」:サポート・レジスタンスの自動描画
- 「volume profile」:出来高プロファイル
- 「multi timeframe」:複数時間足の情報をひとつのチャートに表示
注意点
インジケーターを使う上で、知っておくべきことがあります。
インジケーターは「遅行指標」
移動平均線もRSIもMACDも、すべて過去の値動きをもとに計算されたものです。つまり、常に少し遅れて反応します。
ゴールデンクロスが出た時にはすでに価格が上がり始めていることが多い。「サインが出たから入る」だと、すでに良いポイントを逃している場合があります。
だから、インジケーターは「確認ツール」として使うのが正解。「自分の読みを裏付けるもの」であって、「インジケーターが答えを教えてくれるもの」ではないということです。
インジケーターを重ねすぎない
チャートにインジケーターを5個も10個も表示させる人がいます。
これ、逆効果です。
情報が多すぎると判断が鈍ります。「MAはゴールデンクロスだけどRSIは売られすぎゾーンでMACDはまだマイナスで…」と、どの情報を信じていいか分からなくなる。
使うインジケーターは2〜3個まで。それ以上増やしても精度は上がりません。むしろ迷いが増えるだけです。
ダマシに注意
移動平均線のクロスは、レンジ相場(横ばい)で頻繁にダマシが発生します。
上に抜けたと思ったらすぐ下に戻る。下に抜けたと思ったらまた上に行く。こうなるとクロスのたびに損切りが続いて、じわじわ資金が減ります。
対策としては:
- トレンドが出ている時だけサインに従う
- レンジ相場ではクロスのサインを無視する
- 他の指標(RSI、出来高など)で確認してから入る
今回作ったアラートも、「アラートが鳴ったら即エントリー」ではなく、「チャートを確認するきっかけ」として使うのがおすすめです。
まとめ
今回の内容を整理します。
- TradingViewは無料で使える高機能チャートツール。インジケーター追加もアラート設定もブラウザで完結
- 内蔵インジケーター(MA、RSI、MACD)はクリックだけで追加できる
- Pine Scriptを使えば、自分だけのインジケーターやアラートが作れる
- 移動平均線クロスアラートは18行のコードで実装可能
- カスタマイズも簡単。EMAへの変更、RSIフィルタ追加、背景色変更など
- コミュニティスクリプトで他のトレーダーの作品も使える
- インジケーターは確認ツールとして使い、頼りすぎない
「チャートを見たいけど、ずっと画面の前にいられない」
そういう人にこそ、アラート機能は強い味方になります。今回のコードをコピペして、まずは1つアラートを設定してみてください。移動平均線がクロスした瞬間にスマホが鳴る。それだけで、トレードのスタイルが変わるはずです。
Pine Scriptに慣れたら、自分のトレード手法をコード化してみるのも面白いです。「こういう条件の時だけサインを出す」というルールを明確にする作業は、トレード手法そのものを洗練させることにもつながります。
関連ツール
- リスクリワード計算機 — インジケーターでエントリーポイントを見つけたら、エントリー前にリスクリワード比率を確認しましょう。
関連記事
- 海外FXと国内FXの違い — TradingViewはどちらのFX口座でも併用可能。取引環境の選び方について解説しています。
おすすめFX口座
ツールを活用してトレードを始めるなら