LoginSignup
43
39

More than 3 years have passed since last update.

Pineスクリプトのインディケーターを新規作成する

Last updated at Posted at 2018-05-04

Pine Script(Pineスクリプト)チュートリアル

はじめに

qiitaは技術系のサイトであり、利益が出る・出ない等の話は適切ではないと考えます。
なので、そういった話は以下のblogでしていきます。
超入門 TradingView PineScript

よかったら見に来てください。

この記事について

近年、仮想通貨がメジャーなものになってきたり、Oandaとの連携も始まったりして
TradingViewを使ってる方も多くなってきました。
しかし、Trading Viewでチャートを見たり、自作のインジケータを使う人は多くいるはずなのに、PineScriptに関する日本語の情報はまだまだ少ないのが現状です。
最近でこそマニュアルが日本語化されていますが、私がPineScriptを初めて触った頃は
マニュアルも英語でした。ちなみに私は英語は全くできません。

自分でチャートを描画する必要が無く、インジケータや売買ロジック部分の作成に集中できる
のは、個人的にものすごくメリットだと思います。
本記事では、Trading ViewのPineScriptについて私が今まで断片的な情報をかき集めて学んできたことを
皆様とシェアしたく、記事にまとめてみました。
今回は、移動平均線を表示するスクリプトから、Pine Scriptの基礎を学んでいきましょう。

qiitaは技術系のサイトですので、「利益が出るインジケータはどれか」という視点ではなく、あくまで
スクリプトの書き方等、技術寄りの情報を書いていきます。

Pineスクリプトを新規に作成する

trading Viewでチャートを表示し、下部にある「Pineエディタ」をクリックしてください。
111.png

Pineエディタが開きます。ここにスクリプトを書いていきます。
222.png

では、さっそくスクリプトを書いていきましょう。
一からですと大変なので、今回はMA(移動平均線)をローソク足に表示するサンプルを
こちらで用意しました。

チャート上に指標を表示する

MA(移動平均線)を表示するスクリプト

MAを表示するスクリプト
// タイトル。必ずstudyが必要。overlayをtrueにするとチャートの上に描画される
study("Moving Average", shorttitle="MA", overlay=true)

// ソース(終値)
source = close

// MAの長さ
len = 10

// MAの計算
ma = sma(source, len)

// 計算したMAをプロットする
plot(ma)

Pineエディタにコピペし、「チャートへ追加」を押すと、MA(10)がローソク足の所に表示されました。
(少し見にくいですが水色の線です)
333.png

source(series)の中にはcloseを入れましたが、open,low,highを指定することによってそれぞれ始値、安値、高値の移動平均線を引くことも可能です。
lenの中には10を入れました。これは移動平均線の日数です。
maに、単純移動平均線(sma)を計算させた結果を入れています。sma関数はソース(series)と日数を入れるとseriesが戻ってくる関数です。

しかし、これでは移動平均線の日数やsourceを変更する度にスクリプトを修正しなければなりません。
なので、設定からsourceと移動平均線の日数を変更できるように修正しましょう。

MAを表示するスクリプト(修正版)
// タイトル。必ずstudyが必要。overlayをtrueにするとチャートの上に描画される
study("Moving Average", shorttitle="MA", overlay=true)

// ソース(終値)
source = input(close)

// MAの長さ
len = input(10, title="Length")

// MAの計算
ma = sma(source, len)

// 計算したMAをプロットする
plot(ma)

input関数を使うことにより、インディケーターの設定画面から、ソースとMAの日数を変更する事ができるようになりました
sss.png

チャート下に指標を表示する

RSIを表示するスクリプト

RSIを表示するスクリプト
// タイトル。必ずstudyが必要。overlayをtrueにするとチャートの上に描画される
study("RSI", shorttitle="RSI")

// ソース(終値)
source = input(close)

// 計算したRSIをプロットする
plot(rsi(source, 10), color=red)

rsi関数部以外はoverlay部を削除(自動でfalseになる)しただけですので、詳細は省略します。

使用した要素のリファレンス一覧

より深く知りたい方は、以下のリファレンスをご覧ください。本記事では紹介していない引数やサンプルソースもあります。
study
close
sma
rsi
plot
input

参考URL

PINEスクリプト言語参照マニュアル
TradingViewのPine Scriptを効率的にデバッグする
Pine Script Tips

43
39
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
43
39