逆引き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と等しくないかどうか比較 |
論理演算子
| or | A または B |
| not | A が正しくない |
| and | A かつ 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 | ハル移動平均を計算 |
| vwap | VWAPを計算 |
| dev | 単純移動平均からの偏差を計算 |
チャネル系
| bb | ボリンジャーバンドを計算 |
| bbw | ボリンジャーバンド幅を計算 |
| kc | ケルトナー・チャネルを計算 |
| kcw | ケルトナー・チャネル幅を計算 |
オシレーター系
| mom | モメンタムを計算 |
| macd | MACDを計算 |
| rsi | RSIを計算 |
| 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 | 現在のチャート足種における数値部分のみを取得 |