悩みごと
- TradingViewの無料プランでも3つ以上のインジケータを表示する方法はない?
- 有料プランになればインジケータ以外にも便利に使えるけど、インジケータだけを増やしたい
TradingViewのPineスクリプトを使えば解決できます!
Pineスクリプトを使って表示させたいインジケータをまとめて1つのインジケータとして表示できるので、無料プラインでも3つ以上のインジケータの表示も夢じゃない!
簡単なコードもご紹介するので、プログラムが苦手な方でもコピー&ペーストで表示できますよ。
この記事でご紹介する内容
- TradingViewの無料アカウントの利点
- Pineスクリプトが無料プランでどれだけ有用か
- Pineスクリプトを適用方法
- カスタムインジケータの紹介
TradingViewの無料アカウントの利点
多くのトレーダーが使っているTradingView。
無料プランだからってあなどれません
TradingViewって?
TradingViewは、オンラインのチャート分析ツールおよびトレーディングプラットフォームです。
株式、外国為替(Forex)、暗号通貨、商品など、単一の証券会社が提供する情報では網羅しきれない多様な市場の価格データを視覚的に分析することができます。
TradingViewは、設定内容が複数のデバイスで同期される特長があるのでトレーダーに非常に人気です。
ブラウザで設定したインジケータや水平線がスマホのアプリでも同じようにみれるって便利ですよね。
無料プランでも強力なツール
TradingViewには、無料プランと複数の有料プランがあります。
もちろん有料プランのほうが使える機能は増えますが、おおまかに無料プランと有料プランのちがいをまとめました。
有料プランの方がより便利に利用できますが、無料プランでも十分な機能が備わっており、とっても強力なツールですよ。
有料プランになると・・・
- 表示可能なインジケータが増える (2つ)
- データ更新が高速になる (数秒毎の更新)
- アラートの利用可能数が増える (1つ)
- ウォッチリストの利用可能数が増える (1つ)
- ウォッチリストで管理できるシンボル数が増える (30個)
- ヒストリカルバーが2倍以上になる (5,000本)
- サポート問い合わせができる (サポートなし)
※括弧内は無料プランの場合
引用元:https://jp.tradingview.com/gopro/#compare
Pineスクリプトが無料プランでどれだけ有用か
Pineスクリプトは、TradingView独自のプログラム言語です。
シンプルな構造なので初心者の方でも心配いりませんよ
Pineスクリプトって?
Pineスクリプトは、チャート上にカスタムインジケーターを表示したり、独自の取引アイディアや自動アラートを実現可能にするための強力な手段です。
もちろんPineスクリプトは無料プランでも利用することができます。
Pineスクリプトを活用することで、有料プランと近いレベルのインジケータの表示が可能になります。
複数のインジケータをまとめられる
例えば、単純移動平均線(MA)を短期・中期・長期の3本をチャートに表示したい場合を考えます。
通常は、異なる設定のMAを3つ表示することになりますが、無料プランではインジケータは2つまでしか表示できない制限があります。
そのため、3本のMAの表示は断念せざるを得えません。
ここでPineスクリプトが役立ちます。
Pineスクリプトで、3本のMAを表示するカスタムインジケータを作成します。
このカスタムインジケータをチャートに適用することで、1つのインジケータで3本のMAを表示することができます。
このようにPineスクリプトを活用することで無料プランの制限を克服し、複数のMAを同時に表示できるようになります。
//@version=5
indicator("Moving Averages", overlay=true)
MA1len = input(10, title="MA1 - Length", group="MA")
MA2len = input(20, title="MA2 - Length", group="MA")
MA3len = input(200, title="MA3 - Length", group="MA")
MA1 = ta.sma(close, MA1len)
MA2 = ta.sma(close, MA2len)
MA3 = ta.sma(close, MA3len)
plot(MA1, title="MA1", color=color.new(color=color.white, transp=0), linewidth=2)
plot(MA2, title="MA2", color=color.new(color=color.blue, transp=0), linewidth=2)
plot(MA3, title="MA3", color=color.new(color=color.red, transp=0), linewidth=2)
コードの詳細はのちほどご説明しますね。
たったこれだけのコードで3つのMAを同時に表示できるようになります
公開されているカスタムインジケータがたくさんある
カスタムインジケータは、自分で作成するだけでなく、世界中のトレーダーや開発者が公開しているものを利用することもできます。
自分が表示したい内容と一致するインジケータがすでに存在すれば、それを採用することも一つの手段です。
他のトレーダーや開発者が作成したカスタムインジケータを活用することで、有用なツールを素早く導入することもできます。
Pineスクリプトの適用方法
それでは、Pineスクリプトでカスタムインジケータを作成して、チャートへ適用する手順をご紹介します。
Pineスクリプトは、パソコンのブラウザで操作することができます。
残念ながらスマホのアプリでは操作できません。(23年11月時点)
新規インジケータの作成
まずは、ご自身のアカウントで TradingView へログインしてください。
画面の下のほうにある「Pineエディタ」をクリックしてください。
「開く」のメニューにある「新規インジケーター」クリックしてください。
表示された画面にコードを書きましょう。
新規インジケータの表示
作ったスクリプトに名前をつけます。
コードを書く画面の上に「名前なしのスクリプト」と表示されているので、クリックしてください。
ポップアップが表示されるので、好きな名前を入力して「保存」をクリックしてください。
「更新をチャートに反映」をクリックしてください。
作成したインジケータがチャートに表示されます。
カスタムインジケータの紹介
Pineスクリプトは、TradingView独自のプログラム言語ですが、他のプログラミング言語と似た特性を持っているため、プログラミングの経験がある方にとっては比較的簡単に扱うことができます。
初めてプログラミングに触れる方でも心配いりません。
Pineスクリプトには、オンラインのドキュメンテーションが充実しており、多くのコミュニティやフォーラムも存在しています。これらのリソースを活用することで、Pineスクリプトの基礎から高度な機能まで理解することができます。
参考までに簡単なカスタムインジケータをご紹介します。
3つのMAを表示する
まずは、3つのMAを表示するインジケータです。
//@version=5
indicator("Moving Averages", overlay=true)
MA1len = input(10, title="MA1 - Length", group="MA")
MA2len = input(20, title="MA2 - Length", group="MA")
MA3len = input(200, title="MA3 - Length", group="MA")
MA1 = ta.sma(close, MA1len)
MA2 = ta.sma(close, MA2len)
MA3 = ta.sma(close, MA3len)
plot(MA1, title="MA1", color=color.new(color=color.white, transp=0), linewidth=2)
plot(MA2, title="MA2", color=color.new(color=color.blue, transp=0), linewidth=2)
plot(MA3, title="MA3", color=color.new(color=color.red, transp=0), linewidth=2)
3つのMAを表示するインジケータのコードの意味を説明しますね。
//@version=5
2023年8月17日よりversion5が推奨されていますので、version5を指定して作成しましょう。
version4でも作成できますが、version5の新しい機能や改善点を利用できないので注意が必要です。
indicator("Moving Averages", overlay=true)
インジケータの宣言で、表示するタイトルを指定します。overlay
はチャートに重ねて表示するかしないかを指定します。
MACDやRSIなどのオシレータを表示させる場合はfalse
にしましょう。
MA1len = input(10, title="MA1 - Length", group="MA")
表示するMAの期間を指定します。input
関数を利用することで外部からパラメータの指定を可能としています。
例では10、20、200の単純移動平均を表示する設定になっています。
MA1 = ta.sma(close, MA1len)
ta.sma
関数は単純移動平均を算出します。close
とMA1len
をパラメータ指定することで「設定した期間」の「終値」をもとに計算されます。
plot(MA1, title="MA1", color=color.new(color=color.white, transp=0), linewidth=2)
plot
関数はチャート上にプロットや図形などを表示します。
計算したMA1
を白色の線で表示します。
色や透明度や線の太さは外部から変更可能です。
1σから3σまでのボリンジャーバンドを表示する
次は1σから3σまで3種類のボリンジャーバンドを表示するインジケータです。
//@version=5
indicator("BB", overlay=true)
length = input.int(20, title="Length", group="Bollinger Band")
basis = ta.sma(close, length)
dev1 = ta.stdev(close, length)
dev2 = 2.0 * dev1
dev3 = 3.0 * dev1
upper1 = basis + dev1
lower1 = basis - dev1
upper2 = basis + dev2
lower2 = basis - dev2
upper3 = basis + dev3
lower3 = basis - dev3
plot(basis, title="BB - Basis", color=color.new(color=#b22833, transp=0), linewidth=2)
bbUpper1 = plot(upper1, title="BB1 - Upper", color=color.new(color=#3179f5, transp=0), linewidth=1)
bbLower1 = plot(lower1, title="BB1 - Lower", color=color.new(color=#3179f5, transp=0), linewidth=1)
bbUpper2 = plot(upper2, title="BB2 - Upper", color=color.new(color=#3179f5, transp=0), linewidth=2)
bbLower2 = plot(lower2, title="BB2 - Lower", color=color.new(color=#3179f5, transp=0), linewidth=2)
bbUpper3 = plot(upper3, title="BB3 - Upper", color=color.new(color=#3179f5, transp=0), linewidth=2)
bbLower3 = plot(lower3, title="BB3 - Lower", color=color.new(color=#3179f5, transp=0), linewidth=2)
fill(bbUpper2, bbUpper3, color=color.new(color=#00bcd4, transp=95), title="BB - Fill")
fill(bbLower2, bbLower3, color=color.new(color=#00bcd4, transp=95), title="BB - Fill")
3つのMAを表示するインジケータには登場しなかった部分を中心に説明しますね。
length = input.int(20, title="Length", group="Bollinger Band")
移動平均線の期間を指定します。input.int
関数にすることで外部からパラメータ指定を可能としています。
dev1 = ta.stdev(close, length)
指定された期間の終値から偏差計算します。
upper1 = basis + dev1
移動平均に算出した偏差を足して、+1σの値を算出します。
2σ、3σの場合も考え方は同じです。
lower1 = basis - dev1
移動平均から算出した偏差を引き、ー1σの値を算出します。
2σ、3σの場合も考え方は同じです。
fill(bbUpper2, bbUpper3, color=color.new(color=#00bcd4, transp=95), title="BB - Fill")
fill
関数を使って+2σと+3σの間の領域を塗りつぶします。transp
で透明度を指定できます。
ー2σとー3σの間の塗りつぶしも同じ考えです。
3つのMAと3σまでのボリンジャーバンドを表示する
最後はご紹介した3つのMAと3σまで表示するボリンジャーバンドを同時に表示しましょう。
//@version=5
indicator("MA BB", overlay=true)
// controll display
MA_enable = input.bool(title="MA", defval=true, group="Enable")
BB_enable = input.bool(title="Bollinger Band", defval=true, group="Enable")
// MA
MA1len = input(10, title="MA1 - Length", group="MA")
MA2len = input(90, title="MA2 - Length", group="MA")
MA3len = input(200, title="MA3 - Length", group="MA")
MA1 = ta.sma(close, MA1len)
MA2 = ta.sma(close, MA2len)
MA3 = ta.sma(close, MA3len)
plot(MA_enable ? MA1 : na, title="MA1", color=color.new(color=color.white, transp=0), linewidth=2)
plot(MA_enable ? MA2 : na, title="MA2", color=color.new(color=color.blue, transp=0), linewidth=2)
plot(MA_enable ? MA3 : na, title="MA3", color=color.new(color=color.red, transp=0), linewidth=2)
// Bollinger Band
length = input.int(20, title="Length", group="Bollinger Band")
basis = ta.sma(close, length)
dev1 = ta.stdev(close, length)
dev2 = 2.0 * dev1
dev3 = 3.0 * dev1
upper1 = basis + dev1
lower1 = basis - dev1
upper2 = basis + dev2
lower2 = basis - dev2
upper3 = basis + dev3
lower3 = basis - dev3
plot(basis, title="BB - Basis", color=color.new(color=#b22833, transp=0), linewidth=2)
bbUpper1 = plot(BB_enable ? upper1 : na, title="BB1 - Upper", color=color.new(color=#3179f5, transp=0), linewidth=1)
bbLower1 = plot(BB_enable ? lower1 : na, title="BB1 - Lower", color=color.new(color=#3179f5, transp=0), linewidth=1)
bbUpper2 = plot(BB_enable ? upper2 : na, title="BB2 - Upper", color=color.new(color=#3179f5, transp=0), linewidth=2)
bbLower2 = plot(BB_enable ? lower2 : na, title="BB2 - Lower", color=color.new(color=#3179f5, transp=0), linewidth=2)
bbUpper3 = plot(BB_enable ? upper3 : na, title="BB3 - Upper", color=color.new(color=#3179f5, transp=0), linewidth=2)
bbLower3 = plot(BB_enable ? lower3 : na, title="BB3 - Lower", color=color.new(color=#3179f5, transp=0), linewidth=2)
fill(bbUpper2, bbUpper3, color=color.new(color=#00bcd4, transp=95), title="BB - Fill")
fill(bbLower2, bbLower3, color=color.new(color=#00bcd4, transp=95), title="BB - Fill")
いままでご紹介した内容と違う点は、表示の有効/無効を選べるようにしました。
MA_enable = input.bool(title="MA", defval=true, group="Enable")
input.bool
関数にすることで外部から有効/無効のチェックを選べるようにしています。
plot(MA_enable ? MA1 : na, title="MA1", color=color.new(color=color.white, transp=0), linewidth=1)
設定したMA_enable
がtrue
であれば、MA1
の移動平均線を表示して、false
であれば、何も表示しません。
ボリンジャーバンドも同じ考え方です。
まとめ
Pineスクリプトの特徴と便利な使い方をご紹介しました。
Pineスクリプトを活用することで無料プランの制限を超えてお好みのインジケータが表示できるようになります。
プログラミングに慣れていない方にとっては、「難しい」「敷居が高い」と感じるかもしれません。
しかし、最初から自分で作るのではなく、「公開されているコードを使ってみる」という方法から始めることで、徐々に使いこなせるようになります。
まずは1つだけでいいので、カスタムインジケータを作成してチャート上に表示させてみましょう。