MENU

PineScriptとは|TradingView独自言語の基本・書き方・サンプル・AI自動生成まで完全解説

【PR】本記事はプロモーションを含みます。

「TradingViewでオリジナルのインジケーターを作りたい」「自分の取引ルールをバックテストで検証したい」「ChatGPTやClaudeに自動生成させたいけど、そもそもPineScriptって何?」——こうした疑問を一気に解消するのが、本記事です。

PineScriptはTradingView独自のプログラミング言語で、独自インジケーターの作成や自動売買戦略のバックテストができます。2024年末にv6が登場し、2026年現在はClaude / ChatGPTでPineScriptを自動生成する流れが一気に主流になりました。本記事では、基礎概念からコピペで動くサンプル、AI自動生成までを完全解説します。

この記事でわかること
  • PineScriptとは何か、なぜ今学ぶ価値があるのか
  • インジケーターとストラテジーの違い、できること・できないこと
  • v6で何が変わったか(処理速度・新機能)
  • 初心者でもコピペで動くサンプルコード3選
  • 自動売買戦略の書き方とバックテストの流れ
  • ClaudeでPineScriptを自動生成する最短ルート

想定読者:TradingViewのチャートを使ったことがある方向けです。プログラミング経験はなくてもOK、コピペから始められるよう構成しています。

MyVision
MyVision
【コンサル業界専門】
・未経験OKのキャリア相談
・戦略/IT/データ系ファームに強い
公式サイトで相談

コンサル特化エージェント。無料転職相談(所要1分予約)/戦略・IT・データなど主要ファームのキャリアに精通

目次

PineScriptとは

ここで覚えてほしい一言

PineScriptはTradingViewのチャート上だけで動く専用言語。インジケーター作成と戦略バックテストの2つに特化している。

PineScriptは、TradingViewが独自に開発したチャート分析用のプログラミング言語です。
TradingViewのPineエディタ上で書いたコードは、その場でチャートに反映され、インジケーターの描画や売買シグナルの表示、過去データに対するバックテストまで実行できます。

大きな特徴は、TradingView外に持ち出して動かすことができない点です。Pythonのように汎用的に使う言語ではなく、「チャート上の動作を記述するための専用言語」と理解するのが正確です。

項目内容
開発元TradingView社
初版公開2014年(最新はv6、2024年末リリース)
動作環境TradingView上のみ
主な用途インジケーター作成/ストラテジー(バックテスト用)
料金無料プランでも基本機能利用可能
言語タイプ独自構文(Python/JavaScriptとは別系統)

なぜ今PineScriptを学ぶ価値があるのか

ここで覚えてほしい一言

PineScriptは「自分専用の指標と戦略を持つ」ためのスキル。AI自動生成時代に学習コストが激減した。

2026年現在、PineScriptを学ぶ価値が3つの構造変化により急上昇しています。

第一に、v6リリースによる処理速度の劇的向上です。複雑な計算やリアルタイム分析でも遅延なく動作するようになり、実用的なストラテジーが作りやすくなりました。
第二に、Claude / ChatGPTでPineScriptを自動生成できるようになりました。「RSI 30以下で買い・70以上で売りのストラテジーを書いて」と自然言語で頼むだけで、動くコードが返ってきます。
第三に、個人投資家のアルゴ取引ニーズの高まりです。手動売買から半自動化への移行を支える基盤として、PineScriptが現実的な選択肢になっています。

PineScriptの2大用途

ここで覚えてほしい一言

indicator()は「描画専用」、strategy()は「売買シミュレーション」。最初に書く関数で全てが決まる。

PineScriptで書けるスクリプトは大きく2タイプに分かれます。最初に書く関数(indicator()またはstrategy())で、どちらの用途なのかが決まります。

用途indicator()strategy()
目的チャートに線・矢印・図形を描画売買シミュレーション・バックテスト
主な機能移動平均線・RSI・カスタム指標エントリー/エグジット条件・損益計算
結果表示チャート上の描画「ストラテジーテスター」タブで損益・勝率を確認
使うべきケース視覚的に判断材料を増やしたい戦略の有効性を数値で検証したい

初学者はまずindicator()から入るのがおすすめです。
移動平均線などシンプルな描画から始めて、慣れてきたらstrategy()でバックテストに進むのが王道ルートです。

PineScriptで何ができる?できないこと

ここで覚えてほしい一言

PineScript単体では実発注できない。実発注したいならブローカー連携APIや別途自動売買ツールが必要。

できることとできないことを明確にしておくと、過度な期待や勘違いを避けられます。

できることできないこと
独自インジケーターの作成・描画TradingView経由での自動実発注(一部ブローカー除く)
過去データのバックテスト・損益計算外部APIへのHTTPリクエスト
アラート(メール・Webhook)機械学習モデルの学習
マルチタイムフレーム分析ファイル入出力・データベース接続
Webhook経由での外部通知TradingView外でのスクリプト実行

「PineScriptで完全自動売買したい」という場合は、アラートのWebhook機能を使い、外部の自動売買ボット(3CommasやAlertaTronなど)に連携するのが実務的な解です。あくまでPineScript自体は「シグナル生成エンジン」であり、注文執行は別レイヤーで行います。

Pine Script v6の主な進化ポイント

ここで覚えてほしい一言

v6の3大改善点は処理速度・動的配列・型推論。複雑な戦略がシンプルに書けるようになった。

2024年末にリリースされたPine Script v6は、TradingViewが「過去最大のアップデート」と銘打った大改修です。主な変更点は以下のとおりです。

  • 処理速度の大幅向上:大量のヒストリカルデータ処理が体感で2〜3倍速くなった
  • 動的配列・タプルのサポート強化:これまで冗長だった処理が短く書けるように
  • 型推論の改善:明示的な型宣言が減り、Pythonライクな書き心地に近づいた
  • 新しい組み込み関数:高度な統計関数や時系列処理が追加
  • ライブラリのバージョン管理改善:依存関係を扱いやすくなった

スクリプトの先頭に//@version=6と書くだけでv6が有効になります。
古いバージョンのコードもしばらく動きますが、新規開発はv6で書くのがスタンダードです。

Pineエディタの基本的な使い方

ここで覚えてほしい一言

PineエディタはTradingView画面下部からワンクリックで開けるブラウザ内蔵エディタ。インストール不要。

01
TradingViewにログイン

TradingView(無料プランでOK)にログインし、任意のチャートを開く

02
Pineエディタを開く

画面下部の「Pineエディタ」タブをクリック。インストール不要でその場で起動する

03
テンプレートを選択

「開く」→「組み込みスクリプト」から「Moving Average」など既存スクリプトを参考にする

04
コードを書いて保存

コードを編集し、Ctrl+Sで保存。「チャートに追加」ボタンですぐにチャート上で動作確認できる

初心者向けサンプルコード3選|コピペで動く

ここで覚えてほしい一言

プログラミング未経験でも、コピペで3分で動く。まずは触って書き換えて、感覚を掴むのが最速の学習法。

サンプル①:25日移動平均線

もっとも基本的な、終値の25日移動平均線(SMA)を描画するコードです。
変数1つと描画関数1つだけで完成します。

//@version=6
indicator("25日SMA", overlay=true)
sma25 = ta.sma(close, 25)
plot(sma25, color=color.blue, linewidth=2, title="SMA25")

indicator()でインジケーターとして宣言し、ta.sma()で移動平均を計算、plot()でチャートに描画。
overlay=trueを指定するとローソク足チャート上に重ねて表示できます。

サンプル②:RSI+買われすぎ/売られすぎゾーン

RSI(相対力指数)を計算し、70以上を赤・30以下を緑で塗り分けるコードです。
視覚的に過熱感を判定しやすくなります。

//@version=6
indicator("RSI+ゾーン", overlay=false)
length = input.int(14, title="RSI期間")
rsi = ta.rsi(close, length)
plot(rsi, color=color.purple, linewidth=2)
hline(70, "買われすぎ", color=color.red)
hline(30, "売られすぎ", color=color.green)
bgcolor(rsi > 70 ? color.new(color.red, 85) : rsi < 30 ? color.new(color.green, 85) : na)

input.int()でユーザーがパラメータを変更できる入力欄を作成。
hline()で水平線、bgcolor()で背景色を条件付きで塗ります。

サンプル③:ボリンジャーバンド

移動平均線とその上下の標準偏差バンドを描画する定番インジケーターです。

//@version=6
indicator("ボリンジャーバンド", overlay=true)
length = input.int(20, title="期間")
mult = input.float(2.0, title="標準偏差倍率")
basis = ta.sma(close, length)
dev = mult * ta.stdev(close, length)
upper = basis + dev
lower = basis - dev
plot(basis, color=color.orange, title="Basis")
plot(upper, color=color.blue, title="Upper")
plot(lower, color=color.blue, title="Lower")
fill(plot(upper), plot(lower), color=color.new(color.blue, 90))

ta.stdev()で標準偏差を計算し、上下バンドを描画。
fill()でバンド内を半透明で塗りつぶしています。標準偏差倍率を変えると、バンド幅の感度を調整できます。

ボリンジャーバンドはta.stdev()で標準偏差を計算してバンドを描画。標準偏差倍率を変えるだけで感度を調整できるのが実用的です。

ストラテジー(自動売買戦略)の書き方とバックテスト

ここで覚えてほしい一言

strategy()でエントリーとエグジットを書くだけ。あとはストラテジーテスターが自動で勝率・損益を計算してくれる。

ストラテジー(自動売買戦略)の最小限のコードはとてもシンプルです。
「RSIが30以下で買い、70以上で売り」という典型的な逆張り戦略を書いてみます。

//@version=6
strategy("RSI逆張り", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
length = input.int(14, title="RSI期間")
oversold = input.int(30, title="買い閾値")
overbought = input.int(70, title="売り閾値")
rsi = ta.rsi(close, length)
if rsi < oversold
    strategy.entry("Long", strategy.long)
if rsi > overbought
    strategy.close("Long")

strategy.entry()でロングポジション開始、strategy.close()で決済。
このスクリプトを保存して「チャートに追加」すると、画面下部に「ストラテジーテスター」タブが表示され、過去データに基づいた損益・勝率・ドローダウンが自動計算されます。

バックテスト結果を読むときの注意
  • 過去データで勝てた戦略が、未来でも勝てるとは限らない(カーブフィッティングのリスク)
  • サンプル数が少ない(30トレード未満)と勝率が偶然の振れに左右される
  • スリッページ・スプレッドを織り込まないと実運用で結果がブレる
  • 市場環境(強気相場・弱気相場)により有効な戦略が変わる

過去で勝てる戦略を作る」のではなく、「戦略の前提が崩れていないか確認する」道具として使うのが正しい付き合い方です。

ストラテジーはstrategy()関数でエントリーとエグジットを書くだけ。あとはストラテジーテスターが勝率・損益・最大DDを自動で計算してくれます。

PineScriptを学ぶおすすめロードマップ

ここで覚えてほしい一言

「コピペ→改変→自作」の3段階が最速ルート。文法書から入ると挫折しやすい。

01
組み込みインジケーターのコードを読む

「Moving Average」「RSI」など組み込みスクリプトを開き、コードを読む。短く読みやすい

02
パラメータを変えて試す

期間や色などを書き換え、保存してチャートに反映。挙動の変化を観察する

03
組み合わせる

移動平均×RSIなど複数指標を組み合わせ、自分の判断ロジックをコード化する

04
ストラテジーで検証

indicator()からstrategy()に書き換え、エントリー条件を加えてバックテスト

05
AIで自動生成

Claude / ChatGPTに「○○の戦略を書いて」と依頼。出力コードを読んで理解する

文法書を最初から最後まで読むより、「動くコードを触りながら覚える」方が圧倒的に早く身に付きます。
困ったらPine ScriptのリファレンスマニュアルやTradingViewコミュニティスクリプトを参照しましょう。

ClaudeでPineScriptを自動生成

ここで覚えてほしい一言

Claude × TradingView MCP連携を使うと、自然言語で「○○の戦略を書いて」と頼むだけで、TradingViewにそのまま貼れるコードが生成される。

2026年最大のトレンドが、Claude / ChatGPTでPineScriptを自動生成する流れです。
特にClaude CodeとTradingViewをMCP(Model Context Protocol)で連携させると、書いて→コンパイル→エラー修正→チャートに適用までを自動でループ実行できます。

具体的な依頼文の例:

  • 「RSI 30以下で買い、70以上で売りのストラテジーをPine Script v6で書いて」
  • 「移動平均線のゴールデンクロスで買い、デッドクロスで売る戦略を、ストップロス3%付きで書いて」
  • 「ボリンジャーバンドのスクイーズを検出して、ブレイクアウトでエントリーする戦略にして」

連携手順や具体的な活用方法は、別記事で詳しく解説しています。

MCPやAIエージェントの基礎については以下の記事もあわせてどうぞ。

PineScriptのよくあるエラーとデバッグTips

ここで覚えてほしい一言

エラーの9割は「インデント」か「型不一致」。エラーメッセージの行番号を見て局所修正するのが最速。

エラー原因と対処
Mismatched inputインデントが揃っていない。タブとスペースが混在していないか確認
Cannot call ‘plot’ with argumentsplot()に渡している値の型が不正。簡単な変数を1つplotしてみて切り分け
Undeclared identifier変数名のタイポ、または宣言前に使用している
Series of XXX expectedseriesとsimpleの違い。ta.sma(close, len)のlenは整数定数が必要
Script could not be translatedv5以前の構文が残っている。study()indicator()に書き換え

デバッグの定番テクニックはlabel.new()でチャートに値を表示することです。
変数の中身を可視化することで、計算ロジックの誤りを発見しやすくなります。

よくある質問

Q. PineScriptは無料で使えますか?

TradingView無料プランでも基本機能(インジケーター作成・ストラテジーバックテスト)は利用できます。
ただし有料プランではバックテストの過去データ範囲が広がる、保存できるスクリプト数が増えるなどの優遇があります。

Q. プログラミング未経験でも書けますか?

はい、書けます。本記事のサンプルコードはコピペで動きます。
変数や条件分岐の概念がわかれば、Pythonなど他言語経験は不要です。最近はClaude / ChatGPTに自然言語で依頼してコード生成→自分は読んで理解、という学び方も主流です。

Q. PineScriptで実際に注文を出せますか?

TradingView単体では一部ブローカー(Tradovate・OANDA等)に限り対応していますが、多くの場合はWebhookで外部の自動売買ツールに通知し、そちらで実発注する形になります。

Q. v5で書いたコードはv6で動きますか?

多くのv5コードは//@version=5のまま動作し続けます。
新規開発はv6推奨ですが、既存コードを急いで書き換える必要はありません。書き換える場合は、TradingView公式の「v5→v6マイグレーションガイド」を参照すると安全です。

Q. Pythonで代替できますか?

計算自体はPython(pandas / TA-Libなど)で再現可能ですが、TradingViewのチャートに直接描画したり、Webhookで通知したりする機能はPineScriptならではです。「TradingViewと一体化した便利さ」が最大の価値になります。

まとめ|自分専用の指標と戦略を持つスキル

ここで覚えてほしい一言

2026年は「AIに書いてもらいながら、人間が読んで理解する」のが現実解。完全に書けなくても、読めれば十分活用できる。

PineScriptはTradingView上だけで動く専用言語ですが、その分「学習コスト低・即チャートに反映・無料で使える」という三拍子が揃った、個人投資家にとって最も実用的な分析ツールの一つです。

v6によって書き心地は大幅に改善され、Claude / ChatGPTでの自動生成も実用段階に入りました。
「自分の判断ロジックを目に見える形にする」「バックテストで戦略の有効性を確認する」という用途なら、最初の一歩を踏み出すには絶好のタイミングです。

まずは本記事のサンプルコードをコピペして動かしてみることから始めてみてください。

スクロールできます

Winスクール
【初心者向け】
・20~30代におすすめ
・データ分析・AIに特化
公式サイトで無料登録する

当サイトは、アフィリエイト広告を利用しています。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

管理人のアバター 管理人 データエンジニア / ETL設計

基幹システム×データエンジニア|DataEngineerLabs運営
大手食品系の基幹システム開発を経験。人事・給与・販売管理のデータ連携、ETL設計、SQLパフォーマンスチュートリアル、バッチ保守が専門。
DataSpider実務経験。"使える状態にする"難しさを発信中

コメント

コメントする

目次