TradingView (tradingview.com) で pine スクリプトを使用しているときに、チャートの上部近くに「インデックス 540 で深さが不足しています」という赤いテキストが表示され、スクリプトが実行されませんでした。pine スクリプトを初めて使用したので、それが何を意味するのかよくわかりませんでした。
この問題はやや不可解で、Google で検索するのが難しいため、ここで見つけた回答を投稿します。うまくいけば、それは誰かに役立つでしょう。
TradingView (tradingview.com) で pine スクリプトを使用しているときに、チャートの上部近くに「インデックス 540 で深さが不足しています」という赤いテキストが表示され、スクリプトが実行されませんでした。pine スクリプトを初めて使用したので、それが何を意味するのかよくわかりませんでした。
この問題はやや不可解で、Google で検索するのが難しいため、ここで見つけた回答を投稿します。うまくいけば、それは誰かに役立つでしょう。
この問題に関する詳細な記事で答えを見つけました。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 つだけです。
- Pine エディターで、「インデックスで深度不足」エラーをトリガーするインジケーターまたは戦略スクリプトを開きます。
- コードを調べて、スクリプトが計算に使用する多くの履歴バーのアイデアを取得します。また、入力オプションが持つことができる値の範囲も考慮してください。
- 次に、スクリプトの study() または strategy() 関数に max_bars_back 引数を追加します。その引数の値を、スクリプトが計算で使用するバーの数の見積もりに設定します。
- study() または strategy() 関数に max_bars_back 引数を既に追加しましたが、それでも「インデックスで深度不足」エラーが発生しましたか? 次に max_bars_back の値を増やし、スクリプトを保存して再試行します。
補足:「max_bars_back」という名前は、最初は不適切な名前のように聞こえましたが、使用している指標の中で「最大」の数であるため、このように呼ばれていると今では考えています。したがって、15 日間の sma()、50 日間の sma()、および 200 日間の sma() がある場合、すべての計算で必要な「最大」バーは 200 になります。