ともさんの株の友

エクセルを使った日本株のシステムトレードソフトを開発しています。

この投稿は1年以上前に公開されました。
現在では状況や内容が変わっている可能性があります。
ご注意下さい。m(_ _)m

ワークシート関数で移動平均を計算するように修正!バージョン0.16!

   


バージョン0.16について。

株価データを別のブックに保存するように変更したので、移動平均などの指標の計算結果も更に別のブックに保存するように修正。

移動平均計算プログラムも修正。銘柄毎、日付毎に計算していたが、処理速度の面で全く使い物にならなかったので、銘柄毎に過去から現在までを一括して計算するように修正。

エクセルVBAプログラムで速度を向上させるためには、複数のセルに書き込む場合は配列に書き込んでおいて一括で修正すると、かなり早くなる。読み込みだけの場合であっても、読み込む範囲が決まっているのであれば、配列へ格納して、その配列を処理した方がかなり早い。

さらに表示を更新しないようにして、ある程度の速度は出るようになったが、まだまだ遅い。

まだ、とても実用にはならない。

取引がなかった日の株価は、始値も高値も安値も直前に取引があった日の「終値」に設定するみたい。取引がなかった場合、前営業日の終値に修正する処理を追加した。この処理を一番古い日付から現在に向かって実行すると、空のセルがなくなる。

これで合計を求める処理などに、ワークシート関数が使えるようになった。

試しにワークシート関数を使って移動平均を計算させたら、もの凄く早い。なんとか実用的に使えるレベルになってきた。ワークシート関数はもっと色んな所で使えそう。

少し実験したところでは、全てのワークシート関数の処理が配列を直接処理する場合と比べて早くなるわけではなさそう。FINDは使いづらいし、MATCHはエラー処理が必要になるので処理速度は低下する。

配列を直接処理する方法とワークシート関数は使い分けが必要になりそう。

さらに、主要な指標を全て一括して事前に計算しておけば、なんとかなりそうな気がしてきた。

日曜日は開発をお休みします。

 - 開発ブログ


株式システムトレード ブログランキングへ

にほんブログ村
  • このエントリーをはてなブックマークに追加

Comment

  1. 名無し より:

    今更なぜエクセルで? 処理が遅すぎるし、マクロはウインドウズしかほぼ動かないし・・・。 データが多くてファイルサイズ大きいと開くだけでものすごい時間かかるし・・・。 最低でもデータほぞんとデータ処理は自前サーバでやらさんと。 設計する時点で破綻が目に見えてるのにご苦労なこった。 まぁ需要ないと思うけど頑張ってね〜

    • TomoSan より:

      仰る通りかもしれませんね。 エクセルではデータ量の制限が厳しいのはよく分かっているつもりです。 私自身はマイクロソフトアクセスで自作したシステムを使っています。 破綻する可能性もあると思いますが、もし上手くいったら、システムトレードの裾野を広げることになると思います。 批判であっても、まだ始めたばかりのサイトにコメントを頂けることは嬉しいです。 またぜひコメントをお願い致します。

Message

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

12 + 17 =

  おすすめの記事はこちら