JForexでのバックテストを高速化できないものか?と考えてRAMDiskを試してみました。
使用したのは、SoftPerfectです。
測定手段は以下の通り。
- JForexのローカルキャッシュパスを変更する(HDD / RamDisk)
ツール>オプション設定>アドバンス - 保存されたキャッシュ・ファイルを削除する をチェックしてOKボタン
- ローカルキャッシュが無い状態でJForexが自動で再起動される
- ストラテジーを実行
キャッシュを1回作成するため(JForexの詳細な動きは不明ですが・・・) - ストラテジーを再実行して結果を保存・比較
使用したストラテジーは同一、パラメータ・期間ももちろん同じです。(1分足×6カ月分のバックテスト)
結果は以下の通りとなりました。
1.ローカルキャッシュをHDDにした場合(SATA3/6GB/7200rpm)
2.ローカルキャッシュをRAMDiskにした場合
・結論
早くはなっているものの、ほんの数%の違いしかでませんでした。
普段のちょっとしたバックテストでは効果はでないものの、年単位等の長期間バックテストを複数回繰り返す等のヘビーな使い方では効果があるのではないかと考えます。
・注意点
自身のローカルキャッシュホルダを見てみるとわかると思いますが、キャッシュサイズはバカにできない大きさになります。
キャッシュのサイズとRAMDiskのサイズ(メモリの空き)を考慮して決定する必要があります。
PS.
ストラテジーを自作するのに、自分で適当に思いついたアイデア/どこかで見かけたアイデア/一般的なアイデアを用いて売買ロジックを作るしかないのですが、それだと ストラテジー作成 > バックテスト > パラメータ変更 > バックテスト となってしまい、所謂カーブフィッティングの域を出ないのではないかと思い始めています。(作成したストラテジーで一番成績がいいものを採用するのもカーブフィッティングな気がしてて・・・)
そこでストラテジーの選択に何かしらの根拠を与えるための手法を色々と探していて、現在は機械学習を導入したいと考えています。
しかし、初心者にはハードル高杉!!!(ただの愚痴)
何か結果がでたら、またUPします。(当面は根拠のないストラテジー作成予定です)