Excelでシステムを開発するメリット・デメリット

システムのアイディアを形にしやすい、という大きなメリットがExcelにはあります。

メリット

アイディアを数式にしやすい

システムのアイディアを形にしやすい、という大きなメリットがExcelにあります。

有効なシステムにたどり着くまでには、数多くのアイディアを検証することになります。そのためには、思いついたアイディアを数式に落とし込んでいく作業をそのたび毎に繰り返すことになります。

アイディアを検証可能な数式にするのに、プログラムやシステムトレードソフト専用のスクリプトを使う方法もあります。もちろん、これも良い方法ですが、やはり、Excel上で数式を構築する方が、柔軟かつ容易であると考えます。

例えば、Excel 2010の関数の数は400を越えます。
また、関数で参照している範囲が視覚化されるため、理解が容易です。

例:
MAX関数を利用して、3つの数値から最大値を求める

20120821fig3.png

20120821fig4.png

参照している範囲が視覚化されます。

プログラムやスクリプトでの開発では、Excel程に関数が揃っていることはまずありません。また、関数での参照範囲は視覚化されません。

VB.NETのプログラムで同じことをするプログラムは次の通り。

Dim longs As New List(Of Long)(New Long() {4294967296L, 466855135L, 81125L})
Dim max As Long = longs.Max()

Enumerable.Max Method

極めて複雑な条件も検証可能

例えば、日本株のLongの条件として、

  • USD/JPYの移動平均が下落傾向にある
  • 225先物の当日始値より現在の終値が小さい

のように、為替や225先物のデータを利用したシステムなど、柔軟でかつ複雑なシステムをExcelでは実現できます。

自然とExcelのエキスパートになる

Excelでシステムを開発していると、自然とExcelのエキスパートになります。他のビジネスでExcelを使うことがあるなら、おおいにその知識と経験とが役にたつことでしょう。

デメリット

データベースとしての利用は苦手

Excelは表計算ソフトです。計算・分析をするためのソフトです。データベースとしての利用は、データベース専用のソフトの方が上です。例えば、住所録のようなデータをExcelで管理するよりは、AccessやFileMakerのようなデータベースソフトでデータを管理する方が容易です。

住所録程度なら小型のデータですので、Excelでも管理しきれますが、膨大なデータを扱おうとすると、Excel単体では難しくなってきます。その解決方法として一般的なのは、データ自体は外部に保存し、Excelではそのデータを読み込んで計算・分析を行う、という方法をとります。

M.tradingでの解決方法

M.trading システム開発では、

  1. 各銘柄の四本値はCSVファイルとして外部に保存する。
  2. システム開発(.NET)で各銘柄の四本値のCSVファイルをExcelに読み込ませる。
  3. システム開発(Excel)では、計算を行う。
  4. 算出された結果をシステム開発(.NET)で読み込み、統合した結果を出力する。

こうした方法を取ることで、Excelの計算・分析という最も得意とする利点を利用しつつ、膨大なデータを取り扱うことも容易にします。

計算速度

膨大なデータに対する計算速度は遅めです。ただし、PCの処理能力に依存する事柄なら、今後のPCの処理能力の向上で改善されていくでしょう。