TradingViewの使い方

Pine Script入門 - 種類や関数などを初心者向けに詳しく解説


1.Pine Scriptとは?

・TradingViewのScript言語

TradingViewのチャート上で動作するインジケーターやストラテジー(トレードロジック)を作成することができるプログラミング言語です。
プログラミング言語というと難しいように感じますが、Pine Scriptは比較的少ない手順で作ることができます。
この記事を通して、未経験の方でもインジケーターの作成からストラテジーの作成までできることを目指しています。
後の方の章では各ソースコードをコピペ+少しの修正で、インジケーターやストラテジーが組み上がる構成となっていますので是非、チャレンジしてみて下さい。

・PineScriptでできること

スクリプトエディタ

チャートの下にスクリプトコードのエディタがあります。
これはTradingViewの標準機能で、コードを書き易しくしてくれる便利な機能が沢山あります。

ハイライト機能

あらかじめ組み込まれてる関数や変数を分かり易く色分け強調をしてくれます。

追加情報の表示機能(ポップアップウィンドウ)

Pine言語に組み込まれた関数などにカーソルを合わせると、追加の情報が表示されます。
ここでは、関数の使い方、変数の種類などを簡潔に表示してくれます。
リファレンスマニュアルをみなくても使い方を知ることができるので便利です。

追加情報の表示機能(ポップアップウィンドウ)

インジケーターやストラテジーの保存機能

ご自分で作成したインジケーターやストラテジーを保存することができます。
データの保存はTradingViewの、ご自分のアカウント内に保存されます。
つまりTradingViewにログインできる環境さえあれば、何処からでも作成、編集できるという強みがあります。

スクリプトの公開機能

TradingViewにはトレードアイディアを公開共有したり、作成したスクリプトを公開共有する機能があります。
スクリプトはオープンソースで公開することもでき、世界中の人が色々なトレードアイディアを公開しています。

スクリプトの公開機能

またTradingViewで公開したインジケーターは消えることなく、ずっとTradingViewに保存さています。
そのため、お気に入りのインジケーターが消えてしまったということが、起きにくいシステムとなっているのも魅力の一つです。

公開されているスクリプトはインジケーターであれば、下記の場所から見つけることができますので、参考にして下さい。

公開されているスクリプトの見つけ方

2.Pine Scriptの種類は2つ

・PineScriptは「indicator」型と「strategy型」の2種類

・ indicator型(Version5の場合。Version4はstudy型です。)

インジケーターを書くための型となります(下図)。
メインウィンドウのボリンジャーバンドや、サブウィンドウのMACDクロスなどを簡単に作ることができます。
良く使用される組み込み関数(後述)も用意されていますので、簡単に組み込むことができるものも多くあります。

indicator型

実際にインジケーターのスクリプトを作成する際は、右下開くから新規作成のインジケーターを選びます。
次にインジケーターであることを宣言するIndicatorを記述し、作成していきます。

新規作成のインジケーターを選ぶ

インジケーターであることを宣言する Indicatorを記述

・strategy型

トレードの売買戦略を書くものとなります。
これでできることは、トレードを自動化、過去の売買の結果検証(バックテスト)です。
自分の考えたトレード戦略がどのようなときに強いのか、弱いのかなど知ることはトレーダーにとって最重要項目の一つです。
是非バックテストに役立てて下さい。

ストラテジーは、画面下にどのようなトレードの推移となるかビジュアル的に見て分析することができます。

strategy型

実際にストラテジーのスクリプトを作成する際は、右下の開くから新規作成のストラテジーを選びます。
次にストラテジーであることを宣言するStrategyが記述されていることを確認し、作成していきます。

Strategyが記述されていることを確認

3.Pine Scriptの関数とは?

・「関数」とは何か

プログラミングでよく出てくる関数と言う言葉があります。
一番分かり易い日本語に置き換えると「○○をしてくれる機能」のことです。
何かを入力すると別の何かに変換してくれる機能のことです。

「関数」とは何か

上図の例はシンプルな例ですが、複雑な計算や処理をひとまとめにして、関数として作ることができます。

またプログラムを書く上で、引数と言う言葉も沢山出てきます。
引数は、上図の5や3のことで、関数に渡す(入力する)値です。
引数を渡してあげることで、15の結果を得ることができます。
この結果15はプログラミングでは戻り値と呼ばれます。

TradingViewには、予めよく使われる操作を組み込み関数として準備してくれています。
これらを上手く使うと、簡単でシンプルにスクリプトを書くことができます。

・ビルトイン関数(組み込み関数)について

ビルトイン関数とは、予めPineスクリプトで用意されている関数です。
トレードを扱うスクリプトで特に便利なのは、様々な指標を幾つかの引数を入力するだけで、計算してくれるものたちです。

例:指数平滑移動平均線を計算しようとすると、以下の様な計算が必要です。
(直近の動きに追従し易い移動平均線)

指数平滑移動平均線の計算

この程度なら、全てスクリプトを記述しても良いかも知れませんが、平均したい期間が100日、200日の平均となると大変です。
そこでビルトイン関数を使用します。

指数平滑移動平均線用にTradingViewで用意されているビルトイン関数は、ta.emaです。

これを使って記述すると

    指数平滑移動平均線 = ta.ema(価格, 平均期間※)
    ※3日平均であれば3を入力

この1行で済んでしまいます。
このようなビルトイン関数が指標以外にも、画面の表示機能などにも用意されていますので、上手く活用することで、効率的にミスを減らしながらスクリプトを書くことができます。

下図は一例ですが、2つの値のクロスも3種類用意されていて、他にも様々なビルトイン関数が用意されていますので、これを駆使することで、簡潔で信頼性の高いスクリプトを書くことができます。

                                                                       
ビルトイン関数名 戻り値
ta.sma(s, length) sの期間lengthの単純移動平均値
ta.ema(s, length) sの期間lengthの指数平滑移動平均値
ta.cross(s1,s2) s1,s2の系列が互いにクロスすると true
ta.crossover(s1, s2) s1がs2を上にクロスすると true
ta.crossunder(s1, s2) s1がs2を下にクロスすると true

4.Pine Scriptの変数とは?

・変数とは何か

変数はとても頻繁に登場しますので、しっかりとおさえておいてください。
プログラミングの変数は、数値や文字などの値を入れられる領域のことです。
「値を入れておく箱」と思って頂いて大丈夫です。
プログラミングでは、扱いたい値によって、予め入れる箱の種類を決めておく必要があります。
これを変数の型と言います。

変数とは何か

型指定を間違えると極端な例ですが、水をボトルに入れるべきところを、カゴに入れると水はこぼれて使えなくなってしまいます。

水をボトルに入れるべきところを、カゴに入れると水はこぼれて使えなくなる

正しく入れた変数は何度でも入っている値をみたり、別の値を入れてたりすることができます。
必ず適切な箱(型)を用意するようにして下さい。

必ず適切な箱(型)を用意

箱(型)が違っても入ることがありますが、中身が変わってしまうこともありますので注意が必要です。

・Pineスクリプト上での書き方まとめ

変数の型の種類

代表的なものを以下に示します。

                                                                                         
変数の型 扱える値
Int型整数123,-123
float型小数12.34, -12.34
string型文字列あかさたな
bool型真偽値true,false

変数を使うには
①箱の種類を決める   =  変数の型を決める。
②箱に名前を付ける。  =  変数の名前を決める。
③箱に値を入れる。   =  変数の値を代入する。
3つです。
これを「変数を宣言する」と言います。

実際の例です。

int型の変数を使い、変数の名前は「i」と決めました。
そして、初期値として14を代入する処理をしています。

初期値として14を代入する処理

このような形で変数が使えます。

・ビルトイン変数について

ローソク足の始値、終値、高値、安値など頻繁に使うものは、予めビルトイン変数というもので用意されていて、手軽に使うことができます。
よく使うものでは下記です。

                                                                       
ビルトイン変数名 戻り値
openローソク足の始値
closeローソク足の終値
highローソク足の高値
lowローソク足の安値
volume取引高

ビルトイン変数名をスクリプトに組み込むだけで、各値を参照することができます。

※ただし、予め用意されている変数名は、自分で同じ名前の変数を作ることはできません。

5. Pine Scriptの演算子とは?

・演算子とは何か

大きくは算出演算、論理演算があり、スクリプトでロジックを書く際に必須となるものです。

①算術演算子

足し算、引き算、かけ算、割り算などを行うためのものです。

    ここでは変数を以下のように定義した例です。
    var1=6,var2=3,var3=5

                                                                                                                                                                                                                                                                                                             
算術演算子 使用例 実例
+(★)加算var1+var26+3=9
+=(★)加算
代入
var1+=var26+3が行われ、
var1に9が代入されます
減算var1+var26-3=3
-=減算
代入
var1-=var26-3が行われ、
var1に3が代入されます
*乗算var1*var25×3=15
*=乗算
代入
var1*=var26x3が行われ、
var1に18が代入されます
/割り算var1/var26÷3=5
/=割り算
代入
var1/=var26÷3が行われ、
var1に2が代入されます
%割り算の
余り
var1%var36/5=1.2が行われ
余り0.2が戻り値となります
%=割り算の
余りの代入
var1%=var3var1に余り0.2が
代入されます

(★)印の2つは、文字列にも使用できます。

②論理演算

論理演算は、論理演算子と比較演算子の2つがあります。

論理演算子

様々な条件判定をするのに用います。

    ここでは変数A,Bは論理値である必要があります。
    つまり、bool型での宣言が必要です。

                                                                                         
倫理演算子 使用例 実例
andA and BAもBもならば、
が返されます
orA or BAとBどちらかがならば、
が返されます
notnot AAがならば、
が返されます
ifif AAがのときに、
その後に続く処理を実行することが
できます。

比較演算子

同様に様々な条件判定をするのに用います。

                                                                                                                                     
比較演算子 使用例 実例
<A<BAがB未満のときに、
が返されます
<=A<=BAがB以下のときに、
が返されます
>A>BAがBより大きいときに、
が返されます
>=A>=BAがB以上のときに、
が返されます
==A==BAとBが等しいときに、
が返されます
!=A!=BAとBが異なるときに、
が返されます

算術演算子、論理演算子、比較演算子について説明してきましたが、これらを組み合わせてトレードロジックの中核を書くことができます。
続いて、PineスクリプトのVersion4と5の違いを紹介した後、作成例や書き方などに進んできます。
Pine ScriptのVersion4とVersion5の違い


本ホームページに掲載されている事項は、投資判断の参考となる情報の提供を目的としたものであり、投資の勧誘を目的としたものではありません。投資方針、投資タイミング等は、ご自身の責任において判断してください。本サービスの情報に基づいて行った取引のいかなる損失についても、当社は一切の責を負いかねますのでご了承ください。また、当社は、当該情報の正確性および完全性を保証または約束するものでなく、今後、予告なしに内容を変更または廃止する場合があります。なお、当該情報の欠落・誤謬等につきましてもその責を負いかねますのでご了承ください。

この記事をシェアする

ホーム » TradingViewを使った戦略 » Pine Script入門 – 種類や関数などを初心者向けに詳しく解説