post Image
FXシステムトレードのプログラムをいくつか作ってみて分かった課題とその解決法について

以下の通りいくつか、システムトレードのプログラムを作ってきましたが、継続的(長期ではなく短中期でも安定して)に勝つには課題があることが分かったので書いておきます。

※コメント欄に画像のリンク張ってたりしてるので、そちらもご覧ください
ディープラーニングでFXのシステムトレーディングをするコードを書いた – Qiita
機械学習を用いたオレオレFXシステムトレーディングプログラムのロジック解説 – Qiita
ディープラーニングでFXのシステムトレーディングをするコードを書いた (2) -RNN/LSTM編- – Qiita
xgboostによる決定木アンサンブル学習でFXのシステムトレードするコードを書いた – Qiita

課題

  • 市場は常に変化しており1つのアルゴでは対応しきれない(ように思えた)
    • 当たり前かもしれないが、機械学習でアルゴを作っても勝てる期間と勝てない期間が出てくる(数カ月とかのスパンで)
    • 市場はざっくり分けても平均に回帰する平均回帰性の強い期間とそうでない期間がある(らしい)。他にも様々な要因について特性が変化している(と思われる)。
    • (すごく賢い機械学習アルゴなら、市場の特性の変化すらカバーできるのかもしれない)

考えられる対応策は3つ(うまくいくかは不明)

  • 機械学習なアルゴであれば、市場の変化に応じて再学習を続けていく
    • バックテストしようとすると計算量が膨大になるので試せていない。この点については、全部一から再学習するのではなく、学習期間のウィンドウをスライドさせて追加学習及び過去の学習内容の忘却ができるようなアルゴリズムがあるとよさげ。ただ、実運用では適当なタイミングでまるっと再学習でもさほど問題にはならないだろう。
  • 複数のアルゴを市場の状況に応じて切り替える
    • 強化学習の一つであるバンディットアルゴリズムで市場に適したアルゴを動的に選択していくようなことができるはず
    • ただし、市場の変化に十分な速度で追従できるのかは不明。
  • グリッドトレーディングのような市場の特性に左右されないストラテジーを採用する

以上、頭の中にあることをメモがてら書いてみました。

追記

続きを書いてみました
http://qiita.com/ryo_grid/items/5f8114c11bd2959ea9a6


『 機械学習 』Article List
Category List

Eye Catch Image
Read More

Androidに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

AWSに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Bitcoinに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

CentOSに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

dockerに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

GitHubに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Goに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Javaに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

JavaScriptに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Laravelに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Pythonに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Rubyに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Scalaに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Swiftに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Unityに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Vue.jsに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Wordpressに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

機械学習に関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。