システムトレード

[EasyLanguage]「インデックスが無効のコールスタック」というエラーが出るときの対処例(PriceSeriesProvider)

EasyLanguage 無効のコールスタックというエラーの解決法

EasyLanguageで以下のようなエラーが出て困った経験はないでしょうか。

エラー「コレクションの要素にアクセスするために使用するインデックスが無効コールスタック」

140.PriceSeriesProvide エラー

これは、オブジェクト型で記述しているときにありがちですが、「チャート上で見てる内容と、EasyLanguageで設定している内容が噛み合ってないですよ」という意味です。

エラーが出るのはいろんな可能性が考えられますが、例えば、以下の理由が考えられます。

PriceSereisProvideのプロパティで、足の設定範囲を2年間としているが、チャートに表示している期間は2年以上となっている場合、エラーが出る。

パンダはし
パンダはし
ちなみに僕の場合、チャートの表示を2年ピッタリでもダメだったよ。。

本記事では、上記のエラーの対処法について詳しく紹介します。

ただ単に、PriceSeriesProviderの設定を変えればいいだけだから簡単です。

エラーが出る例

141.PriceSeriesProvide エラー

まずは、エラーが出る例を詳しく書きます。

当ブログの過去記事、[EasyLanguage]例題でわかる!システムトレードのオブジェクト型記述に慣れようなどを元に、PriceSeriesProviderを設定していると、チャートの表示期間は2年と設定されています。

したがって、上の画像のように、チャートに表示させている期間を、2年以上としていると、エラーが出てしまいます。

パンダはし
パンダはし
EasyLanguageで設定している株価参照の範囲と、チャート上で見ている範囲が合ってないからエラーが出るんだね

タートル 投資手法 バックテスト
この結果を見てもまだシステムトレードしないのか【タートル流投資手法の驚くべきバックテスト結果】タートルが取ったとされる投資手法をプログラム化して、バックテストを行いました。その結果としては、かなりのリターンが期待できるものでした。トレンドフォローの投資手法は、まだまだ現役であるようです。...

エラーの解決策

そうとわかれば、エラーの解決策は簡単です。

  1. チャートに表示させている期間を短くする
  2. PriceSeriesProviderで設定している範囲を長くする

上記の①か②のどちらかをすれば良いのです。

①チャートに表示させている期間を短くする

こちらは、説明せずともわかると思いますが、チャート上で右クリックして、銘柄コードの設定から、表示範囲を変更してください。

パンダはし
パンダはし
チャートの表示期間の変え方を詳しく知りたいかたは、過去記事[EasyLanguageでシステムトレード]作成したストラテジーでバックテストをしてみようをチェックしてみてね

②PriceSeriesProviderの設定を変える

142.PriceSeriesProvide エラー

皆さんが知りたいのはこっちじゃないかと思います。

EasyLanguageを開いて、エラーが出てしまうインジケータを表示します。

PriceSeriesProviderのプロパティで、Rangeというところがあると思います(画像も参照してください)。

そこの設定を、例えば、チャート上に3年表示したければ、「Type」に「Years」を選択して、「Years」に「3」と入れれば解決です。

たったこれだけでエラーが消えると思います。

上の方でも書きましたが、PriceSeriesProviderの設定を2年としていて、チャートの表示も2年としても、エラーが出てしまうことがありました。

表示のさせ方によってはそうなってしまうかもしれませんので、PriceSeriesProviderの設定は、表示したいチャートよりも少し余裕を見ておくと良いかもしれません。

EasyLanguageによるシステムトレードまとめ記事はこちら

Nocchi_nochilog(のっち)
少額投資をこよなく愛する1児のパパ&サラリーマン。
お小遣い制でも負けずに投資をしています。

知るだけで暮らしが豊かになる知識を発信中!
若いうちから投資することの重要性を伝えるべく、ブログの記事を更新しています。

特にインスタグラムでは、1日1分で自然とお金の知識が身につくような情報を発信しています。
ぜひ合わせてご覧ください!

下のアイコンから飛べます!
\ Follow me /

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です