FX予測の機械学習の開発とトレードの環境
こんばんは、新米データサイエンティスト(@algon_fx)です。「初めての方へ」のページでも、私がなぜブログを運営しているのかを記載していますが、その理由の一つとして「トレーダー」や「機械学習エンジニア」の諸先輩がたとの交流があります。
非常に有難いことに、お問い合わせフォームやTwitterのダイレクトメールから、諸先輩からのご連絡を頂く事も増えてきました!本当に嬉しいのですが、、最初の10ターンくらいのやりとりが…毎回同じなんです。(笑)
決して、そのやりとりが面倒という訳ではないのですが、おそらく機械学習を使ってFX予測をしている人であれば、最初に気になるポイントは偏るのかなと。
という事で、まとめます。私よくが聞かれる「質問」や「機械学習の開発環境」と「トレードの環境」を(笑)
トレードで実際に利益は出ているのか?
出ていません。プロジェクト進捗表でも随時更新をしていますが、現在の段階は様々な特徴量を検証したり、訓練の時間軸を検証したりと、どちらかと言えば「勉強期間中」の状態です。原則として、今はOANDAのプロコースで100〜10,000通貨単位で試しています。
トレードの環境は?
OANDAのプロコースを今はメインに使っています。なんでOANDA使ってるの?と言われることが多いのですが、私がOANDAをこよなく愛している主な理由は以下の通りです。(参照:OANDAのプロコース)
(その1)APIの使用条件が優しい
まぁ、一番の理由はこれですよね。そもそも日本国内でFXのAPIが使える業者は、私が知っている限りでOANDAと日産証券の2社しかありません。日産証券でAPIを使用するには300万円入金条件ですが、OANDAはたったの25万円でAPIを使わせてくれます。ちなみに初回入金は25万円以上で、口座残高が25万円を割ってしまうとAPIの使用できなくなります。YJFXもAPIを提供していると噂されていますが、こちらは…条件すらわかりません笑。
(その2)1通貨から取引ができる
これは実際にAPIで取引をしてから思ったのですが、1通貨から注文が流せるのは非常に嬉しいです。やはりお金を扱っているので、自分で書いたコードに取引をさせる時は、それなりの緊張感が漂います。どうしよう、いきなり大損したらって。なので、1通貨からAPIで注文流せるのは助かります。とりあえず小さい注文で試せます。
(その3)APIがすぐに使える
え?それ普通でしょ?って思うかも知れませんが、これも個人的にはポイントが高いです。口座開設はものの数日で完了して、API規約に同意したら、すぐにAPIトークンが取得できます。正直、早く触ってみたいとそわそわしていたので…このスピード対応は本当に嬉しかった。
当然、APIが使いやすいなんてのは、ここに明記をする必要がないかと。今の所、必要な昨日は全て揃っていますし、何よりドキュメントが豊富で助かってます。これからFX機械学習始めるなら、OANDAがオススメです。
OANDAはデモ口座?本番口座?
これもよく聞かれるのですが、私は「OANDA プロコース」というのを使っています。理由としては、APIの使用条件が25万円口座残高だからなのですが、それ以外にも一つ皆さんに訴えたいことが・・・。
海外ではFXCMや他の業者がFXのAPIを提供しており、選択肢があります。また、米OANDAも当然APIを提供しているのですが、日本では使えない最新バージョンのOANDA API v20を提供しています。
対して日本では…OANDAが快く提供をしているのみで…他の業者は法人向けや大口トレーダーのみで、気軽にAPIが使える環境ではありません。かなり以前の話ですが、クリック証券も以前はFX APIを提供していましたが、打ち切っています。
なにが言いたいかというと、OANDAが日本口座向けのAPIを打ち切られると困る人がたくさんいるのです!(主に私です)
なので、APIの継続の為にも…本当に微力なのは承知ですが私はOANDAの本番口座を使っている訳です。また、嬉しいことに本番口座でも1通貨から取引ができるのも大きな理由です。検証をするコードは、正直、かなり怖いので、通貨を100通貨とかにしてリスクヘッジをかけています。
また、デモ口座だとメンタル的に所詮デモだしと思って、真剣にモデル構築に取り組まないというデメリットも。検証時の取引は通貨単位が小さいですが、それでも実際に動くのはお金。心情的にもしっかり検証をするものです。(ガラスのメンタルです、はい)
皆さんも、OANDAのAPIの継続のためにも、本番口座を開けましょう(笑)
機械学習はどのような環境構築していますか?
現在は作業に応じて異なりますが、3つの環境を主に使っています。
環境その1 – Mac Book Pro
一番使っている環境です。APIの動作確認や、データの処理のコーディングしたり、特徴量の処理を書いたりなどなど、基本的にコンピューティングパワーが必要ない作業はほとんどをローカルでやってます。CPUは Intel Core i5でRAMは8GBです。
環境その2 – Google Colab
Google Colab(グーグル・コラボ)という、Googleが提供しているオンラインでJupyter Notebookが使えるサービスもよく使います。操作方法が若干異なっていたり、少し思い処理を回すとエラーになったりと、不便な部分はあるのですが、ブラウザのみで実行できるのが嬉しいです。また、ノートブックはGoogleドライブ上に保存されるので、他のPCからでも同じ環境で作業が行えます。これが超絶便利です。また無料でGPUが使えると一時期話題になりましたが…正直、これは微妙です。GPUが活躍しような重い処理を投げると、エラーが起きてイラっとします(笑)
環境その3 – AWS
言わずと知れたAmazonのクラウドサービスです。複数のサーバーを立ててやっていますが、主な使い道としては①ローカルじゃ処理できない膨大なデータを計算するとき②OANDAのAPIを使って自動売買をするときです。特にここ最近は1分足や5分足などの短い足を使った予測モデルを検証していたので、そうなるとデータの数が余裕で100万、500万と膨大になります。ローカルではこんな重い処理できませんでの、AWSでインスタンス立ててやってます。(お金がかかる)
APIで自動売買する環境は?
こちらは現時点で検証中で、実は色々と試しています。まだ確定的には決まっていませんが、今検証しているのは下記の2つです。
その1 ローカルPC
- 小規模なモデルであればローカルを使うのが早い
- 余計なサーバー費用などもかからず経済的
- Pythonを動かしてレートをストリーミング
- 一定の条件でモデルへ投げて予測
- 予測した結果に応じてイベント管理のコードからAPIへ接続
- API経由でOANDAの本番口座へ注文を流す
その2 AWS
- 試験的に今模索しながらやってます
- LinuxにJupyter Labをインストール
- 他、機械学習モデル構築に必要なパッケージもインストール済み
- Jupyter LabのコンソールでPythonファイルを叩いている
- まだ簡単なロジックしかないので作り込みが必要かも(?)
目指したい環境
- 常時、サーバー上でAPI接続
- 常時、最新の為替レートをAPIから取得
- 常時、為替レートを一定の条件で処理する(テクニカル指標などを)
- 常時、一定の条件で構築済みのモデルへ投げる
- 常時、モデルの出力に応じてAPIへ注文
- コードでポジション全体のポートフォリオを管理
まとめ
他にも使っているライブラリーやバージョンなどの質問も頂くことがありますので、これも後日更新します。また、検証中の環境も多いので、そちらはある程度固まってきたら、こちらの記事を随時更新していきます!
ブログ読んでいただきありがとうございます!Twitterでも色々と発信しているので、是非フォローお願いします!
ディスカッション
コメント一覧
まだ、コメントがありません