【Pine 基礎】変数宣言

[<declaration_mode>] [<type>] <identifier> = <expression> | <structure>

or

<tuple_declaration> = <function_call> | <structure>
  • | :「または」を表す。
  • []:囲まれた部分は 0 回または 1 回出現する。
  • <declaration_mode>:変数の宣言モード。 無指定、var、varip がある。
  • <type>:型の明示。省略できる。
  • <identifier>:変数名。
  • <expression>:リテラル、変数、式、関数呼び出し。
  • <structure>:if 文、for 文、while 文、switch 文。
  • <tuple_declaration>:タプル宣言。角括弧 ([]) で囲まれた変数名のカンマ区切りリスト (例: [ma, upperBand, lowerBand])。

以下はコードはすべて有効な変数宣言の書き方。

BULL_COLOR = color.lime
i = 1
len = input(20, "Length")
float f = 10.5
closeRoundedToTick = math.round_to_mintick(close)
st = ta.supertrend(4, 14)
var barRange = float(na)
var firstBarOpen = open
varip float lastClose = na
[macdLine, signalLine, histLine] = ta.macd(close, 12, 26, 9)
plotColor = if close > open
    color.green
else
    color.red
  • 多くの場合、変数の型はコンパイル時に右辺の値から自動的に推測されるため、型の明示は冗長となる。
  • ただし na は特定の型を持たない値であるため、型の明示が必要。
baseLine0 = na          // compile time error!
float baseLine1 = na    // OK
baseLine2 = float(na)   // OK
  • 関数呼び出しや構造体は複数の値を返すことができる。これらを呼び出し、返される値を格納したい場合は、タプル宣言を使用する。
  • タプル宣言は、カンマで区切られた1つ以上の値の集合を [] で囲んだもの。
[bbMiddle, bbUpper, bbLower] = ta.bb(close, 5, 4)
  • 変数の再代入は、:= 演算子を用いて行われる。
  • 変数が最初に宣言され、初期値が与えられた後にのみ行うことができる。
//@version=5
indicator("", "", true)
sensitivityInput = input.int(2, "Sensitivity", minval = 1, tooltip = "Higher values make color changes less sensitive.")
ma = ta.sma(close, 20)
maUp = ta.rising(ma, sensitivityInput)
maDn = ta.falling(ma, sensitivityInput)
 
// On first bar only, initialize color to gray
var maColor = color.gray
if maUp
    // MA has risen for two bars in a row; make it lime.
    maColor := color.lime
else if maDn
    // MA has fallen for two bars in a row; make it fuchsia.
    maColor := color.fuchsia
 
plot(ma, "MA", maColor, 2)

3 種類のモードがある。

  • 無指定:変数の割り当てと初期化が各バーごとに行われる。
  • var:変数の割り当てと初期化が最初のバーの 1 回だけ行われる。次のバー以降では、新しい値が再割り当てされるまで最後の値が保持される。
  • varip:変数の割り当てと初期化が各バーごとに行われる。ただし、リアルタイムバーの更新時に変数の値はロールバックされず前回の値が保持される。
    ロールバックについては リアルタイムバー上のスクリプト実行 を参照。
コメントを入力:
 

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