plotでグラフを表示していくと、plot系列の上限(64系列)を超えるというエラーに困らされることがあります。
でも、スクリプトを見返しても64個もplot系の関数を使っていなくて、
あれ?どうして?そんなにplotしてないのに?
ってなったことはありませんか?
plot系の関数には以下のものがあります。
plot系の関数
系列が1のもの:
系列が4のもの:
系列が0のもの:
通常は、この系列数を数えていって、64を超えなければ問題にはなりませんが、実は数え方はこの限りではないことに注意が必要です。
系列数の増加
plot系の関数では、色をconst colorで指定しないと、系列数が増えてしまいます。
plot(close)
plot(close,color=color.red)
c=color.red
plot(close,color=color.red)
c1=input.color(color.red,'color')
plot(close,color=c1)
const color を言い換えると、コンパイル時に値が確定できる(定数)もので、これをあとから変更できるように書いたら系列数が増えるという仕様となっています。
例えば、移動平均線が右肩上がりかどうかで色を分ける以下のようなスクリプトでも2系列分消費しますが、これは2色の線を引いているのでギリギリ納得感があります。
要は設定や条件で色変えようとすると、input.color()でさえ、plot系列が増えてしまうのです。
sma20=ta.sma(close,20)
plot(sma20,color=sma20[1]<sma20?color.green:color.red)
続く