システムトレード

[EasyLanguage]行列(配列)の使い方(array関数)

EasyLanguage 行列(配列)の使い方 (array関数)

EasyLanguageでプログラムを書いているときに、行列(または配列)で表したい!というときはないでしょうか。

パンダはし
パンダはし
値が更新されていく毎に、その値を格納しておきたいときとかね。変数指定すると大量になるからね

そんなときに役に立つのが、Array関数です。

単に、inputsや、varsで設定しているように、Arrayとして変数を設定すればOKです。

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

変数の宣言の仕方

変数の宣言の仕方としては、以下を参考にしてください。

Array : ArrayName[Colum,Raw] (0);

 

項目 解説
Array 行列を宣言する関数(Arraysも可)
ArrayName 変数名なので、なんでも可
Colum 行数を指定
Row 列数を指定

また、最後の(0)は初期値です。

ちなみに、

Array : int ArrayName[Colum,Raw] (0);

 

のように、「int」を付けると、正数型の行列が宣言できます。他にも、「double」など指定できます。

その他注意点として、EasyLanguageでの行列は、0行0列を持っています。すなわち、arraynameとしても、3行2列ではなく、4行3列の配列ができます。

ゼロ行ゼロ列はありますが、そこには値をいれてはいけません(公式サイトより)

ダイナミックアレイ(動的配列)

先程は行列数を指定しましたが、行列数を後で追加できるタイプの行列設定(動的配列)も可能です。

設定の仕方は以下のように、行列数を指定せずに変数宣言します。

Array : DynArrayName[] (0);

 

ダイナミックアレイの変数宣言は、通常の行列と同じように、Arrayを用います。

DynArrayNameは設定する名前なので、なんでも構いません(英数字のみ、大文字と小文字の区別なし)。

[ ]内を空欄にすることで、ダイナミックアレイの宣言ができます。

ダイナミックアレイは、その行に数字をいれる前に、行数の大きさを設定する必要があります。

Array_SetMaxIndex(DynArrayName, 5) ;

 

これで、行列数は最大で5ですよとなります。

ですが、先ほどと同様に、ゼロ行があるので、配列自体は6行1列の行列です。

なお、ダイナミックアレイは、1列しか設定できません。

ダイナミックアレイは○行1列の配列のみに対応してます。

値を代入する場合は、以下を参考にしてください。

DynArrayName = 5 ;

 

これで、4行目に5を代入できます。

ゼロ行があるので、3行目ではなく4行目になる点を注意してください。

パンダはし
パンダはし
ちなみに、ダイナミックだから、自動で行列数を増やしてくれたりするのかと思ったら違ったよ

ダイナミックアレイの便利な使い方

ダイナミックアレイを用いると、いくつか便利な使い方ができます。

例えば、合計値を計算したり、大きい順に並び替えることもできます。

行列の合計値を計算する

value1 = Array_Sum(DynArrayName,2,5);

これで、要素2から5までの合計値を計算できます。

行を並び替える

行を昇順または降順で並び替えることができます。

Value1 = Array_sort(DynArrayName,2,5,True);

これで、要素2から5を昇順(True)で並び替えることができます。

降順にしたいときは、Falseとしてください。

なお、この関数には戻り値があり、各戻り値は以下を示します。

  • 0…並び替えが正常に完了
  • -1…下記以外のエラー
  • -2…行列の名前が無効
  • -3…指定した要素が、行列の範囲外
  • -4…TrueかFalseの設定ミス(入力ミスなど)

ここで注意してもらいたいのが、Value1にソートされた行列が入るわけではないということです。

あくまで、Value1には、戻り値である-4~0の値しか入りません。

したがって、行列をソートすると、並び替わった行列に上書きされて、もとの順番の行列はなくなります。

パンダはし
パンダはし
戻り値は、エラーの発見のために使えるよ。

まとめ

行列(配列)の設定の仕方を紹介しました。

複数のデータを格納したいときなどに非常に便利です。

さらに、ダイナミックアレイ(動的配列)を用いれば、その行列内の合計値や並び替えができます。

これを使うことで、プログラムの幅が広がるかと思います。

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

システムトレードをEasyLanguageにより自作する方法のまとめ記事はこちら!

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

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

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

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

COMMENT

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