見出し画像

【トレーディングビュー】習うより慣れろ!とりあえずPineスクリプトでインジケーターを作ってみよう①

こんにちは、rakkosanです。

インジケーターを自作すると聞くとなんだか難しそうに思いますが、Pineスクリプトを勉強し始めると思ったより簡単なんだと気付きました。

プログラミングについては全くの素人ですが、Pineスクリプトはそんな素人にも始めやすいプログラミング言語です。

なぜならチャートやインジケーターに必要な機能はPineスクリプトに内蔵されているからです。
イメージとしてはエクセルの関数のように、必要そうな関数は大体用意されています。
関数を組み合わせるだけで自分が求めるインジケーターを作ることができます。

見たほうが分かりやすいので、いちばん簡単なインジケーターの作り方の手順を紹介します。

インジケーター新規作成

Pineエディタ

チャート画面の下の『Pineエディタ』をクリックするとPineスクリプトの編集画面が表示されます。

新規作成

画面の『開く』→『新規インジケーター』をクリックすると新規インジケーターのテンプレが作成されます

今回はこのテンプレについて解説します。

名前を付けて保存

まだ名前なしとなっているので『テスト』と名前を付けて保存します。

保存
保存後

スクリプト名が『テスト』となりました。
これはあくまでスクリプト名で、表示させたいインジケーター名は別になります。後でインジケーター名の付け方も紹介します。

チャートにインジケーターを追加

このテンプレ状態でチャートに追加してみます。

チャートに追加
追加後

チャートに何やらインジケーターらしきものが追加されました。

テンプレのコード解説

今のところPineエディタには下記のコードが記載されています。

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © rakkosan

//@version=5
indicator("マイスクリプト")
plot(close)

何がどうなってこのコードから先程のインジケーターが表示されているのか解説します。

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © rakkosan

まずはこちらの部分ですが、プログラムには関係ありませんので無視してOKです。削除してもプログラムに影響はありません。
新規作成時に勝手に入るライセンスやコピーライトがどうとかの文言です。

次からが大事な部分です。

バージョン指定

//@version=5

これはPineスクリプトのバージョンを指定しています。
「これからバージョン5を使うよ」と宣言しています。

Pineスクリプトはバージョンを続けていて、バージョンによって使える機能や関数が違いますので、最初に宣言する必要があります。

2024年2月時点でバーション5が最新なのでこちらを使います。

インジケーターの宣言

indicator("マイスクリプト")

この部分は「これからインジケーターを作るよ」という宣言になります。

Pineスクリプトでは「インジケーター」と「ストラテジー」を作成できます。どちらを作成するか必ず宣言しないといけません。

インジケーターを作る場合はindicator()関数を使います。

()の中は名前や表示位置等のインジケーターの基本設定を記載します。

設定できる項目はたくさんありますが、最初は下の2つ分かっていれば大丈夫です。

【title】 
インジケーターの名前を設定します。
indicator(title = "名前")で名前を設定できます。
テンプレでは indicator("マイスクリプト") となっていますが
これは indicator(title = "マイスクリプト") が省略されている形です。
項目を省略できるルールがあるのですがややこしいので割愛します。

【overlay】
 
チャートのどのエリアに表示するか設定します
trueの場合はメインエリア(ロウソク足と同じところ)
flseの場合はサブエリア(オシレーターと同じところ) 
この項目を設定しないとデフォルトではfalseになります。
テンプレでは設定されていないのでfalseとなり、インジケーターはメインエリアの下部に描写されています。

よって、テンプレを省略せずに記載すると
indicator(title = "マイスクリプト" , overlay = false)
となります。

プロット(描写)する

plot(close)

plot()関数はチャート上に指定の情報を描写してくれます。
()の中でどの数値を描写するか、色や線の種類をどうするか等を設定します。

数値を設定するには series を使います。

テンプレでは  plot(close) となっていて、これは
plot(series = close)  の略です。

close は終値を意味しています。
基本的な情報はパインスクリプトが内蔵しています。
例えば4本値であれば始値=open、終値=close、高値=high、安値=low
となります。
プロットしたい情報を指定してあげるだけです。

色や線種は設定していないのでデフォルト設定となります。

つまり

以上をまとめるとテンプレのスクリプトは、
バージョン5で、サブエリアに、終値をプロットするインジケーター
ということになります。

おわりに

こうして見るとパインスクリプトはやってることは結構シンプルなんだと分かります。
パインスクリプトにはどんな関数があるか等を勉強していけばあとは組み合わせです。
単純移動平均線をプロットしたい時は、sma()関数で単純移動平均線の値を計算してplot()関数で描写してあげればOKです。
plot(sma(close,20))で期間20の単純移動平均線を描写できます。

関数は公式ページのマニュアルで調べることができます。

また、Pineエディタは関数を途中まで入力すれば候補を提案してくれますし、設定項目の説明もポップアップで表示してくれるのでとても親切です。

もちろん高度なインジケーターを作るにはプログラミングの知識が必要ですし、そもそもインジケーター自体の計算方法についての知識も必要です。

ただ、既存のインジケーターを自分好みにカスタムするくらいであればすぐできるようになります。
例えばこちら↓

興味があれば一度勉強してみてはいかがでしょうか?



移動平均線、ボリンジャーバンド、一目均衡表、平均足を1つにまとめたインジケーターを販売しています。
良ければこちらも御覧ください!

Pineスクリプトを学ぶならこれが入門書としておすすめの1冊です。

本記事はAmazonアソシエイトプログラムに参加しています。



よろしければサポートお願いします! 更新のモチベーションになります!