重要ポイント
Pine Script は、ブラウザ内でカスタムのテクニカルインジケーターやトレーディング戦略を作成するための TradingView のビルトインスクリプト言語です。
Pine Script v6 は現在のバージョンです。v5 の「ta」名前空間(例:ta.ema() や ta.rsi())を土台にしており、より厳格な型システムを追加し、デフォルトで動的なデータリクエストを有効にし、さらに古いスクリプトを移行するための組み込みコード変換も備えています。
数行のコードで、SMA や EMA のようなシンプルなインジケーター、色分けしたローソク足などを作成できます。
TradingView の Strategy Tester は、過去の価格データに対してカスタム戦略をバックテストし、論理的な欠陥がないかを確認することを可能にします。
ソフトウェアのインストールは不要です。Pine Script は TradingView の Web エディタ上で完全に動作します。
はじめに
効果的なテクニカル分析には、適切なツールを用意することが重要です。TradingView は、暗号資産・FX・株式市場向けに最も広く使われているチャートプラットフォームの一つで、多数のビルトインインジケーターが用意されています。しかし他と違うのは、どれだけ自由にカスタマイズできるかです。
Pine Script は TradingView 独自のスクリプト言語です。これにより、チャート上で直接動作するカスタムインジケーター、アラート、戦略を作成できます。このガイドでは、現在のバージョンである Pine Script v6 の基本を解説し、最初のスクリプトの作成方法、インジケーターの描画方法、そしてそれらを再利用できるツールにまとめる方法まで説明します。
Pine Script とは?
Pine Script は TradingView によって開発された軽量なスクリプト言語です。TradingView のインターフェースに組み込まれた Pine Editor 内でスクリプトを書きます。チャートに「Add to Chart」をクリックすると、スクリプトが TradingView のサーバー上で実行され、出力がそのままあなたのチャートに表示されます。ダウンロードやインストールは不要です。
Pine Script v6 は現在のバージョンであり、新規のスクリプトではこちらを使うべきです。v5 で導入された、より分かりやすい構文と ta 名前空間をベースにしており、さらにいくつかの改善が加わっています:より厳格な型システム、デフォルトで有効になった動的データリクエスト、そして関数の扱いが整理されたことによる使いやすさの向上です。言語には包括的なユーザーマニュアルと、TradingView 上で閲覧できる多数の公開スクリプトが含まれています。
Pine Script v6 で新しくなったこと
以前 Pine Script v5 を使っていた場合、v6 での実用上重要な変更点は次のとおりです:
より厳格な型システム:v5 では数値(int と float)を条件式の中で暗黙的にブール値として使えましたが、v6 ではそれが許可されなくなりました。条件が数値を使っている場合は、bool() 関数を使って明示的にキャストする必要があります。これによりコードの曖昧さが減り、デバッグもしやすくなります。
デフォルトで動的リクエスト:v5 では request.*() 関数(例:request.security())への呼び出しはグローバルスコープに置く必要があり、固定されたシンボルとタイムフレーム引数が必要でした。v6 では動的リクエストがデフォルトで有効になり、ループや条件ブロックの中で request.*() を呼び出したり、引数に系列値を渡したりできるようになります。これにより、マルチシンボルやマルチタイムフレームのスクリプトでできることが大きく広がります。
ビルトインの v5-to-v6 変換:Pine Editor は v5 スクリプトを v6 に自動変換できます。「Manage script」ドロップダウンを開き、「Convert code to v6」を選択してください。変換はほとんどの変更を自動で処理しますが、一部のケースでは手動の確認が必要になる場合があります。
複数行の文字列(2026年4月):v6 では、トリプルクォートの区切り(""" または '')を使った複数行の文字列リテラルに対応しました。これにより、\n エスケープシーケンスを使わずに複数行にわたる整形ラベル、ツールチップ、ログメッセージを書きやすくなります。
Pine Script の以前のバージョン(v3, v4, v5)も TradingView 上で実行できますが、v5 は非推奨となっており、v6 の使用が推奨されます。
TradingView のセットアップ
無料の TradingView アカウントから始められます。BTC/USDT のような任意の資産のチャートを開き、右側のツールバーにある Pine Editor のアイコンを探してください。それをクリックしてコードエディタを開きます。
「Add to Chart」をクリックするとスクリプトが実行され、結果がアクティブなチャートに表示されます。スクリプトを削除するには、チャートのどこかを右クリックして「Remove Indicators」を選択します。サンプルの間にチャートをきれいに保つと、各結果をはっきり見られます。
Pine Editor
Pine Editor にはデフォルトで 2 行のスクリプトが用意されています。以下は Pine Script v6 の最小例です:
//@version=6 indicator("My Script", overlay=true) plot(close) |
この indicator() 関数はスクリプトを定義します。v5 と v6 では、v4 以前で使われていた古い study() 関数に代わってこれが使われます。overlay=true パラメータは、下の別パネルではなくメインチャート上に結果を配置します。plot(close) の線は、各バーの終値(close)を使って線を描画します。
ローソク足チャートのプロット
ラインチャートは終値を表示しますが、ローソク足チャートは始値・高値・安値・終値をまとめて表示し、値動きの情報がより多く得られます。色分けしたローソク足を描く方法は次のとおりです:
//@version=6 indicator("Colored Candles", overlay=true) colors = open >= close ? color.red : color.green plotcandle(open, high, low, close, color=colors) |
このスクリプトは各バーをチェックします。始値が終値以上ならローソク足は赤(値が下がった)です。終値が始値より高ければローソク足は緑です。これは、ほとんどのチャートソフトで使われている標準的な色の慣習です。
移動平均のプロット
移動平均は、一定期間の価格データをならすことで、トレンドを見つけやすくします。Pine Script v6 には、単純移動平均(SMA)と指数移動平均(EMA)の両方を ta 名前空間の下で使えるビルトイン関数が用意されています。
単純移動平均(SMA)
SMA は、指定した期間数にわたる終値の平均を計算します。10期間の SMA をプロットするには:
plot(ta.sma(close, 10)) |
期間を変えると、参照(ルックバック)する窓の長さが変わります。期間が長いほど、より滑らかで、直近の変化への反応が遅くなります。
指数移動平均(EMA)
指数移動平均(EMA)は、長さに基づいて計算される倍率 2 / (length + 1) を使って、直近の価格により大きな重みを与えます。そのため、SMA よりも直近の価格変化に敏感です。両方を並べて表示するには:
//@version=6 indicator("SMA vs EMA", overlay=true) plot(ta.sma(close, 10)) plot(ta.ema(close, 10)) |
わずかな違いに気づくはずです。EMA は値動きの速い相場ではより密接に追随しますが、SMA は少し遅れてついてきます。
ビルトインスクリプト
TradingView には、多くのインジケーターの事前に作られたバージョンが含まれています。Pine Editor で「New」をクリックし、「Moving Average Exponential」のようなインジケーターを選ぶと、そのソースコードを確認できます。これらのスクリプトは input.int() や input.float() のような型付き入力関数を使っていることが多く、チャート上にインタラクティブな設定パネルを作成します。これにより、コードを編集せずに length などのパラメータを変更できます。
相対力指数(RSI)インジケーターのプロット
RSI インジケーターは、直近の価格変化の速さと大きさを測定します。0 から 100 の値を出力します。70 を超える数値は、しばしば買われ過ぎの可能性に関連し、30 未満は売られ過ぎの可能性を示すことがあります。これらは一般的な参照水準であり、価格の方向を保証するものではありません。
Pine Script v6 では、RSI 関数は ta.rsi(close, length) です。すぐ使える RSI の戦略を追加するには、Pine Editor で「New」→「RSI Strategy」をクリックします。これにより、RSI の閾値に基づいた方向性のマーカーがチャートに表示され、ビューが Strategy Tester タブに切り替わります。
RSI は通常 14 期間で測定されますが、この値は自分の方針に合わせて調整できます。期間が長いほど、シグナルが少なく、なめらかな指標になります。期間が短いほど、より敏感になります。
戦略のバックテスト
Pine Script には、戦略() モードがあり、過去の価格データに対してルールをバックテストできます。ここでは、コードを編集せずにチャート上でレベルを調整できるようにする input 変数を使った例の枠組みを示します:
//@version=6 strategy("Basic Strategy", overlay=true) entryLevel = input.int(defval=30000, title="Entry price") exitLevel = input.int(defval=32000, title="Exit price") if close >= entryLevel strategy.entry("Long", strategy.long) if close >= exitLevel strategy.close_all(comment="Exit") |
これをチャートに追加すると、TradingView は Strategy Tester タブを開きます。ここでは、過去の価格データに基づいて、エントリー、エグジット、要約統計のログが表示されます。過去の成績は将来の結果を信頼できる形で示す指標ではありません。バックテストは、戦略のロジックが筋の通ったものかを確認するのに役立ちますが、将来の結果を予測するものではありません。
注:v6 では、戦略のデフォルトのロング・ショートのマージン比率は 100% で、9,000 回の取引制限を超えた場合はエラーを出すのではなく、最も古い注文を切り詰めます。これらの変更により、v5 で同じスクリプトを実行した場合との比較結果に影響が出る可能性があります。
複数のインジケーターの組み合わせ
Pine Script の最も実用的な用途の一つは、複数のインジケーターを 1 つのカスタム表示にまとめることです。次のスクリプトは、EMA と RSI の条件をもとにローソク足を色分けします:
//@version=6 indicator("EMA + RSI Candles", overlay=true) emaLength = input.int(title="EMA Length", defval=25, minval=1) rsiLength = input.int(title="RSI Length", defval=25, minval=1) emaVal = ta.ema(close, emaLength) rsiVal = ta.rsi(close, rsiLength) colors = (close >= emaVal and rsiVal >= 50) ? color.green : color.red plot(emaVal, "EMA") plotcandle(open, high, low, close, color=colors) |
このスクリプトは、終値が EMA より上で RSI も 50 より上の場合はローソク足を緑にし、それ以外は赤にします。input.int() の関数は、両方の長さをインタラクティブに調整できる設定パネルをチャートに作成します。この種の可視化により、2 つの条件が同じバーで一致しているタイミングを見つけやすくなります。
これは金融アドバイスとして扱わないでください。また、どのインジケーターの組み合わせも取引における不確実性を取り除くことはできません。カスタムスクリプトは、より広い調査・分析プロセスの一部として使用してください。
よくある質問(FAQ)
Pine Script はどのバージョンを使うべきですか?
Pine Script v6 は現在のバージョンで、新規のスクリプトにはこれを使うべきです。v5 などの以前のバージョンも引き続きサポートされていますが、非推奨になっています。既に v5 のスクリプトがある場合は、Pine Editor に組み込みの変換機能があります。「Manage script」ドロップダウンを開き、「Convert code to v6」を選択してください。
study() 関数には何が起きましたか?
study() 関数は Pine Script v5 で indicator() に改名され、この変更は v6 でも継続されています。同じ目的で、スクリプト名や、メインチャートにオーバーレイするか別パネルに表示するかといったプロパティを定義します。もし old scripts が study() を使っているのを見たら、それらは v4 以前で書かれています。
Pine Script は無料で使えますか?
はい。Pine Editor と基本的な Pine Script 機能は、無料プランを含むすべての TradingView プランで利用できます。複数のスクリプトを同時に実行するなど、一部の機能は有料プランが必要です。カスタムスクリプトの作成とテストにはサブスクリプションは不要です。
Pine Script における ta 名前空間とは何ですか?
ta 名前空間は Pine Script v5 で導入され、v6 でも継続されています。従来は直接呼び出していた組み込みのテクニカル分析関数(ema(), sma(), rsi() など)は、ta.ema(), ta.sma(), ta.rsi() としてアクセスされるようになりました。これによりコードがより明確になり、パッと見て理解しやすくなります。
戦略において Pine Script v6 で何が変わりましたか?
v6 の戦略ではいくつかのデフォルトが変更されました。ロング・ショートの両方のポジションのデフォルトのマージン比率は 100% になりました。さらに、戦略エンジンは 9,000 回の取引制限を超えた場合に、エラーを投げる代わりに最も古い注文を切り詰めます。v5 の戦略を v6 に移行する場合は、これらの変更によってパフォーマンス統計に影響が出る可能性があるため、バックテスト結果を確認してください。
バックテストは将来のパフォーマンスを予測するのに信頼できますか?
いいえ。バックテストは、戦略が過去のデータでどうだったかを示しますが、今後どうなるかは示しません。市場は変化し、過去に存在した条件が繰り返されるとは限りません。バックテストは戦略の論理的な欠陥を見つけるのに役立ちますが、どの取引判断の「唯一の根拠」として使うべきではありません。
最後に
Pine Script v6 は、外部ソフトやインストールなしで TradingView 上でカスタムインジケーターを作成・テストするのが簡単になるように設計されています。シンプルなスクリプトから始めて段階的に複雑さを増していくのは、言語を学ぶための実践的なアプローチです。Pine Editor の組み込みサンプルライブラリと、組み込みの v5-to-v6 変換機能は、以前のバージョンから移行する人にとって便利な出発点になります。
インジケーターは分析のためのツールであり、特定の結果を保証するシグナルではありません。インジケーターの組み合わせによっても、取引における不確実性は取り除けません。Pine Script はより広い調査プロセスの一部として使い、どの戦略でもリスク管理を中核として常に考慮してください。
さらに読む
テクニカル分析とは?
RSI インジケーターとは?
移動平均を解説
初心者のためのローソク足チャート入門
初心者のための TradingView 入門
免責事項:このコンテンツは、一般的な情報および教育目的のために「現状有姿」の形で提供されるものであり、いかなる種類の表明または保証もありません。これは金融、法律、またはその他の専門的助言として解釈されるべきではなく、特定の製品やサービスの購入を推奨する意図もありません。適切な専門家の助言を求めてください。第三者の寄稿によって作成された場合は、その見解が第三者の寄稿者に属するものであり、必ずしも Binance アカデミーの見解を反映するものではないことにご注意ください。デジタル資産の価格は変動する可能性があります。投資した金額の価値は下がる場合も上がる場合もあり、投資額をそのまま回収できるとは限りません。投資判断はあなたご自身の責任で行い、Binance アカデミーは、あなたが被る可能性のある損失について一切の責任を負いません。詳細は、利用規約、リスクに関する警告、および Binance アカデミーの規約をご確認ください。
