plotshape、plotchar、plotarrowを用いた図形の描画

From TradingView Wiki
Jump to: navigation, search
Language: English  • 日本語 • Русский


チャートにマークを付けたり、バーをハイライト表示したり、plot を線以外で描画する場合、 'plot' 関数以外の方法があります。もちろん 'plot' を 'style=circles' や 'style=cross' といったスタイルと組み合わせて使えば、同様のタスクを実行することは可能です。しかしそれよりも 'plotshape' や 'plotchar'、'plotarrow' 関数を使うことをお勧めします。

‘plotshape’ 関数

'plotshape' 関数は、バーの上下にアイコン図形を表示するように設計されています。例えば次のスクリプトは、すべての緑色のバーの上に‘X’ を描きます。

study('plotshape example 1', overlay=true)
data = close >= open
plotshape(data, style=shape.xcross)

Plotshape 1.png

最初のパラメーター 'data' には一連の論理値が格納されます。値が true であれば十字('X')が描かれ、false値 や 'na' 値の時は描画されません。'plotshape' の一連の論理値を一連の数値にすることができます。一連の数字を 'plotshape' に適用できます。'0'または 'na'は偽の値とみなされ、他の値は真とみなされます。

パラメータ 'style' の値を変更することで、アイコンの形状を変更することができます。利用可能な style は次の通りです。

Shape Name Shape Shape with text
shape.xcross Plotshape xcross.png Xcross with text.png
shape.cross Plotshape cross.png Cross with text.png
shape.circle Plotshape circle.png Circle with text.png
shape.triangleup Plotshape triangleup.png Triangleup with text.png
shape.triangledown Plotshape triangledown.png Triangledown with text.png
shape.flag Plotshape flag.png Flag with text.png
shape.arrowup Plotshape arrowup.png Arrowup with text.png
shape.arrowdown Plotshape arrowdown.png Arrowdown with text.png
shape.square Plotshape square.png Square with text.png
shape.diamond Plotshape diamond.png Diamond with text.png
shape.labelup Plotshape labelup.png Labelup with text.png
shape.labeldown Plotshape labeldown.png Labeldown with text.png

デフォルトでは 'plotshape' 関数はバーの上にアイコンや図形を描画します。別の場所に図形を描くには、パラメーター 'location' を使用します。例えば次のスクリプトは、緑の矢印 'shape.triangleup' を緑のバーの上に描き、赤い矢印 'shape.triangledown' を赤いバーの下に描きます。

study('plotshape example 2', overlay=true)
data = close >= open
plotshape(data, style=shape.triangleup,
          location=location.abovebar, color=green)
plotshape(not data, style=shape.triangledown,
          location=location.belowbar, color=red)

Plotshape example 2.png

パラメーター 'location' で利用できる値は、

  • location.abovebar — バーの上
  • location.belowbar — バーの下
  • location.top — チャートのトップ
  • location.bottom — チャートのボトム
  • location.absolute — チャート上の任意の指定位置

'location.absolute' は、チャートのバーや端以外の場所に、図形を配置する必要がある時に利用します。'plotshape' 関数の最初のパラメーターの値は、座標 'y' として用いられ、"na" 値だけでなく null値の場合も図形は表示されます。

'plotshape example 2' の例では、色定数を指定できるパラメーター 'color' で、図形の色を設定できることも示しています。

関数 'plot' の 'color' パラメータと同様に、条件付きの計算式でアイコンの色を設定することが可能です。

例:

study('plotshape example 3', overlay=true)
data = close >= open
plotshape(true, style=shape.flag, color=data ? green : red)

Plotshape example 3.png

この例では、関数 'plotshape' の最初のパラメーターは 'true' であり、それはバー毎に図形が表示されることを意味します。色は条件(color=data ? green : red)により設定されます。

‘plotchar’ 関数

'plotchar' と 'plotshape' で異なる主な点はアイコンを割り当てる方法です。plotchar ではインラインパラメーターの 'char' によって設定されます。パラメーター 'char' には、エンコードされた任意の(利用中のフォントでサポートされている)unicode文字を指定できます。

例:

study('plotchar example', overlay=true)
data = close >= open
plotchar(data, char='a')

Plotchar example 1.png

パラメーター 'char' のデフォルト値は、★('BLACK STAR', U+2605)です。任意の文字や数字、様々な記号(例. ❤, ☀, €, ⚑, ❄, ◆, ⬆, ⬇)を利用できます。

「雪の結晶(❄)」の例 :

study('plotchar example', overlay=true)
data = close >= open
plotchar(data, char='❄')

Plotchar example 2.png

'plotshape' 同様に、関数 'plotchar' でできる事は、

  • 定数または算術式での図形の色の設定
  • パラメーター 'location' で図形の位置の設定
  • パラメーター 'title' で表示データの名称を設定
  • パラメーター 'offset' で図形の表示位置を左右にシフトさせる
  • パラメーター 'transp' を使って、図形の透明度の設定
  • パラメーター 'text' で図形の上下に短いテキストを表示する。'\n' で改行可能。

‘plotarrow’ 関数

関数‘plotarrow’を使うと、チャートに上向き、または下向きの矢印を表示できます。矢印の長さは各バーで同じではなく、スクリプトコードにより算出され、計算結果に応じて変わります。

関数 'plotarrow' の最初のパラメーター "series" は、チャートに矢印を配置するために使用されます。ロジックは次の通りです。

  • 現在のバーの series の値が 0 より大きい場合は、上向きの矢印が描画され、矢印の長さは絶対値に比例します。
  • 現在のバーの series の値が 0 より小さい場合は、下向きの矢印が描画され、矢印の長さは絶対値に比例します。
  • series の値が 0 または 'na' の場合、矢印は表示されません。

こちらは関数 'plotarrow' の動作を示す簡単なスクリプトです。

study("plotarrow example", overlay=true)
codiff = close - open
plotarrow(codiff, colorup=teal, colordown=orange, transp=40)

Plotarrow example 1.png

ご覧のように、「終値と始値」の差の絶対値がより大きくなるほど矢印が長くなります。また「終値 - 始値」が 0 より大きい場合は、上矢印がレンダリングされ、それ以外(「終値 - 始値」が 0 より小さい場合)の場合は、下矢印がレンダリングされます。

こちらは別の例です。'plotarrow' を使って、標準スクリプトのインジケータ “Chaikin Oscillator”をオーバーレイとして矢印の形で表示しています。

study("Chaikin Oscillator Arrows", overlay=true)
short = input(3,minval=1), long = input(10,minval=1)
osc = ema(accdist, short) - ema(accdist, long)
plotarrow(osc)

Plotarrow example 2.png

このスクリーンショットは、よりわかりやすくするために、オリジナルの "Chaikin Oscillator" を上記スクリプトと同時に実行したものです。

先ほど述べたように、矢印の高さは、関数 'plotarrow' の最初のパラメータ 'series' の絶対値に比例します。矢印の最大サイズと最小サイズ(ピクセル単位)は、それぞれパラメータ 'minheight' と 'maxheight' によって設定されます。

加えて 'plotarrow' 関数では以下が可能です。

  • パラメーター 'title' で表示データの名称を設定
  • パラメーター 'colorup' で上矢印の色を設定
  • パラメーター 'colordown' で上矢印の色を設定
  • パラメーター 'offset' で矢印の位置を左右にシフト
  • パラメーター 'transp' を使って、矢印の透明度を設定

重要な注意事項として、 'colorup' と 'colordown' は、定数で色指定を行う必要があります。(plot、plotshape、plotcharの様に)色設定に式を使うことはできません。


前の項目: アノテーション関数の概要, 次の項目: カスタムバー、カスタムローソク足, メニューに戻る: Pineスクリプトチュートリアル