Skip to content

iuraiura/raijin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 

Repository files navigation

複雑系事象の機械学習による現実的な解法に関する考察について(raijin)

複雑系と思われる外国為替値を解析し、推定することを試みてみた。証券会社から提供される「ローソク」と呼ばれるデータ群を解析し、そのデータを「教師あり機械学習」でシミュレーションし、推定を試みた。シミュレーションにはマルコフ連鎖モンテカルロ法(MCMC)をし使用した。

概ね、良好な結果が得られたと思われるが、評価方法が不明などの課題もある。今後の手法改善とともに、定性的かつ定量的分析を研究する必要がある。

(学生時代通学路に東北最大の雷神山古墳あった。そこからネーミング)

(現在プログラミング、評価中。作者は利益を出している。ただし他者が利益を出せるかは不明。自己責任でお願いしたい)


マルコフ連鎖モンテカルロ法(MCMC)応用為替取引プログラム(OANDA向け)

「教師あり機械学習」であるマルコフ連鎖モンテカルロ法(MCMC)を使ってみた。ベイズ推論の一つ。 マルコフ連鎖モンテカルロ法(MCMC)の詳細についてはこちらを参照のこと(https://goo.gl/soV8YQ )。あくまでもローソクデータから解析したもので、IBM ワトソンのようにビッグデータによる自動学習は行わない。通常のパーソナルコンピュータで行える範囲で処理する。パラメーター変更により、数年分のデータ処理も可能 (TIMES定数にて変更可能)。標準では500日間とさせていただいた。処理速度の関係からである。 REST API を使用可能であったため OANDA 社を使った、当方は OANDA 社関係者でない。OANDA 社からの推奨も受けていない。こちらも別段推奨しているわけではない。もし、良いサービスがあればそちらにも対応することも考慮したい。

  • OANDA 社 http://goo.gl/AbnopD

  • OANDA REST API http://goo.gl/cimMkw こちらが新しい http://goo.gl/VEKdlz

  • 損益について当方は全く責任がない。デモ環境で十分評価して自己責任で使用すること

  • 頻繁な更新を考えている投資方針など随時更新する。バックアップは必ず行っておくこと

  • プログラミング途中。評価途中であることをご理解いただきたい。評価には一年程度は必要かもしれない

  • 当方、双極性障害者。御気をつけて!病気療養中

  • クオンツじゃない。それに近いことをやっているかもしれないが、

  • 株や為替、経済用語は理解不能。胡散臭いと感じている

  • 一応、経済学者の書かれた時系列関連本なども読んでみた。シミュレーションをしてみると、全く合致しない。インターネットやコンピュータ取引が中心になりフラクタルになっている模様。よって、既存の経済学モデルを諦めマルコフ連鎖モンテカルロ法(MCMC)を推論エンジンとした。学習期間の問題はあるがそこそこいい確率分布を示しているようだ。

julia言語によるプログラミングについて

  • 最近開発された言語であること
  • 実行時間が高速であること。起動時間は遅いが、、、
  • Lint があり実行前に構文等のチェックができること。日本語対応がイマイチ
  • Mamba パッケージで MCMC が実現可能
  • 並列分散処理などにも対応可能
  • 次期 Fortran を目指されている模様。Fortran の科学技術関係ソフトウェアは膨大。このプログラムは推定が中心機能だ。よってこの言語を選んだ
  • 将来どういう展開になるかは全く不明。アルゴリズムと Web サービスなど提供していただければ、移行は簡単だと思う。あまり気にしていない。REST API による取引業者が増えることは期待したい。言語の衰退よりサービスの停止が怖い

現行の問題点

  • OANDA REST API のコマンド投入時間制限(一秒間に2コマンドの制限がある) OANDA REST API の投入排他制御なども考える必要がある もっと高速に対応してほしい > OANDA さん。 結果的にレイテンシーはあまり重要でなない。速いに越したことはないが、
  • MCMC が低速なこと(今後高速化を考えねば) とりあえず MCMC 解析中に OANDA REST API コマンドを実行している モデリング及びサンプラリングの改善は必要。現在はパッケージのサンプルをそのままコピペしているだけ。二次空間モデルなので、時系列モデルを意識する必要があるかも。もちろん、数学的解釈の改善も必要。
  • Mac OS X、GNU/Linux では動作確認はしたが、Windows 環境がないため Windows で動作するかは不明。たぶん大丈夫と思われる
  • シミュレーション結果や推定値の評価方法が不明。今後研究していく必要がある

ご使用対象者

  • 簡単なプログラミングができる方。定数、変数ぐらいの違いがわかる方
  • コンピューターの運用ができる方。(こちらは運用サポートなどやるつもりはない)
  • 安定したコンピュターネットワークが維持できる方
  • 自己責任が取れる方
  • 自己コントロールができる方
  • 理数系思考ができる方
  • 論理的思考ができる方
  • 節度ある社会行動・思考ができる方
  • 忍耐力がある方。場合によれば長期間の取引が予想されるため
  • 節度あるコンピュターネットワークコミュニケーションができる方
  • julia 言語実行環境が用意できる方

ご使用していただきたくない方

  • 反社会勢力者および関係者は絶対御断り
  • 自己責任を取れない方
  • コンピューター運用ができない方
  • 苦情が多い方(こちらは双極性障害者。ストレスが一番悪い)
  • GITHUB が使えない方
  • 論理的思考ができない方
  • 数学的思考ができない方。(中学生程度の数学知識は必要)
  • 賭け事で前後見境がつかない方
  • キレやすい方
  • 日本語によるコミュニケーションができない方
  • 福の神絶対主義者。このプログラムには福の神は付属しておりません
  • 定規絶対主義者。コンピューターが手軽に買える時代じゃ意味がない
  • 相場師。これは数学応用のプログラム。ヤマカン頼りの方には適しません
  • ブログなどでデタラメな情報を流す方
  • 本プログラム作成者に過去不快な思いをさせた方
  • 我が家に迷惑をかけているまたはかける可能性がある方

実行前の作業

  • OANDA 社側作業(デモアカウント作成)
  • OANDA デモ口座の開設
    • 最初から本番口座を開設する必要なし
    • デモ口座は無限期間使用可能らしい
  • API 専用アカウント作成。メイン口座とは別に作っておいた方が良い
  • アクセストークン作成

julia 実行環境構築

  • julia 言語環境構築 http://goo.gl/pIywe8
  • julia 使用パッケージのインストール(v0.4.xx)
    • julia 起動後
      • Pkg.add("Mamba")
      • Pkg.add("HTTPClient")
      • Pkg.add("JSON")
      • Pkg.add("Zlib")

本プログラムダウンロード

git clone https://github.com/iuraiura/raijin.git

個人実行環境設定(プログラムファイル変更)

  • 使用サーバー(デモ環境、実行環境では違うサーバーを使用している) [SERVER]

  • サブ口座(API アカウント)名設定 [API_NAME](*)

  • アクセストークン設定 [TOKEN](*)

  • 使用通貨ペア設定 [CURRECY]

    • 取引通貨ペア名称、最小変動幅(呼値)ケタ数、日本円での大体の金額(取引数の計算のため。プログラムで処理するのも良いが、処理が遅い)、使用可不可の順
  • 為替変動に対応させるため金額のプール設定 [POOL]

  • 投入金額再評価回数。この数値で余剰証拠金を分割する [UNITS_TIME]

    (*)は必須変更事項。OANDA 社の登録情報
    

起動方法

julia には何種類か起動方法がある
  julia -p プロセッサコア数 当プログラムファイル名
詳細は、julia 言語のマニュアルなど参考のこと、

連絡方法

  • GITHUB にて申し受ける。改善、提案大歓迎。損失等の苦情一切拒否
  • 当方現在双極性障害。鬱状態時には応答遅れる。ご了承のこと

オープンソースプログラムにした理由

  • この時代、自分だけで使っていても面白くない。このプログラムも恩恵に浴している。オープンソースプログラムで提供しない理由がない
  • 自分が稼ぎたい。他者の意見など折り込みプログラムを磨き上げたい
  • 使用者に儲けてほしい。どんどん使って参考になるご意見を伺いたい
  • 証券会社に情報開示をしたい。証券会社も儲けてほしい。取引数が増せば証券会社が儲けることにもなる。こちらの手の内を見せることになる。何か不都合になれば、技術的かつ論理的なやり取りが可能となる。もちろん、取引停止になればこのプログラムはメンテナンスできない。その証券会社の対応部分は削除する
  • この取り組みが一般的に評価されることを期待したい

TODO

  • シミュレーションに注力して、取引や稼ぎ方をあまり意識していなかった。ここに力を注ぎたい
  • シミュレーションの高速化。モデル及びサンプリングの最適化を行いたい
  • プログラムの安定化
  • コードが汚い。お掃除を、

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages