値を上書きする場合
str = "test" // 宣言 str := "foo" // 上書き
nullを指定したい場合
データ型を指定しないとエラーとなる。
int null_value = na
チャート上に表示されている計算値を更新したい場合
var
を指定して変数を定義する
var
を指定しない場合、scriptがローソク足ごとに起動されるため、常にcount値は1になってしまう。
毎回値をリセットしたい場合はもちろんvar
を指定しないようにする。(booleanとか)
var green_bar_count = 0 if close > open green_bar_count := green_bar_count + 1 plot(green_bar_count)
チャート上のローソク足の合計値を取得したい場合
plot(bar_index)
ユーザーから設定から値を入力させる
step
を指定しておくと、上下のボタンで設定した値でインクリメントが可能。
bool_input = input.bool(title="test", defval=false) int_input = input.int(title="int", defval=10, minval=0, maxvalue=40, step=2)
- インジケーターを追加した際に設定値を確認させる
int_input = input.int(title="int", defval=10, confirm=true)
- 価格をセットさせる 時間やタイムフレーム(日足とか)を指定させることも可能
price_input = input.price(title="price", defval=0, confirm=true)
alertを出す
2通りの方法がある
alert()
function
freq_once_per_bar
だとcloseする前にアラートが成立する.
higher_price = close > high[1] lower_price = close < low[1] if higher_price alert("price is higher than previous bar" + str.tostring(close), alert.freq_once_per_bar_close)
alert()
でtickerを取得する場合はsyminfo.ticker
を指定する.
alertcondition()
alert()
のように+で変動するstrを指定できない。指定できるのはconst値のみ。しかしplaceholderが使用可能.
alertcondition(higher_price, "price is higher than previous bar, current price: {{close}}")
EMAのクロスを描画
ema1 = ta.ema(close, 50) ema2 = ta.ema(close, 100) ema_cross_over = ta.crossover(ema1, ema2) ema_cross_under = ta.crossunder(ema1, ema2) plot(ema1, color=color.green) plot(ema2, color=color.red) bgcolor(ema_cross_over ? color.green : na) bgcolor(ema_cross_under ? color.red : na)