エクセル2007を導入して、実質4日が過ぎました。その間、様々な検討を行ってきましたが、エクセル2003との互換性や、実行速度について、だいたい分かってきました。
今日は、これまで確認してきた内容について、主に処理速度面から述べたいと思います。

KFシステムクリエイターにおける最大の律速過程(もっとも処理に時間が掛かる箇所)は、最適化演算(データテーブル演算)です。
これは、おそらく一般的なトレーディングシステムにおいても、同様なのではないかと考えます。

最適化演算は再計算処理の塊であり、逆に言えば、この計算時間を計ることで、トレーディングシステムの処理速度を評価できます。
これは、いわゆるベンチマークテストと同等であると言えます。

今回、これまでの様々なシステムの最適化演算に掛かる時間を、エクセル2003とエクセル2007の場合での比較と合わせて行いました。
ちなみに、評価環境は次のようになっています。なお、評価中はエクセルと常駐ソフト以外は起動していません。

  CPU:Intel(R) CORE2 DUO E6550 @ 2.33GHz
  RAM:2GB
  OS:Windows Xp SP3
  Excel:2003 SP3 & 2007 SP1

評価に用いたトレーディングシステムは、アルプス電気の逆張り1システムで、テスト期間は1993年11月1日~2008年6月4日としました。データテーブルは30行×24列(720セル)です。
なお、他のシステムでも評価しましたが、結果(の傾向)に大差ありませんでした。

まず、従来システムの最適化演算時間ですが、エクセル2003で11分23秒でした。また、5月30日に公開した改定システムの最適化演算時間は、エクセル2003で7分25秒です。
これらをベースに、更なる改定やエクセルのバージョンの違いによって、演算時間がどのように変わるか確認しました。

続いて、名前付きセル範囲を用いた動的グラフ表示とした改定システムの最適化演算時間は、エクセル2003で7分12秒でした。
元のシステムに対して、若干ではありますが高速化が図れています。以下、このシステムを基準に、エクセル2003と2007との比較を行います。

このシステムをエクセル2007で開いた後、そのままエクセル2007形式で保存して、それをエクセル2003で開き、最適化演算時間を計測したところ、6分36秒となりました。
なんと、元のシステムよりも30秒以上速くなっています。

ちなみに、エクセル2003には互換機能パックを適用し、エクセル2007形式のブックを直接開けるようにしています。
なお、エクセル2007形式に変換したブックを、再びエクセル2003形式に変換しても、ほぼ同じ結果が得られます。

この結果にはちょっと驚きましたが、高速化を追求する場合、エクセル2003形式のシステムを一旦エクセル2007形式に変換し、それをエクセル2003形式に再変換するのが有効であることが分かりました。

ただし、エクセル2007形式を2003形式に変換すると、グラフシートの右下に「グラフエリア」と表示されると共に、グラフエリアが破線で囲まれるという問題があります。
これが印刷時に表示されるのかどうかは未確認ですが、まあ、気にしなければ実害はありません。

少しでも高速化を実現したい向きには、この処理速度向上効果は非常に大きいものです。なぜ再変換によって速くなるのかは不明ですが、エクセル2003と2007を両方使用している方は、試してみる価値があるかも知れません。

最後に、エクセル2007における最適化演算時間ですが、エクセル2007形式で7分55秒でした。また、エクセル2003形式のシステムを互換モードで開いて最適化演算を行ったところ、7分52秒というほとんど変わらない結果となりました。

ちなみに、これらはマルチスレッドを有効にした場合ですが、事前検討によって、マルチスレッドを無効にしても、テーブル演算速度はほとんど変わらないことを確認しています。

なお、KFシステムクリエイターは、ブックをエクセル2007形式に変換することで、ほとんどをそのまま使用できますが、一部マクロでは、ブックを生成する際、2003形式の拡張子を用いているため、修正が必要になります。

また、先日のコラムでも述べましたように、エクセル2007では多量のリンク元を変更できないという不具合があり、その処理を内包するマクロは使えません。
現状では、システムセットアップマクロの改定が必要です。

また、システムに銘柄を登録する場合も、データ行を大幅に削除した後、リンク元の変更を行い、その後データ行を元に戻す必要があります。
改定システムでは、あらかじめ最低限のデータ行のみを残した状態で、システムを提供する予定です。

したがって、実際の使用場面では、そのシステムに銘柄登録を行った後、データ行を復元することになります。それについては、改定マクロで対応する予定です。
改定マクロの提供につきましては、今しばらくお待いただきますようお願い申し上げます。