ともさんの株の友

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

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

リソース不足に直面して対応を模索!バージョン0.17!

   


バージョン0.17の概要。

全取引日の全銘柄の単純移動平均を一括で計算して、別のブックに保存する処理を作成。主要な5日、25日、75日、200日の移動平均をワークシートに保存してみた。

すると、200日移動平均を計算している途中で、「リソース不足のため、このタスクを完了することができません。選択するデータを少なくするか、ほかのアプリケーションを終了して再度試してください。」というメッセージが表示されて停止してしまった。

タスクマネージャーを起動して確認すると、物理メモリの使用率はほぼ上限。EXCEL.EXEの使用メモリは1.6GBも使っている。32ビット版Windowsの上限は3.5GBぐらいなので、半分ぐらいを使っている。ワークシートを閉じると使用メモリが減少するので、本当にメモリ不足になっている。メモリが少ないパソコンだと、株価データのワークシートを開くこともできない可能性が高い。

株価データを1指標1シートに全銘柄分、2007年1月~2015年10月までを格納すると、たったの9シートしかメモリ上に読み込めないことが分かった。根本的な解決方法が必要。

このあたりが、32ビット版エクセルの限界なんだろうな。

さて、どうしたものか。ワークシートを分割するしかないが、どのように分割するかで、シミュレーション時の処理速度が変わってくる。

考え方としては、
1.銘柄毎に1つブックを作成する。
2.株価データも含めて、全て1つの指標毎に1つブックを作成する。
3.取引年月日ごとにブックを作成する。
4.そもそも指標を事前に計算して保存することをやめる。
ぐらいしかないかな。

一つのブックに格納するデータ量を、かなり減らさないと実用的にならないので2はダメ。事前に計算して保存することをやめると、肝心の売買シミュレーション時の速度が、かなり低下しそうな気がするので4もダメ。

銘柄毎にブックを作ると、売買シミュレーションを時系列に実行した時の速度がかなり低下しそうだが、銘柄毎のシミュレーションなら、かなり高速に実行できるそう。

逆に年月日毎にブックを作ると、指標を計算して保存しておく処理にかなり時間がかかりそう。だが、時系列に実行した時の速度は、ある程度確保できるような気がする。

株価データを取得する事が目的ではなくて、売買シミュレーションが目的。資金管理も含めたシミュレーションを実行するのであれば、銘柄毎のシミュレーションよりも時系列のシミュレーションの方が重要。

よって、年月日ごとにブックをつくってみることに決定。

また作り直します。

祝日も開発はお休みします。

システムテストの募集は終了しました。

ご応募頂いた皆様、ありがとうございます。ある程度までできて、テスト段階に入ったら、こちらから連絡致します。

 - 開発ブログ


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

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

Message

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

five + 10 =

  おすすめの記事はこちら