Pineスクリプト作成代行はこちら

Pineスクリプトリファレンスの読み方|公式マニュアルを使いこなすコツ

Pineスクリプトのリファレンスを開いたものの、関数が大量に並んでいて何から見ればいいかわからない。英語まじりの説明文に圧倒されて、そっとブラウザを閉じた。そんな経験がある人は少なくないだろう。

TradingViewが提供する「Pine Script言語リファレンスマニュアル」は、Pineスクリプトで使える全関数・全変数・全キーワードの公式辞典だ。v6対応の日本語版が公開されており、正確さでは他のどの情報源にも勝る。しかし「辞書」であるがゆえに、読み方を知らないと使いこなせない。

この記事では、Pineスクリプトリファレンスの構造を解説し、「何をどう調べればいいか」を具体的に示す。リファレンスを辞書のように引けるようになれば、コードを書くスピードは確実に変わる。

Pineスクリプトの実践的な活用法を見る

Pineスクリプトリファレンスとは何か

まず「リファレンスマニュアル」と「ユーザーマニュアル」の違いを明確にしておく。これを混同していると、いつまでも効率的に調べものができない。

リファレンスマニュアルは「辞書」だ。Pineスクリプトの全関数・全変数・全定数・全キーワードが一覧になっており、それぞれの引数、戻り値、使用例が記載されている。「ta.smaの第2引数には何を渡すのか」「strategy.entryのオプションにはどんな型が必要か」といった具体的な疑問を解決するために使う。日本語版のURLはこちらだ。

一方、ユーザーマニュアルは「教科書」だ。Pineスクリプトの概念、言語構造、実行モデルといった「なぜそう書くのか」を理解するためのドキュメントで、現時点では英語版のみ公開されている。

この記事で扱うのはリファレンスマニュアルのほうだ。コードを書きながら手元で引く「辞書の使い方」を解説していく。

リファレンスの構造を理解する

Pineスクリプトリファレンスを開くと、左側のサイドバーにカテゴリが並んでいる。このカテゴリ構造を把握しておくだけで、目的の情報にたどり着く速度が格段に上がる。

リファレンスの情報は大きく5つのカテゴリに分かれている。

1つ目が「関数(Functions)」。ta.sma()strategy.entry()など、Pineスクリプトで呼び出して使う処理群だ。リファレンスの中で最も参照頻度が高い。

2つ目が「変数(Variables)」。openclosevolumeといった価格データや、bar_indextimeなどの組み込み変数がまとまっている。

3つ目が「定数(Constants)」。color.redxloc.bar_indexorder.marketといった固定値だ。関数の引数に渡す選択肢を調べるときに使う。

4つ目が「型(Types)」。linelabelboxtableなどのオブジェクト型と、そのメソッドが記載されている。

5つ目が「キーワード」。ifforvarvaripといった言語構文のキーワードだ。

初心者が最もよく使うのは「関数」と「変数」の2つだ。まずはこの2カテゴリの引き方に慣れることを優先しよう。

関数ページの読み方

リファレンスの中核は関数ページだ。ここを正しく読めるかどうかで、Pineスクリプトの開発効率が決まる。

たとえばta.smaのページを開くと、以下の情報が並んでいる。

最初にあるのが関数の説明文。「指定された本数の単純移動平均を返します」のような一文だ。その関数が何をするかをざっと把握するために読む。

次にあるのが構文(Syntax)ta.sma(source, length) のように、関数名と引数名が示されている。引数の順番と名前をここで確認する。

その下にあるのが引数の詳細(Arguments)。各引数の名前、型、説明が一覧になっている。sourceにはseries int/float型を渡す、lengthにはsimple int型を渡す、といった情報だ。

さらにその下に戻り値(Returns)。この関数が何を返すかが書いてある。ta.smaならseries floatだ。

最後に使用例(Example)。実際に動くコードスニペットが掲載されている。

この中で特に注目すべきは「引数の型」と「戻り値の型」だ。Pineスクリプトは型に厳密な言語で、型の不一致はコンパイルエラーの最大原因になる。引数にsimple intと書いてあるのにseries floatを渡せばエラーだ。リファレンスの型情報を確認する癖をつけるだけで、エラーの半分以上を未然に防げる。

実際のコードで見てみよう。

//@version=6
indicator("SMA表示", overlay=true)
length = input.int(20, "期間")
smaValue = ta.sma(close, length)
plot(smaValue, "SMA", color.blue)

このコードを書くとき、リファレンスで確認すべきことは3つだけだ。ta.smaの第1引数がseries int/float型であること(closeはこれを満たす)。第2引数がsimple int型であること(input.intの戻り値はこれを満たす)。戻り値がseries floatであること(plotの第1引数に渡せる)。この3点さえ押さえれば、コードは動く。

名前空間で関数を探すコツ

Pineスクリプトの関数は「名前空間」でグループ分けされている。この名前空間を覚えてしまえば、やりたいことから関数を逆引きできるようになる。

よく使う名前空間を整理しておこう。

ta. はテクニカル分析系だ。移動平均(ta.smata.ema)、オシレーター(ta.rsita.macd)、ボラティリティ(ta.atrta.bb)など、テクニカル指標の計算関数がここに集まっている。

strategy. はストラテジー系だ。エントリー(strategy.entry)、エグジット(strategy.exitstrategy.close)、ポジション情報(strategy.position_size)など、バックテストに必要な関数と変数がまとまっている。

input. はユーザー入力系だ。input.intinput.floatinput.boolinput.stringなど、インジケーターの設定画面に入力項目を追加する関数群だ。

request. はデータ取得系だ。request.securityで別の時間足やシンボルのデータを取得できる。マルチタイムフレーム分析に必須の名前空間だ。

math. は数学関数系だ。math.absmath.roundmath.maxなど、計算で使う関数がある。

str. は文字列操作系だ。アラートメッセージの組み立てや、ラベルへの文字表示で使う。

array. は配列操作系だ。データの蓄積や動的な計算処理で使う。

やりたいことが決まったら、まず対応する名前空間をリファレンスのサイドバーで探す。そこから関数の一覧を眺めれば、使うべき関数はすぐに見つかる。

Pineスクリプトの基本構文をまだ把握していない方は、先にこちらの記事でコードの書き方を身につけておくと、リファレンスの内容がスムーズに理解できるようになる。

Pineスクリプトの書き方|基本構文をコード付きで完全解説

Pineスクリプトの関数・テクニックを実例で学ぶ

Pineエディタからリファレンスを直接開く方法

リファレンスをブラウザで検索して開く必要はない。TradingViewのPineエディタには、コードからリファレンスに直接ジャンプできる機能がある。

やり方は簡単だ。Pineエディタ上で調べたい関数や変数にカーソルを合わせると、ポップアップで簡易説明が表示される。ポップアップ内のリンクをクリックすれば、リファレンスの該当ページが別タブで開く。

WindowsならCtrlキーを押しながら関数名をクリック、MacならCmdキーを押しながらクリックすることで、ポップアップを経由せずに直接リファレンスページへ飛ぶこともできる。

この「コードを書きながら引く」ワークフローが最も効率的だ。わからない関数が出てきたらその場でCtrl+クリック。この習慣だけで、リファレンスが身近なものに変わる。

型システムを理解するとエラーが激減する

リファレンスを読むうえで避けて通れないのが、Pineスクリプトの「型」の表記だ。引数や戻り値に書かれているseries floatsimple intconst stringといった表記を理解しておく必要がある。

Pineスクリプトの型は「修飾子」と「基本型」の組み合わせで表現される。

修飾子は4種類ある。constはコンパイル時に値が確定する定数だ。inputはユーザー入力で値が決まるもので、スクリプト実行中は変化しない。simpleはスクリプトの最初のバーで値が確定し、以降変化しないものだ。seriesはバーごとに値が変化しうるものだ。

基本型はint(整数)、float(小数)、bool(真偽値)、string(文字列)、color(色)などがある。

重要なのは、修飾子には「互換性の階層」があるということだ。constinputとして使える。inputsimpleとして使える。simpleseriesとして使える。しかし逆はできない。seriesの値をsimpleが必要な場所には渡せない。

これをリファレンスの引数欄と照らし合わせれば、「なぜこの引数にこの値を渡すとエラーになるのか」が理解できるようになる。

たとえばta.sma(source, length)length引数はsimple int型だ。ここにclose > open ? 20 : 10のようなseries intの値を渡すとエラーになる。バーごとに期間が変わるSMAは計算できないからだ。一方、input.int(20, "期間")の戻り値はinput int型で、simpleとして使えるのでエラーにならない。

型の仕組みがわかると、リファレンスの引数欄を見ただけで「この関数に何を渡せて何を渡せないか」が即座に判断できるようになる。

よく調べる関数ベスト5と引き方

リファレンスで実際にどんな関数を調べることが多いのか。開発頻度の高い関数とその引き方を紹介する。

ta.sma / ta.ema — テクニカル指標の基本。リファレンスでta.の配下を見ると、50以上のテクニカル関数がずらりと並んでいる。RSI、MACD、ボリンジャーバンド、ATRなど、メジャーな指標はすべてビルトインで用意されている。自分でゼロから計算式を書く前に、まずta.配下を確認するのが鉄則だ。

strategy.entry — ストラテジーのエントリー注文。引数が多い関数の代表格で、iddirectionqtylimitstopcommentなど10以上のパラメータがある。すべてを暗記する必要はなく、リファレンスを見ながら必要な引数だけ指定すればいい。

input.int / input.float — ユーザー入力。minvalmaxvalstepgrouptooltipといったオプション引数が多く、毎回リファレンスで確認する価値がある。特にgroup引数を使うと設定画面をセクション分けできるので、見逃しがちだが便利だ。

request.security — マルチタイムフレームデータ取得。引数のexpressionに何を渡せるか、gapslookaheadパラメータの挙動など、細かな仕様をリファレンスで正確に把握しておかないとリペイントの原因になる。

plot — チャート描画。基本的な関数だが、style引数に渡せる定数(plot.style_lineplot.style_histogramなど)を調べるのにリファレンスが役立つ。どんな描画スタイルがあるかは定数ページで一覧できる。

v5とv6のリファレンスの違い

2025年現在、Pineスクリプトの最新バージョンはv6だ。リファレンスもv5版とv6版の両方が公開されている。

v6で追加された主な変更点としては、メソッド構文の拡充、型システムの強化、一部関数の名前変更などがある。v5で書いたコードがv6でそのまま動かないケースもあるため、新規でコードを書く場合はv6のリファレンスを参照するのが基本だ。

既存のv5スクリプトを修正する場合は、v5のリファレンスを見ながら作業し、必要に応じてv6への移行を検討すればいい。TradingViewのPineエディタには自動変換機能もあるので、バージョン移行のハードルは高くない。

リファレンスのURLで/v5//v6/を切り替えるだけで、同じ関数の異なるバージョンの仕様を比較できる。覚えておくと便利だ。

Pineスクリプトをこれから始める方はv6ベースで学ぶのがおすすめだ。

Pineスクリプト入門|プログラミング未経験でも書ける最初の一歩【v6対応】

リファレンスの検索機能を使いこなす

リファレンスの左上にある検索バーは、意外と強力だ。

関数名がわかっている場合は、そのまま入力すれば一発で該当ページに飛べる。ta.rsiと入力すればRSIの関数ページが表示される。

関数名がわからない場合は、キーワードで検索する。たとえば「移動平均」と入力すると、関連する関数が候補に出てくる。ただし日本語検索の精度は高くないので、英語のキーワード(moving averagecrossoverentryなど)で検索するほうが確実だ。

もうひとつ便利なのは、ブラウザのCtrl+F(ページ内検索)との併用だ。リファレンスのカテゴリページを開いた状態でCtrl+Fを使えば、ページ内の全関数名から目的のものを絞り込める。

リファレンスだけでは足りないもの

リファレンスは「辞書」として優秀だが、万能ではない。以下のような情報はリファレンスには載っていない。

「この関数をどういう場面で使うのか」というユースケースの説明はない。ta.atrのページに「ATRをトレーリングストップに使う方法」とは書いていない。リファレンスはあくまで関数の仕様を記載するものだ。

「複数の関数をどう組み合わせるか」というレシピもない。移動平均線のクロスでエントリーするストラテジーを作りたいとき、ta.crossoverstrategy.entryを組み合わせる必要があるが、その組み合わせ方はリファレンスの範疇外だ。

「よくあるエラーの対処法」も載っていない。エラーメッセージから原因を推測して、リファレンスで正しい構文を確認する、という使い方になる。

こうした実践的な知識は、実際にコードを書いて試行錯誤する中で身につけていくしかない。リファレンスはその過程で「正確な仕様を確認する」ための道具だと位置づけておこう。

まとめ

Pineスクリプトリファレンスは「読む」ものではなく「引く」ものだ。構造を理解し、名前空間で当たりをつけ、関数ページの型情報を確認する。この流れを身につければ、公式リファレンスはPineスクリプト開発における最強の辞書になる。

最初は「とりあえずCtrl+クリックでリファレンスを開く」という習慣をつけるだけでいい。コードを書きながら引く回数が増えるほど、リファレンスの読み方は自然と身についていく。

Pineスクリプトの実践テクニックをもっと学ぶ

※当サイトの内容は投資助言を目的としたものではありません。FX取引にはリスクが伴い、投資元本を失う可能性があります。投資判断はご自身の責任でお願いいたします。
ABOUT US
アバター画像
松風
現役トレーダー兼Pineスクリプト開発者。自分のトレード戦略を自分でコード化し、検証・運用しています。「トレードがわかる人が書くコード」をモットーに、開発代行・自作支援を行っています。