1

TradingView (tradingview.com) で pine スクリプトを使用しているときに、チャートの上部近くに「インデックス 540 で深さが不足しています」という赤いテキストが表示され、スクリプトが実行されませんでした。pine スクリプトを初めて使用したので、それが何を意味するのかよくわかりませんでした。

この問題はやや不可解で、Google で検索するのが難しいため、ここで見つけた回答を投稿します。うまくいけば、それは誰かに役立つでしょう。

4

1 に答える 1

2

この問題に関する詳細な記事で答えを見つけました。stackoverflow は link-rot を好まないので、要点を説明するのに十分な量をここにコピーします。

基本的に、TradingView はスクリプトが必要とする履歴データの量を把握できません。そのため、スクリプトの編成を変更して支援するか、max_bars_backパラメータをstudy()orstrategy()呼び出しに渡して、スクリプトが必要とするバーの数を手動で入力する必要があります。

例: 200 バーを超える SMA を作成します。したがって、ここでは 200 を渡す必要がstrategy("example", max_bars_back=200)あります。そのため、分析するデータの量に応じて、値を大きくする必要がある場合があります。

実際、すべての TradingView インジケーターおよび戦略スクリプトは、計算に履歴データを使用します。使用するデータの量は、計算前にスクリプトが「待機」する時間に影響します。20 バーの高値をプロットするインジケーターには、20 バーの価格データが必要です。また、9 バー SMA を取引する戦略では、注文を送信する前に 9 価格バーが必要です。

TradingView は、スクリプトが必要とする価格バーの数を見積もるのに非常に優れており、十分なデータが得られるまで計算を保留します。しかし、良い見積もりでも間違っている場合があります。その場合、TradingView は「インデックスで深度が不足しています」というエラー メッセージをトリガーします。

[...]

「インデックスの深度が不足しています」というエラー メッセージは、抽象的に聞こえるため、威圧的な場合があります。ただし、エラーを修正するための手順は 3 つだけです。

  1. Pine エディターで、「インデックスで深度不足」エラーをトリガーするインジケーターまたは戦略スクリプトを開きます。
    1. コードを調べて、スクリプトが計算に使用する多くの履歴バーのアイデアを取得します。また、入力オプションが持つことができる値の範囲も考慮してください。
    2. 次に、スクリプトの study() または strategy() 関数に max_bars_back 引数を追加します。その引数の値を、スクリプトが計算で使用するバーの数の見積もりに設定します。
      • study() または strategy() 関数に max_bars_back 引数を既に追加しましたが、それでも「インデックスで深度不足」エラーが発生しましたか? 次に max_bars_back の値を増やし、スクリプトを保存して再試行します。

補足:「max_bars_back」という名前は、最初は不適切な名前のように聞こえましたが、使用している指標の中で「最大」の数であるため、このように呼ばれていると今では考えています。したがって、15 日間の sma()、50 日間の sma()、および 200 日間の sma() がある場合、すべての計算で必要な「最大」バーは 200 になります。

于 2018-08-18T21:30:34.547 に答える