広告 便利ツール

Pineスクリプトで解き放つ!無料プランの限界を超えるインジケータ表示法

2023年11月18日

pinescript-top

悩みごと

  • TradingViewの無料プランでも3つ以上のインジケータを表示する方法はない?
  • 有料プランになればインジケータ以外にも便利に使えるけど、インジケータだけを増やしたい

TradingViewのPineスクリプトを使えば解決できます!

Pineスクリプトを使って表示させたいインジケータをまとめて1つのインジケータとして表示できるので、無料プラインでも3つ以上のインジケータの表示も夢じゃない!

簡単なコードもご紹介するので、プログラムが苦手な方でもコピー&ペーストで表示できますよ。

この記事でご紹介する内容

  • TradingViewの無料アカウントの利点
  • Pineスクリプトが無料プランでどれだけ有用か
  • Pineスクリプトを適用方法
  • カスタムインジケータの紹介

記事を読む前に 【応援ボタン】 を押してもらえるとすっごくうれしいです。
励みになります。

↓↓↓これです

FX・サラリーマン投資家ランキング
FX・サラリーマン投資家ランキング

TradingViewの無料アカウントの利点

多くのトレーダーが使っているTradingView。

AboChe

無料プランだからってあなどれません

TradingViewって?

TradingViewは、オンラインのチャート分析ツールおよびトレーディングプラットフォームです。

株式、外国為替(Forex)、暗号通貨、商品など、単一の証券会社が提供する情報では網羅しきれない多様な市場の価格データを視覚的に分析することができます。

TradingViewは、設定内容が複数のデバイスで同期される特長があるのでトレーダーに非常に人気です。

ブラウザで設定したインジケータや水平線がスマホのアプリでも同じようにみれるって便利ですよね。

無料プランでも強力なツール

TradingViewには、無料プランと複数の有料プランがあります。

もちろん有料プランのほうが使える機能は増えますが、おおまかに無料プランと有料プランのちがいをまとめました。

有料プランの方がより便利に利用できますが、無料プランでも十分な機能が備わっており、とっても強力なツールですよ。

有料プランになると・・・

  • 表示可能なインジケータが増える (2つ)
  • データ更新が高速になる (数秒毎の更新)
  • アラートの利用可能数が増える (1つ)
  • ウォッチリストの利用可能数が増える (1つ)
  • ウォッチリストで管理できるシンボル数が増える (30個)
  • ヒストリカルバーが2倍以上になる (5,000本)
  • サポート問い合わせができる (サポートなし)

※括弧内は無料プランの場合
引用元:https://jp.tradingview.com/gopro/#compare

Pineスクリプトが無料プランでどれだけ有用か

Pineスクリプトは、TradingView独自のプログラム言語です。

AboChe

シンプルな構造なので初心者の方でも心配いりませんよ

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)

コードの詳細はのちほどご説明しますね。

AboChe

たったこれだけのコードで3つのMAを同時に表示できるようになります

公開されているカスタムインジケータがたくさんある

カスタムインジケータは、自分で作成するだけでなく、世界中のトレーダーや開発者が公開しているものを利用することもできます。

自分が表示したい内容と一致するインジケータがすでに存在すれば、それを採用することも一つの手段です。

他のトレーダーや開発者が作成したカスタムインジケータを活用することで、有用なツールを素早く導入することもできます。

Pineスクリプトの適用方法

それでは、Pineスクリプトでカスタムインジケータを作成して、チャートへ適用する手順をご紹介します。

Pineスクリプトは、パソコンのブラウザで操作することができます。

残念ながらスマホのアプリでは操作できません。(23年11月時点)

新規インジケータの作成

まずは、ご自身のアカウントで TradingView へログインしてください。

画面の下のほうにある「Pineエディタ」をクリックしてください。

pine-editor
「Pineエディタ」をクリックしてください

「開く」のメニューにある「新規インジケーター」クリックしてください。

pine-newscript
「新規インジケーター」をクリックしてください

表示された画面にコードを書きましょう。

新規インジケータの表示

作ったスクリプトに名前をつけます。

コードを書く画面の上に「名前なしのスクリプト」と表示されているので、クリックしてください。

ポップアップが表示されるので、好きな名前を入力して「保存」をクリックしてください。

pine-named
スクリプト名を入力して保存してください

「更新をチャートに反映」をクリックしてください。

pine-apply
「更新をチャートに反映」をクリックしてください。

作成したインジケータがチャートに表示されます。

カスタムインジケータの紹介

Pineスクリプトは、TradingView独自のプログラム言語ですが、他のプログラミング言語と似た特性を持っているため、プログラミングの経験がある方にとっては比較的簡単に扱うことができます。

初めてプログラミングに触れる方でも心配いりません。

Pineスクリプトには、オンラインのドキュメンテーションが充実しており、多くのコミュニティやフォーラムも存在しています。これらのリソースを活用することで、Pineスクリプトの基礎から高度な機能まで理解することができます。

参考までに簡単なカスタムインジケータをご紹介します。

3つのMAを表示する

まずは、3つのMAを表示するインジケータです。

pine-3MA
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関数は単純移動平均を算出します。
closeMA1lenをパラメータ指定することで「設定した期間」の「終値」をもとに計算されます。

plot(MA1, title="MA1", color=color.new(color=color.white, transp=0), linewidth=2)
plot関数はチャート上にプロットや図形などを表示します。
計算したMA1を白色の線で表示します。
色や透明度や線の太さは外部から変更可能です。

1σから3σまでのボリンジャーバンドを表示する

次は1σから3σまで3種類のボリンジャーバンドを表示するインジケータです。

pine-3σBB
1σから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σまで表示するボリンジャーバンドを同時に表示しましょう。

pine-3MA+3σBB
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_enabletrueであれば、MA1の移動平均線を表示して、falseであれば、何も表示しません。
ボリンジャーバンドも同じ考え方です。

まとめ

Pineスクリプトの特徴と便利な使い方をご紹介しました。

Pineスクリプトを活用することで無料プランの制限を超えてお好みのインジケータが表示できるようになります。

プログラミングに慣れていない方にとっては、「難しい」「敷居が高い」と感じるかもしれません。

しかし、最初から自分で作るのではなく、「公開されているコードを使ってみる」という方法から始めることで、徐々に使いこなせるようになります。

まずは1つだけでいいので、カスタムインジケータを作成してチャート上に表示させてみましょう。

この記事、参考になったな

って方だけでいいので、下記の 【応援ボタン】 を押してもらえると嬉しいです。

励みになります♪

↓↓↓これです

FX・サラリーマン投資家ランキング
FX・サラリーマン投資家ランキング

    -便利ツール