Pineスクリプト(Pine Script)は、TradingViewが開発したプログラミング言語だ。チャート上に自分だけのインジケーターを表示したり、トレード手法をバックテストで検証したり、条件を満たしたときにスマホに通知を飛ばしたり。トレードに必要な「こんなことできたらいいのに」を、自分の手で実現できる。
プログラミングと聞くと身構えるかもしれない。でも安心してほしい。Pineスクリプトは、PythonやJavaScriptのような汎用言語とは違い、チャート分析に特化して設計されている。だから、たった3行のコードで移動平均線を表示できるし、10行で売買シグナルを出せる。環境構築も不要。TradingViewを開いて、Pineエディタにコードを書いて、保存を押すだけ。
この記事では、Pineスクリプトの全体像を解説する。「Pineスクリプトとは何か」「何ができるのか」「どう始めるのか」「どこまで学べば実用レベルになるのか」。これからPineスクリプトを学びたい人にとっての出発点になるよう、関連する個別記事へのリンクも含めてまとめた。
Pineスクリプトとは
Pineスクリプトは、TradingView専用のプログラミング言語だ。2013年にリリースされ、2024年11月にバージョン6(v6)が公開された。世界中のトレーダーが使うTradingViewのチャート上で、インジケーターやストラテジーを動かすために存在する。
特徴を3つ挙げる。
チャート分析に特化している。 汎用プログラミング言語では、チャートを描画するだけで何十行もコードを書く必要がある。Pineスクリプトはplot(ta.ema(close, 20))の1行で20期間EMAをチャートに描画できる。テクニカル指標の計算関数(EMA、RSI、MACD、ボリンジャーバンドなど)が組み込み関数として用意されており、呼び出すだけで使える。
環境構築が不要。 TradingViewのブラウザ上で動作する。Pythonのようにインストール作業やライブラリ管理は一切不要。TradingViewの無料アカウントがあれば、今すぐ書き始められる。
バーごとに実行される。 Pineスクリプトは、チャート上のすべてのバー(ローソク足)に対して、左から右へ順番にコードを実行する。新しいバーが追加されるたびに再実行される。この仕組みにより、時系列データの処理が自然に行える。
現在のバージョンはv6。この記事を含め、PineScript Proのすべてのコンテンツはv6を基準にしている。
Pineスクリプトでできること
Pineスクリプトでできることを、具体的な用途別に整理する。
①カスタムインジケーターの作成。 TradingViewには200以上の組み込みインジケーターがあるが、自分のトレード手法に完全に合うものはなかなかない。Pineスクリプトを使えば、「EMA3本+RSIフィルター+時間帯限定」のように、複数の条件を組み合わせたオリジナルインジケーターを作れる。
→ TradingViewインジケーター自作|Pineスクリプトで作る手順
②バックテスト(ストラテジーの検証)。 自分のトレード手法を過去データでシミュレーションし、勝率・プロフィットファクター・最大ドローダウンなどの数字で検証できる。「この手法は本当に勝てるのか?」を、感覚ではなくデータで確認する。
→ Pineスクリプトで勝てるストラテジーを作る方法|検証の実際
③アラート通知。 「RSIが30を下回ったら通知」「EMAがクロスしたら通知」のように、条件成立時にスマホ通知・メール・Webhookで知らせる。チャートに張り付かなくてもトレードチャンスを逃さない。
→ Pineスクリプトalert関数の完全ガイド|通知設定から実践活用まで
④複数テクニカル指標の統合。 EMA3本+ボリンジャーバンド+RSI背景色を1つのインジケーターにまとめれば、TradingView無料プランのインジケーター枠(3つ)を節約できる。
⑤マルチタイムフレーム分析。 request.security()関数で、上位足の情報を現在の時間足に表示できる。日足のEMAを15分足チャートに重ねる、週足のRSI値をラベルで表示するなど。
→ Pineスクリプトtime関数の使い方|時間帯フィルター・セッション区切りの実装法
⑥ライン描画の自動化。 前日高安、ピボットポイント、ラウンドナンバーなどの水平線を自動描画。毎朝手動で引いていた線を自動化できる。
→ Pineスクリプトline関数の使い方|水平線・トレンドラインの自動描画
⑦Webhook経由の自動売買連携。 Pineスクリプト単体では注文を送れないが、アラートのWebhook機能を使えば、外部サーバー経由で取引所APIに注文を送ることができる。
→ Pineスクリプトで自動売買|TradingView→実口座の連携方法
⑧インジケーターの販売。 作成したインジケーターは「招待限定スクリプト」として公開し、月額課金モデルで販売できる。Pineスクリプトのスキルがそのまま収益になる。
Pineスクリプトでできないこと
期待しすぎないために、できないことも明確にしておく。
取引所への直接注文。 Pineスクリプトは描画とアラートに特化した言語。注文送信機能はない。自動売買にはWebhook経由の外部システム連携が必要。
外部データの読み込み。 TradingView上で提供されるOHLCV(四本値+出来高)とテクニカル指標のみ。独自CSVの読み込みなどはできない。
機械学習・ディープラーニング。 Pythonのようなライブラリ(scikit-learn、TensorFlowなど)は使えない。統計的な計算は可能だが、本格的な機械学習は対象外。
→ PineスクリプトとPythonの違い|トレーダーがどちらを選ぶべきか
Pineスクリプトの始め方
必要なものはTradingViewの無料アカウントだけ。環境構築は不要。
ステップ1: TradingViewにログインする。 tradingview.comにアクセスし、アカウントを作成してログイン。
ステップ2: チャートを開く。 適当な銘柄(USDJPYなど)のチャートを表示する。
ステップ3: Pineエディタを開く。 チャート画面の下部にある「Pineエディタ」タブをクリック。エディタが開く。
ステップ4: 最初のコードを書く。 以下のコードをPineエディタに貼り付けて、「保存」→「チャートに追加」をクリック。
//@version=6
indicator("はじめてのインジケーター", overlay=true)
plot(ta.ema(close, 20), "EMA20", color.blue)
plot(ta.ema(close, 50), "EMA50", color.red)
チャートに青いライン(20EMA)と赤いライン(50EMA)が表示されたら成功だ。たった4行で、オリジナルのインジケーターが完成した。
このコードの意味を解説する。
//@version=6 — Pineスクリプトのバージョンを指定。2025年現在はv6が最新。
indicator("はじめてのインジケーター", overlay=true) — このスクリプトがインジケーターであることを宣言。overlay=trueでメインチャートに重ねて表示。
plot(ta.ema(close, 20), "EMA20", color.blue) — 終値ベースの20期間EMAを青色でチャートに描画。
plot(ta.ema(close, 50), "EMA50", color.red) — 終値ベースの50期間EMAを赤色でチャートに描画。
コードの基本構造
すべてのPineスクリプトは、以下の3パートで構成される。
①バージョン宣言。 //@version=6。必ず1行目に書く。
②種類宣言。 indicator()かstrategy()のどちらかを書く。インジケーターを作るならindicator()、バックテスト用のストラテジーを作るならstrategy()。
③本体。 テクニカル指標の計算、条件判定、描画、アラートなどの処理を記述する。
もう少し実用的なコードを見てみよう。EMAクロスのシグナルを表示するインジケーター。
//@version=6
indicator("EMAクロス シグナル", overlay=true)
// パラメータ(設定画面から変更可能)
fastLen = input.int(12, "短期EMA期間")
slowLen = input.int(26, "長期EMA期間")
// テクニカル指標の計算
fast = ta.ema(close, fastLen)
slow = ta.ema(close, slowLen)
// クロスの検出
longSignal = ta.crossover(fast, slow)
shortSignal = ta.crossunder(fast, slow)
// EMAの描画
plot(fast, "短期EMA", color.blue)
plot(slow, "長期EMA", color.red)
// シグナルの表示
plotshape(longSignal, "買い", shape.triangleup, location.belowbar, color.green, size=size.small)
plotshape(shortSignal, "売り", shape.triangledown, location.abovebar, color.red, size=size.small)
// アラート
alertcondition(longSignal, "買いシグナル", "EMAゴールデンクロス")
alertcondition(shortSignal, "売りシグナル", "EMAデッドクロス")
このコードでは、input.int()でパラメータを設定画面から変更可能にし、ta.crossover()/ta.crossunder()でクロスを検出し、plotshape()で矢印を表示し、alertcondition()でアラート通知を設定している。25行で、パラメータ変更可能なEMAクロスインジケーター+アラートが完成する。
Pineスクリプトの書き方についてはこちらで詳しく解説している。
→ Pineスクリプトの書き方|基本構文をコード付きで完全解説
よく使う組み込み関数
Pineスクリプトには、トレードに必要な関数が最初から用意されている。主要なものを分類して紹介する。
テクニカル指標(ta.系)。 ta.sma() 単純移動平均線、ta.ema() 指数移動平均線、ta.rsi() RSI、ta.macd() MACD、ta.bb() ボリンジャーバンド、ta.atr() ATR、ta.crossover() 上抜け判定、ta.crossunder() 下抜け判定、ta.highest() 期間内最高値、ta.lowest() 期間内最安値。
入力(input.系)。 input.int() 整数入力、input.float() 小数入力、input.bool() ON/OFFスイッチ、input.string() 文字列入力、input.color() 色選択、input.session() 時間帯入力。設定パネルからパラメータを変更可能にする。
→ Pineスクリプトinput関数の使い方|設定パネルのカスタマイズ完全ガイド
描画(plot系)。 plot() ライン描画、plotshape() マーク描画、plotchar() 文字描画、bgcolor() 背景色、barcolor() バーの色変更、hline() 水平線。
データ取得(request.系)。 request.security() 他の時間足・銘柄のデータ取得。マルチタイムフレーム分析に不可欠。
注文(strategy.系)。 strategy.entry() エントリー、strategy.close() クローズ、strategy.exit() TP/SL設定。ストラテジー(バックテスト)で使う。
バージョンの違い — v4 / v5 / v6
Pineスクリプトはバージョンごとに関数名や書き方が異なる。ネット上の情報を参考にするとき、バージョンの違いが最も多いトラブルの原因になる。
v4(2019年)。 study()でインジケーターを宣言。sma()、ema()、rsi()のようにta.プレフィックスなし。security()で他の時間足を取得。input()に型指定なし。
v5(2021年)。 study()がindicator()に変更。テクニカル関数にta.プレフィックス追加(ta.sma())。security()がrequest.security()に。input()がinput.int()/input.float()などの型付き関数に。ライブラリ機能の追加。
v6(2024年)。 v5からの主な変更は、メソッド構文の改善、型システムの強化、一部関数の引数変更。v5との互換性は比較的高い。
→ Pineスクリプトv5の変更点まとめ|v4からのアップグレード完全対応表
コードをコピペして動かないときは、まず//@version=の数字を確認しよう。v4のコードをv6で動かそうとすると、確実にエラーになる。
→ Pineスクリプトエラー一覧と解決方法|よくあるエラーTOP10と対処法
学習ロードマップ
Pineスクリプトを「実用レベル」まで学ぶためのロードマップ。
レベル1: 既存コードの読解(1〜2日)。 TradingViewの組み込みインジケーターのソースコードを読む。indicator()、plot()、ta.ema()の意味を理解する。コピペで動かしてみる。
→ Pineスクリプト サンプルコード集|コピペで使える実践コード
→ Pineスクリプトのコード例を読み解く|サンプルで学ぶ実践テクニック
レベル2: 基本構文の習得(3〜7日)。 変数宣言、条件分岐(if)、input()によるパラメータ化、plot()とplotshape()による描画。この段階で、シンプルなオリジナルインジケーターが作れるようになる。
→ Pineスクリプトの書き方|基本構文をコード付きで完全解説
レベル3: 実用インジケーターの作成(1〜2週間)。 request.security()によるマルチタイムフレーム、line.new()によるライン描画、alertcondition()によるアラート設定。この段階で、日常のトレードに使えるインジケーターが作れる。
レベル4: ストラテジーとバックテスト(2〜4週間)。 strategy()によるバックテスト、strategy.entry()/strategy.exit()による売買ロジック、検証結果の読み方。手法を数字で検証できるようになる。
→ Pineスクリプトで勝てるストラテジーを作る方法|検証の実際
レベル5: 応用と自動化。 Webhook経由の自動売買連携、インジケーターの販売、複雑なロジックの実装。
→ Pineスクリプトで自動売買|TradingView→実口座の連携方法
学習に役立つリソースについてはこちら。
→ Pineスクリプトの勉強法|効率よく身につける学習ロードマップ
→ Pineスクリプトおすすめ本|独学で使えるレベルになる参考書
→ Pineスクリプト リファレンスの使い方|公式ドキュメント完全活用法
→ Pineスクリプト マニュアル活用法|ユーザーマニュアルの効率的な読み方
TradingViewのプラン別制限
Pineスクリプト自体は無料プランでも使えるが、プランによって制限がある。
無料プラン。 インジケーター同時表示は3つまで。アラートは件。Webhookは使えない。スクリプトの保存・実行は可能。学習段階なら無料プランで十分。
Pro以上の有料プラン。 インジケーター枠の増加(Proで5、Pro+で10)。アラート数の増加。Webhook機能の利用可能(自動売買連携に必須)。秒足チャートの利用。
Pineスクリプトを「学ぶ」段階では無料プランで問題ない。「使う」段階になったら、インジケーター枠とアラート数に応じてプランを検討する。
Pineスクリプトと他言語の比較
トレードに使うプログラミング言語はPineスクリプトだけではない。主要な選択肢と比較する。
Pineスクリプト vs MQL4/MQL5。 MQLはMetaTrader用の言語。自動売買(EA)を直接実行でき、バックテストの自動最適化機能がある。ただし学習コストが高く、環境構築も必要。「TradingViewで完結したい」ならPine、「MT4/MT5で自動売買を動かしたい」ならMQL。
Pineスクリプト vs Python。 Pythonは汎用言語。機械学習、大量データ処理、取引所API連携など、Pineスクリプトでは不可能なことができる。ただしチャート描画は自前で構築する必要がある。「チャート上でサクッとインジケーターを作る」ならPine、「高度なデータ分析や機械学習」ならPython。
→ PineスクリプトとPythonの違い|トレーダーがどちらを選ぶべきか
「自分で作る」か「依頼する」か
Pineスクリプトを学んで自分で作るか、プロに依頼するか。どちらが正解かは、目的と時間のバランスによる。
自分で作るのが向いている人。 プログラミングに興味がある。時間に余裕がある。複数のインジケーターを継続的に作り続けたい。手法を頻繁に修正・改善したい。
依頼するのが向いている人。 今すぐインジケーターが必要。コードの勉強に時間を使うよりトレードに集中したい。手法は固まっていて、それをコード化してほしい。
PineScript Proでは、トレーダーが直接コードを書くインジケーター作成代行を行っている。ロジックのヒアリングから、トレーダー目線での改善提案、v6対応のプロ品質コード、納品後の運用サポートまで対応する。
→ TradingViewインジケーター作成代行|手法をコード化
よくある質問
Q: プログラミング未経験でもPineスクリプトは学べる?
学べる。Pineスクリプトはプログラミング入門として最適な言語の1つ。チャートという視覚的なフィードバックがあるため、「コードを書く→結果が見える」のサイクルが速い。
Q: 日本語の情報は少ない?
英語に比べると少ないが、増えてきている。TradingViewの公式リファレンスには日本語版もある。当サイト(PineScript Pro)では、実践的な日本語コンテンツを体系的に公開している。
Q: どのくらいで実用レベルになる?
毎日30分学習すれば、2週間で基本的なインジケーターが作れるようになる。1ヶ月でストラテジー(バックテスト)まで到達できる。
Q: v5のコードはv6で動く?
基本的に動く。v5→v6の変更はv4→v5ほど大きくない。ただし一部の関数引数に変更があるため、エラーが出た場合は公式リリースノートを確認する。
Q: 無料プランで十分?
学習段階なら十分。実際にトレードで使い始めると、インジケーター枠(3つ)の制限が気になってくる。複数インジケーターを1つに統合するテクニックで対応することも可能。
まとめ
Pineスクリプトは、TradingView上でインジケーターの作成、バックテスト、アラート通知、自動売買連携を実現するための専用言語だ。
チャート分析に特化しているから少ないコード量で結果が出る。環境構築不要だからすぐに始められる。無料プランでも使える。プログラミング未経験者でも2週間あれば基本的なインジケーターが作れるようになる。
学びたい人は、まずこの記事の「最初のコード」をTradingViewのPineエディタに貼り付けて動かしてみてほしい。チャートに自分が書いたコードの結果が表示される体験が、Pineスクリプト学習の第一歩になる。

















