web-dev-qa-db-ja.com

Pine ScriptでTradingViewの「継続なしの行末」エラーが発生しました

このコードをパインスクリプトで使用していますが、"不一致の入力 'a'が '行の継続なしの行末'を予期しています)"エラーが発生します。

この機能コードでそのエラーを修正するにはどうすればよいですか?

val(s) =>
     if s != s[1] 
     a = s-s[1]
     if s = s[1]
     a
    a
5
Bassel Alahmad

「継続なしの行末」エラー は、TradingView Pineコードにインデントの間違いがあると発生します。

コードを見て(そしてそれをStackOverflowに正しくコピーしたと仮定して)、確かにインデントの問題があります。

val(s) =>
     if s != s[1] 
     a = s-s[1]
     if s = s[1]
     a
    a

このコードには2つのインデントの問題があります。

  • 関数の最初の4行は5つのスペース(または1つのタブとスペース)でインデントされています。ただし、関数のコード行は、TradingView Pineで4つのスペース(または1つのタブ)でインデントする必要があります。
  • Ifステートメントの後に続く2行はインデントされていません。ただし、4つのスペース(または1つのタブ)またはその倍数である必要があります。

これらの2つのポイントを修正すると、コードは次のようになります。

val(s) =>
    if s != s[1] 
        a = s-s[1]
    if s == s[1]
        a
    a

(ここでは、同等にするために=代入演算子も==演算子に置き換えたことに注意してください。)


上記のコードは、a変数が原因で '未宣言の識別子'エラー もトリガーします:使用されますbefore関数内で宣言されています。あなたもそれを修正したいのか、投稿した関数コードがより大きな関数の一部にすぎないのかはわかりませんでした。

しかし、その「宣言されていない識別子」エラーも修正したい場合は、関数コードを次のように変更します。

val(s) =>
    a = 0.0
    if s != s[1] 
        a := s-s[1]
    if s == s[1]
        a
    a
4
Jura