アノテーション関数の概要

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

アノテーション 'study'

プログラム構造で述べたように、(インジケーター (study)の)各スクリプトでは、アノテーション関数 study の呼び出しを必ずひとつ含む必要があります。

次の様に記述します。

study(title, shorttitle, overlay, precision)

study関数は、インジケーターの特性を全体として決定します。title はインジケーターの名前を設定する引数で省略できません。この名前はインジケーターのダイアログで使用されます。

shorttitle はインジケーターの短縮名です。チャート上やデータ詳細に表示されます。shorttitleを指定しない場合は、title 値が使われます。

overlay は論理型の引数です。'true' であれば、インジケーターはメインチャート上に表示されます。'false' の場合は、チャートが分割され表示されます。デフォルト値は 'false' です。

precision は、インジケーターの価格スケール軸上の、小数点以下の桁数です。正の整数値でなければなりません。Precisionで 0 には、大きな数値をフォーマットするための特別なルールがあります(例. '5183' は '5K' とフォーマットされます。例えば出来高)。 デフォルト値は 4 です。

チャート出力 'plot'

アノテーション plot は必須の引数 series でデータ系列の値を受け取り、チャートにラインを描きます。

こちらは基本的な呼び出し方です。

plot(close)

またPineでは自動的に型変換が行われるため、系列型の値ではなく、任意の数値を送信することができます。

例:

plot(125.2)

この場合値の125.2は、すべてのバーで同じ数値となるデータ系列の値に自動的に変換されます。つまり水平線が描画されます。

アノテーション plot には複数のオプション引数があります。それらは特にチャートの表示スタイルを設定します。stylecolortitlelinewidthtransparency など。これらの引数の詳細な解説は こちらに記載されています。

パラメーター color は、受け取った値により異なる効果を表すことができます。例えば、'red' の様なカラー定数を設定した場合、チャート全体が赤色でプロットされます。

plot(close, color=red)

Output of charts plot 1.png

しかし、引数 color は、データ系列のカラー値を式で受け取ることもできます。この場合レンダリング時にチャートの色を変えることができます。

例:

c = close >= open ? lime : red
plot(close, color = c)

Output of charts plot 2.png

続いて、関数 plot の引数 offset です。offset は、チャートに描画される時のシフト(移動)を指定します(負の値はチャートを左にシフト、正の値は右にシフト)。

例:

study("My Script 12", overlay=true)
plot(close, color=red, offset=-5)
plot(close, color=lime, offset=5)

Output of charts plot 3.png

スクリーンショットでわかる通り、'red' のデータ系列は左にシフトされています('red' の 'offset' 引数の値が負の値であるため)。また 'lime' の系列は右にシフトされています('offset' 引数が正の値)。

脚注: Pineにはビルトイン関数 offset があります。こちらもデータ系列の値をシフトさせる事が可能です。ただしビルトイン関数 offset では右へのシフトのみ可能であり、また現在のバーの "out of range" の値は破棄されます。ビルトイン関数 'offset' の利点は、その結果を他の式で利用して複雑な計算を行えることです。一方関数 'plot' の引数 'offset' の場合、シフトはただ単に plot の視覚効果です。

バーの色系列 'barcolor'

アノテーション関数 'barcolor' は、特定の条件が満たされているかどうかに応じて、バーの色を指定することができます。次のスクリプトはインサイドバー(はらみ足)とアウトサイドバー(包み足)を別の色にレンダリングする例です。

study("barcolor example", overlay=true)
isUp() => close > open
isDown() => close <= open
isOutsideUp() => high > high[1] and low < low[1] and isUp()
isOutsideDown() => high > high[1] and low < low[1] and isDown()
isInside() => high < high[1] and low > low[1]
barcolor(isInside() ? yellow : isOutsideUp() ? aqua : isOutsideDown() ? purple : na)

Barcoloring a series barcolor 1.png

上の例で確認できるように、na値が渡された場合、色はデフォルトのチャート色のままです。

背景色 'bgcolor'

barcolor関数と同様に、bgcolor関数は背景色を変更します。bgcolor関数は、色を式で計算することができ、オプション引数の transp は透明度を指定します。透明度は1から100で指定し、デフォルトは90です。

こちらのスクリプトは、EURUSD 30分足でトレードセッションに色付けする例です。

study("bgcolor example", overlay=true)
timeinrange(res, sess) => time(res, sess) != 0
premarket = #0050FF
regular = #0000FF
postmarket = #5000FF
notrading = na
sessioncolor = timeinrange("30", "0400-0930") ? premarket : timeinrange("30", "0930-1600") ? regular : timeinrange("30", "1600-2000") ? postmarket : notrading
bgcolor(sessioncolor, transp=75)

Background coloring bgcolor 1.png

インジケータへの入力 'input'

アノテーション 'input' を使うとインジケーターコード内の変数に入力値を渡すことができます。スクリプトのソースコードを変更するよりもより簡単にインジケーターの入力値を変更できます。インジケータの設定ページで、それぞれの input 変数に対して設定のウィジェットが生成されます。input の title を短いテキスト文字列で 指定することもできます。タイトルは入力項目の目的を説明するためのもので、数値入力には入力可能な最小値と最大値を指定できます。

Pineには以下の input タイプがあります。

  • bool,
  • integer,
  • float,
  • string,
  • symbol,
  • resolution,
  • session,
  • source.

次の例は、Pineコードで、それぞれの input タイプをどのように作成するか、またそれはウィジェットでどの様に表示されるかを示しています。

b = input(title="On/Off", type=bool, defval=true)
plot(b ? open : na)

Inputs of indicator 1.png


i = input(title="Offset", type=integer, defval=7, minval=-10, maxval=10)
plot(offset(close, i))

Inputs of indicator 2.png


f = input(title="Angle", type=float, defval=-0.5, minval=-3.14, maxval=3.14, step=0.2)
plot(sin(f) > 0 ? close : open)

Inputs of indicator 3.png


sym = input(title="Symbol", type=symbol, defval="SPY")
res = input(title="Resolution", type=resolution, defval="60")
plot(close, color=red)
plot(security(sym, res, close), color=green)

Inputs of indicator 4.png

入力ウィジェット 'Symbol' では、ティッカーの最初のシンボルが入力された時、自動的に ビルトインシンボル 'search' が有効になり銘柄検索が利用できます。


s = input(title="Session", type=session, defval="24x7")
plot(time(period, s))

Inputs of indicator 5.png


src = input(title="Source", type=source, defval=close)
ma = sma(src, 9)
plot(ma)

Inputs of indicator 6.png


インジケーターの入力に関してのより詳細な情報は、Pineリファレンスをご覧ください。

価格レベル水平線 'hline'

アノテーション関数‘hline’指定された固定価格水準に水平線をレンダリングします。

例:

study(title="Chaikin Oscillator", shorttitle="Chaikin Osc")
short = input(3,minval=1), long = input(10,minval=1)
osc = ema(accdist, short) - ema(accdist, long)
plot(osc, color=red)
hline(0, title="Zero", color=gray, linestyle=dashed)

Price levels hline 1.png

'hline' の最初の引数は必ず数字である必要があります。データ系列を値に利用することはできません。'hline' でいくつかの水平線を作成し、関数 'fill' でその間の背景を半透明に塗りつぶすことができます。

オブジェクト間の背景塗りつぶし 'fill'

アノテーション関数 'fill' を使うと、2つのデータ系列や(hline で作成された)2つの水平線の間の背景を塗りつぶす事ができます。次の例では、実際にどのように動作するかを示しています。

study("fill Example")
p1 = plot(sin(high))
p2 = plot(cos(low))
p3 = plot(sin(close))
fill(p1, p3, color=red)
fill(p2, p3, color=blue)
h1 = hline(0)
h2 = hline(1.0)
h3 = hline(0.5)
h4 = hline(1.5)
fill(h1, h2, color=yellow)
fill(h3, h4, color=lime)

Filling in the background between objects with fill 1.png

脚注: 'plot' と 'hline' 間の塗りつぶしはできません。しかし、'plot' を利用して 'hline' の様な同等の水平線を描画し、それを塗りつぶすことは可能です。

例:

study("Fill example 2")
src = close, len = 10
ma = sma(src, len)
osc = 100 * (ma - src) / ma
p = plot(osc)
// NOTE: fill(p, hline(0)) wouldn't work, instead use this:
fill(p, plot(0))

Filling in the background between objects with fill 2.png

'color=red' や 'color=#ff001a' といった定数を使って塗りつぶしの色を設定することができます。また 'color = close >= open ? green : red' の様な複雑な式で指定することもできます。

例:

//@version=2
study(title="Colored fill")
line1=sma(close,5)
line2=sma(close,20)
p1 = plot(line1)
p2 = plot(line2)
fill(p1, p2, color = line1>line2 ? green : red)

Filling in the background between objects with fill 3.png

アラート条件 'alertcondition'

Pineインジケーターで、アノテーション関数 alertcondition を使うとカスタムアラート条件を作成することができます。

次の様に記述します。

alertcondition(condition, title, message)

'condition' は論理値でアラート(条件の判定)に用いられます。有効な値は、'true'、'false'です。'true' の意味はアラート条件を満たしたという事で、アラートはトリガーされます。'false' はアラート条件を満たしていないという事で、アラートは発動されません。'condition' は必須の引数です。

'title' はオプション引数でアラート条件の名前を設定します。

'message' はオプション引数でアラート実行時に表示されるテキストメッセージを指定します。

こちらは、アラート条件を作成した例です。

//@version=2
study("Example of alertcondition")
src = input(close)
ma_1 = sma(src, 20)
ma_2 = sma(src, 10)
c = cross(ma_1, ma_2)
alertcondition(c, title='Red crosses blue', message='Red and blue have crossed!')
plot(ma_1, color=red)
plot(ma_2, color=blue)

この関数はアラート作成画面で利用できるアラート条件を作成します。alertcondition はコードから自動的にアラートを発動するわけではないという点に注意してください。alertcondition はアラート作成画面のカスタム条件を作成するだけです。アラートは引き続き手動で設定する必要があります。また、Pineコードで作成したカスタム条件でトリガーされたアラートはチャートに表示されません。

1つのスクリプトに複数の alertcondition が含まれることがあります。

alertcondtion の条件でアラートを作成するには、
1. alertcontidion が書かれた Pineコード(インジケーター(study))を現在のチャートに適用します。
2. アラートの作成ダイアログを開きます。
3. アラートのメインの条件としてPineコードを選択し、コードで作成したアラート条件を選びます。

Alertcondition 1.png

アラートが発動されると、メッセージを確認できます。

Alertcondition 2.png


前の項目: 非標準チャートタイプのデータ, 次の項目: plotshape、plotchar、plotarrowを用いた図形の描画, メニューに戻る: Pineスクリプトチュートリアル