EasyLanguageで以下のようなエラーが出て困った経験はないでしょうか。
エラー「コレクションの要素にアクセスするために使用するインデックスが無効コールスタック」

これは、オブジェクト型で記述しているときにありがちですが、「チャート上で見てる内容と、EasyLanguageで設定している内容が噛み合ってないですよ」という意味です。
エラーが出るのはいろんな可能性が考えられますが、例えば、以下の理由が考えられます。
PriceSereisProvideのプロパティで、足の設定範囲を2年間としているが、チャートに表示している期間は2年以上となっている場合、エラーが出る。
本記事では、上記のエラーの対処法について詳しく紹介します。
ただ単に、PriceSeriesProviderの設定を変えればいいだけだから簡単です。
目次
エラーが出る例

まずは、エラーが出る例を詳しく書きます。
当ブログの過去記事、[EasyLanguage]例題でわかる!システムトレードのオブジェクト型記述に慣れようなどを元に、PriceSeriesProviderを設定していると、チャートの表示期間は2年と設定されています。
したがって、上の画像のように、チャートに表示させている期間を、2年以上としていると、エラーが出てしまいます。

エラーの解決策
そうとわかれば、エラーの解決策は簡単です。
- チャートに表示させている期間を短くする
- PriceSeriesProviderで設定している範囲を長くする
上記の①か②のどちらかをすれば良いのです。
①チャートに表示させている期間を短くする
こちらは、説明せずともわかると思いますが、チャート上で右クリックして、銘柄コードの設定から、表示範囲を変更してください。
②PriceSeriesProviderの設定を変える

皆さんが知りたいのはこっちじゃないかと思います。
EasyLanguageを開いて、エラーが出てしまうインジケータを表示します。
PriceSeriesProviderのプロパティで、Rangeというところがあると思います(画像も参照してください)。
そこの設定を、例えば、チャート上に3年表示したければ、「Type」に「Years」を選択して、「Years」に「3」と入れれば解決です。
たったこれだけでエラーが消えると思います。
上の方でも書きましたが、PriceSeriesProviderの設定を2年としていて、チャートの表示も2年としても、エラーが出てしまうことがありました。
表示のさせ方によってはそうなってしまうかもしれませんので、PriceSeriesProviderの設定は、表示したいチャートよりも少し余裕を見ておくと良いかもしれません。