半年ぶりの更新です。
去年後半くらいにトレード条件に新しい要素を取り入れてから、好調が続いています。
1月からの月毎の成績は4勝2敗とまずまずです。
どんな要素を加えたかは、もう少し様子をみてから、このブログに書こうと思います。
今回は自作ツールの使い勝手を良くしようというお話です。
新しいトレード条件を実トレードで使う前に、
手作りのシミュレーションツールで過去10年分のデータを使って検証しています。
でも、この10年分のデータの管理がけっこう面倒なんです。
10年分のデータを1ファイルで管理しようよすると、マクロ処理が重くなってとても使いものになりません。
なので、1年毎に1ファイルで管理しているのですが、
当然マクロを10回実行しないと10年間のシミュレーションはできません。
そこで同じOpenOfficeコンポーネントのBaseを使うことを思い立ちました。
BaseはOpenOfficeのデータベース機能です。
Calcよりも多くのデータを扱うことができます。
いつもは5分足データをつかって検証をおこなっているのですが、
将来的にもっと細かなシミュレーションも考えているので、
1分足データをデータベース化することにしました。
1分足を束ねることで5分足や1時間足など長いスパンのデータをつくることができるので、
今の5分足での検証にも対応できます。
テーブル仕様は以下の通りです。
PKey
テキスト(固定) プライマリキー
CurrencyPair
テキスト(固定) 通貨ペア
Span
整数 時間間隔
Unit
テキスト 時間単位
OpenDate
テキスト(固定) 日付
OpenTime
テキスト(固定) 時間
OpenPrice
実数 始値
HightPrice
実数 高値
LowPrice
実数 安値
ClosePrice
実数 終値
通貨ペア、時間間隔、時間単位、日付、時間 の5項目でプライマリキーにしたいところですが、
Baseではプライマリキーをひとつしか持てないので、
上記5項目をつなげたものをPKeyという項目に設定します。
さて、1分足データは改めて入手する必要がありますが、
残念ながら7年分しか手に入れることができませんでした。
それでも1通貨ペアあたり、250万件のデータになります。
この大量のデータをBaseに突っ込むわけですが、ここで問題発生。
数十万件データを登録したところで、エラーが発生してしまったのです。
理由はすぐに解りました。
Baseが標準的に使用するHSQLDBは、
データをメモリ内で管理するためメモリ容量によって扱えるデータ量が決まります。
今回、その限界が数十万件だったということらしいです。
さて、どうするか。。。