バックテストの高速化

公開日時 作成者 dummytopコメントする

JForexでのバックテストを高速化できないものか?と考えてRAMDiskを試してみました。

使用したのは、SoftPerfectです。

測定手段は以下の通り。

  1. JForexのローカルキャッシュパスを変更する(HDD / RamDisk)
    ツール>オプション設定>アドバンス
  2. 保存されたキャッシュ・ファイルを削除する をチェックしてOKボタン
  3. ローカルキャッシュが無い状態でJForexが自動で再起動される
  4. ストラテジーを実行
    キャッシュを1回作成するため(JForexの詳細な動きは不明ですが・・・)
  5. ストラテジーを再実行して結果を保存・比較

使用したストラテジーは同一、パラメータ・期間ももちろん同じです。(1分足×6カ月分のバックテスト)

結果は以下の通りとなりました。

1.ローカルキャッシュをHDDにした場合(SATA3/6GB/7200rpm)
hdd22.ローカルキャッシュをRAMDiskにした場合
ram2・結論
早くはなっているものの、ほんの数%の違いしかでませんでした。
普段のちょっとしたバックテストでは効果はでないものの、年単位等の長期間バックテストを複数回繰り返す等のヘビーな使い方では効果があるのではないかと考えます。

・注意点
自身のローカルキャッシュホルダを見てみるとわかると思いますが、キャッシュサイズはバカにできない大きさになります。
キャッシュのサイズとRAMDiskのサイズ(メモリの空き)を考慮して決定する必要があります。

PS.
ストラテジーを自作するのに、自分で適当に思いついたアイデア/どこかで見かけたアイデア/一般的なアイデアを用いて売買ロジックを作るしかないのですが、それだと ストラテジー作成 > バックテスト > パラメータ変更 > バックテスト となってしまい、所謂カーブフィッティングの域を出ないのではないかと思い始めています。(作成したストラテジーで一番成績がいいものを採用するのもカーブフィッティングな気がしてて・・・)
そこでストラテジーの選択に何かしらの根拠を与えるための手法を色々と探していて、現在は機械学習を導入したいと考えています。
しかし、初心者にはハードル高杉!!!(ただの愚痴)
何か結果がでたら、またUPします。(当面は根拠のないストラテジー作成予定です)

 

コメントを残す

メールアドレスが公開されることはありません。