【Pine 基礎】スクリプト構造

Pine スクリプトの一般的な構造は下記の通り。
おおきく 3 つに区分できる。

<バージョン>
<宣言文>
<コード>

下のコードは、スクリプトが Pine スクリプトのどのバージョンで書かれているかをコンパイラに伝える。(コンパイラアノテーション

//@version=5
  • バージョンは 1 から 5 まである。
  • 省略した場合は 1 になる。マニュアルでは最新バージョンの使用を強く推奨している。
  • コードのどこに記述しても構わないが、先頭行に記述することが推奨されている。
  • 最新バージョンにおける重要な変更は リリースノート に掲載される。

スクリプトは必ず一つの宣言文を含まなければならない。宣言文は 3 種類ある。

  • indicator()
  • strategy()
  • library()

indicator() を宣言した例

//@version=5
indicator("My Script")
plot(close)

宣言文の役割:

  • スクリプトの種類を特定し、スクリプト内で許可されるコンテンツや、スクリプトの使用方法、実行方法を決定する。
  • スクリプトの主要なプロパティを設定する。
    • スクリプトの名前
    • チャートに追加したときの表示位置
    • 表示する値の精度と形式
    • ランタイムを制御する設定値 (チャートに表示する描画オブジェクトの最大数など) など

各スクリプトには、それぞれ異なる要件がある。

  • インジケーター:少なくとも 1 つのチャート上に出力を生成する関数呼び出し(plot()plotshape()barcolor()line.new() など)が含まれていなければならない。
  • ストラテジー:少なくとも 1 つの strategy.*() 関数の呼び出し(strategy.entry() など)が含まれていなければならない。
  • ライブラリ:少なくとも 1 つのエクスポート関数またはユーザー定義型が含まれていなければならない。

スクリプトのアルゴリズムを書くところ

  • 変数の宣言
  • 変数の再割り当て
  • 関数の宣言
  • 組み込み関数呼び出し
  • ユーザー定義関数呼び出し
  • ライブラリー関数呼び出し
  • if、for、while、switch、型構造。

ダブルスラッシュ(//)はコメント。
コメントは行のどこから始めても構わない。

//@version=5
indicator("")
// これはコメントです。
a = close // これもコメントです。
plot(a)

なお、Pine エディタは ctrl + / でコメントアウト、コメントアウト解除ができる。

長い行は折り返しできる。折り返しは 4 の倍数以外の数のスペースを挿入して行う。
(4 の倍数のスペースはローカルスコープのインデントとして認識される)

a = open + high + low + close

折り返して記述

a = open +
     high +
         low +
             close

長い関数呼び出しは以下のようにできる。

plot(ta.correlation(src, ovr, length),
   color = color.new(color.purple, 40),
   style = plot.style_area,
   trackprice = true)

ユーザー定義関数宣言内のステートメントも折り返しできる。

updown(s) =>
    isEqual = s == s[1]
    isGrowing = s > s[1]
    ud = 0
    ud := isEqual ?
         0 :
         isGrowing ?
             (nz(ud[1]) <= 0 ?
                   1 :
                 nz(ud[1])+1) :
             (nz(ud[1]) >= 0 ?
                     -1 :
                     nz(ud[1])-1)

コンパイラアノテーションは、スクリプトに特別な指示を出すコメント。

  • //@version= は、コンパイラが使用する Pine スクリプトのバージョンを指定する。
  • //@description は、library() 宣言文を使用するスクリプトの custom description を設定する。
  • //@function//@param//@returns は、関数宣言の上に置くと、ユーザー定義関数、そのパラメーター、その戻り値の custom description を追加する。
  • //@type//@field は、型宣言の上に置くと、ユーザー定義型とそのフィールドの custom description を追加する。
  • //@variable は、変数の宣言の上に置くと、その変数の custom description を追加する。
  • //@strategy_alert_message は、アラート作成ダイアログの “Message “フィールドの初期値を設定する。
  • //#region//#endregion は折りたたみ可能なコード領域を作成する。
コメントを入力:
 

  • tradingview/pine/script_structure.txt
  • 最終更新: 2023/08/25 12:58
  • by 管理人