【お知らせ】TradingViewのバックテストをプログラミング不要で体験できる新講座作りました。(詳細はクリック)

逆引きPine言語辞典

TradingViewで利用できるプログラミング言語「Pine」の命令や関数をまとめました。

構文

スクリプト宣言

studyインジケーターの宣言と設定
strategyストラテジーの宣言と設定

分岐構文

if
else if
else
条件に応じて処理を分岐する構文
? :三項演算子
iff三項演算子(関数版)

繰り返し構文

for指定回数だけ処理を繰り返す構文

変数用構文

var
:=
値を保持する変数の宣言
[]過去足情報の取得

足情報

価格と出来高

open現在足の始値を取得
high現在足の高値を取得
low現在足の安値を取得
close現在足の終値を取得
volume現在足の出来高を取得
hlc3( 高値 + 安値 + 終値 ) / 3 を計算
hl2( 高値 + 安値 ) / 2 を計算
ohlc4( 始値 + 高値 + 安値 + 終値 ) / 4 を計算

日付と時刻

year現在足または任意のUNIX時間の「年」を取得
month現在足または任意のUNIX時間の「月」を取得
dayofmonth現在足または任意のUNIX時間の「日」を取得
weekofyear現在足または任意のUNIX時間の「週番号」を取得
dayofweek現在足または任意のUNIX時間の「曜日」を取得
hour現在足または任意のUNIX時間の「時」を取得
second現在足または任意のUNIX時間の「秒」を取得
minute現在足または任意のUNIX時間の「分」を取得
time現在足のUNIX時間を取得
time_close現在足がクローズしたUNIX時間を取得
timenow今現在のUNIX時間を取得
timestamp引数で指定された日時のUNIX時間を取得

足番号

bar_index現在足の番号(最初の足からのカウント)
max_bars_back指定された命令や変数の過去データ参照に必要な足の最大数を設定

足の状態

barstate.isfirst現在の足がチャート全体の最初の足かどうか判定
barstate.islast現在の足がチャート全体の最後の足かどうか判定
barstate.ishistory現在の足がヒストリカルデータかどうか判定
barstate.isrealtime現在の足がリアルタイムデータかどうか判定
barstate.isnew現在のスクリプトが足の最初で実行されたかどうか判定
barstate.isconfirmed現在のスクリプトが足の最後で実行されたかどうか判定

演算子

算術演算子

+値と値の足し算(または文字列同士の連結)
値と値の引き算
値と値の割り算
*値と値の掛け算
%値と値の割り算の余り

比較演算子

>AがBより大きいかどうか比較
<AがBより小さいかどうか比較
==AがBと等しいかどうか比較
>=AがB以上かどうか比較
<=AがB以下かどうか比較
!=AがBと等しくないかどうか比較

論理演算子

orA または B
notA が正しくない
andA かつ B

算術計算

符号と桁合わせ

abs絶対値を取得
sign符号を取得
floor整数への切り下げ
ceil整数への切り上げ
round整数への四捨五入

三角関数

sin三角関数「サイン」の計算
cos三角関数「コサイン」の計算
tan三角関数「タンジェント」の計算
asin三角関数「アークサイン」の計算
acos三角関数「アークコサイン」の計算
atan三角関数「アークタンジェント」の計算

指数/対数

sqrt平方根を計算
powべき乗を計算
exp指数関数を計算
log自然対数を計算
log10底と10とした対数を計算

最大/最小

max引数の中で最大の数値を取得
min引数の中で最小の数値を取得

シリーズ計算

合計

sum直近N日の価格合計を計算
cum指定価格シリーズの累計を計算

平均

avg全引数の平均を計算

最高値/最安値

highest直近N日における最高値を取得
highestbars直近N日における最高値を取得
lowest直近N日における最安値を取得
lowestbars直近N日における最安値を取得

変化率

change指定した値について現在とN日前の差を計算
roc指定した値について現在とN日前の変化率(%)を計算

ピボットハイ/ロー

pivotlow直近のピボットロー価格を計算
pivothigh直近のピボットハイ価格を計算

標準偏差と分散

stdev直近N日の標準偏差を計算
variance直近N日の分散を計算

パーセンタイル

percentrank指定した範囲の値において、現在の値が何%の位置にあるかを計算
percentile_linear_interpolation指定した範囲の値におけるNパーセンタイルを計算(最も近いランク間の線形補間)
percentile_nearest_rank指定した範囲の値におけるNパーセンタイルを計算(最も近いランク)

テクニカル指標

移動平均

sma単純移動平均線を計算
ema指数加重移動平均を計算
wma加重移動平均を計算
vwma出来高加重移動平均を計算
swma対称加重移動平均を計算
rma修正移動平均を計算
hmaハル移動平均を計算
vwapVWAPを計算
dev単純移動平均からの偏差を計算

チャネル系

bbボリンジャーバンドを計算
bbwボリンジャーバンド幅を計算
kcケルトナー・チャネルを計算
kcwケルトナー・チャネル幅を計算

オシレーター系

momモメンタムを計算
macdMACDを計算
rsiRSIを計算
stochストキャスティクス%Kを計算
trトゥルー・レンジを計算
atrアベレージ・トゥルー・レンジを計算

サイン表示系

sarパラボリックSARを計算

プロット

基本的なプロット

plotチャートへグラフやサインを描画
hline水平ラインを描画

図形や文字のプロット

plotcharチャート上にUnicode文字を描画
plotshapeチャートに図形(マーク)を描画
plotarrowチャートへ上下の矢印を描画

プロット関連の色設定

barcolorチャート足の色を設定(ボディ部のみ)
bgcolorチャート足の背景色を設定
fillプロットしたライン間を指定色で塗りつぶし

描画オブジェクト

ライン

line.newチャート上にラインを描画
line.delete描画済みラインの削除
line.get_x1ラインの始点におけるx座標を取得
line.get_y1ラインの始点におけるy座標(価格)を取得
line.get_x2ラインの終点におけるx座標を取得
line.get_y2ラインの終点におけるy座標(価格)を取得
line.set_x1ラインの始点におけるx座標を設定
line.set_xy1ラインの始点におけるxy座標を設定
line.set_xy2ラインの終点におけるxy座標を設定
line.set_y1ラインの始点におけるy座標(価格)を設定
line.set_x2ラインの終点におけるx座標を設定
line.set_y2ラインの終点におけるy座標(価格)を設定
line.set_xlocラインのx座標を指定する方法を設定
line.set_styleラインスタイルを設定
line.set_colorラインの色を設定
line.set_widthライン幅を設定
line.set_extendラインの延長方法を設定

ラベル

label.newチャート上にラベルを描画
label.delete描画済みラベルの削除
label.get_xラベル表示位置のx座標を取得
label.get_yラベル表示位置のy座標を取得
label.get_textラベルのテキストを取得
label.set_xラベル表示位置のx座標を設定
label.set_yラインの始点におけるy座標(価格)を設定
label.set_xyラベル表示位置のx座標/y座標を設定
label.set_xlocラベル表示位置のx座標を指定する方法を設定
label.set_ylocラベル表示位置のy座標を指定する方法を設定
label.set_styleラベルのスタイルを設定
label.set_colorラベルの色を設定
label.set_sizeラベルのサイズを設定
label.set_textラベルのテキストを設定
label.set_textcolorラベルの文字色を設定
label.set_textalignラベルのテキストの文字寄せ方法を設定
label.set_tooltipラベルのツールチップテキストを設定

チャート情報

銘柄情報

syminfo系チャートに表示中のシンボルに関する情報を取得

足種情報

timeframe.ismonthly現在のチャート足種が月足かどうか判定
timeframe.isweekly現在のチャート足種が週足かどうか判定
timeframe.isdaily現在のチャート足種が日足かどうか判定
timeframe.isminutes現在のチャート足種が分足かどうか判定
timeframe.isseconds現在のチャート足種が秒足かどうか判定
timeframe.isdwm現在のチャート足種が日足以上(日足/週足/月足)かどうか判定
timeframe.isintraday現在のチャート足種が日中足(分足/秒足などかどうか判定
timeframe.period現在のチャート足種を英数字で表記した文字列を取得
timeframe.multiplier現在のチャート足種における数値部分のみを取得