【識別率◯◯%超え?!】人工知能・AIを用いてバイナリーオプションを攻略してみた!

2019年8月11日

スポンサードリンク
スポンサードリンク

人工知能(機械学習)でバイナリーオプションを攻略する方法

今回はバイナリーオプションを深層学習ではなく機械学習で攻略しようと思います。

動機は単純明快。億万長者になるためです。

前置きはさておいて、本題に入ります。

 

まず、必要な事がいくつかあるので、それを以下に明記しておきます。

  • Pythonを使用
  • 学習用テスト用データはOANDAが公開しているAPIを使用して為替データを持ってくる
  • 機械学習フレームワークのscikit-learnのRandomForestを使用

大まかにこんな感じです。

 

本記事では、パイソン環境がすでに整っているかつOANDA APIの使用ができる状態であることを前提に話を進めていきますので、各々の環境が整っていない方は下記の参考記事をご覧ください。

 

Pythonの環境設定はこちらの記事:絶対挫折しない!Python入門 ①〜パイソンを導入しよう!〜

OANDA APIの使い方、環境設定はこちらの記事:PythonでOANDA APIを使って、過去レートを5000件以上取得する方法

 

また、本記事はバイナリーオプションを提供しているハイローオーストラリアでの使用を想定しています。

ですので、スプレッドの話や、ペイアウトの割合などもハイローオーストラリアのをしようしています。

 

ハイローオーストラリア の口座開設はこちらから→https://jp.highlow.net/account

 

scikit-learnを導入しよう!!

前回記事でもバイナリーオプションなら深層学習で勝てるんじゃね?などのナメくさったことを話しましたね。

 

参考記事↓

バイナリーオプションなら機械学習で勝てるんじゃね?と思った結果。

 

結局勝てそうになかったので、今回も懲りずに機械学習で挑戦してみたというわけです。

そして、おそらく読者の中にはWindowsユーザーの方もいらっしゃるかと思います。深層学習フレームワークの一つであるTensorFlowはWindowsOSに対応していないそうなので、それではせっかくみに来てくださってるWinOSの方々に申し訳が立たないので、おそらく使えるであろう機械学習フレームワークであるscikit-learnを今回は使っていきます。

 

とはいえ導入の仕方はめちゃくちゃ簡単です。以下のコードをコマンドプロンプトないしはターミナルに打ち込んでいただければ終わりです。

また必要に応じてインストールしていなければ、pandasやnumpyなどの便利なパッケージも入れておきましょう。

これでscikit-learnが入りました。

この中に機械学習アルゴリズムの一つであるランダムフォレストが入っています。

また、ランダムフォレストの理論的な話を知りたい方は、触りだけを説明しているこの本をご覧ください。

スポンサードリンク

学習用データを用意する

それでは、学習させるためのデータを用意しましょう。

今回は値動きの激しいポンド円を使い、ある程度の値動きを確保するために3分足のロウソク足データを持って来ましょう。

以下にそのコードを記します。10万データほど用意しましょう。

また、OANDAのデモ口座を持っていること、API使用の設定ができていることを前提で話しますので、環境設定がお済みでない方は、ちゃんと設定してからにしましょう。

OANDA APIの使い方、環境設定はこちらの記事

PythonでOANDA APIを使って、過去レートを5000件以上取得する方法

これでディレクトリに『gbpjpy_m3.csv』という名前のcsvファイルが作成されていればオッケーです。

 

学習させてみよう!

それでは、用意したデータを読み込んで、学習用データとテスト用データに分けて学習させてみましょう!

かなり長くなりましたが、とりあえずはこれで学習モデルは完成です。

実際にこのコードを実行させてみましょう。自分は少しデータ量を減らして2万データにしていますが、満足しない方は10万データでも試してみましょう。

 

学習結果は以下のようになります。

<値上げするかどうかのモデル>

<値下げするかどうかのモデル>

という結果になりました。

少しややこしいのですが、重要なのはprecisionのところです。値上がりモデルの方は’up’の識別率は55%で、値下がりモデルは’down’の識別率は50%でした!!!!!

 

つまり、このモデルを参考にすれば、値上がりの場合は55%、値下がりの場合は50%の確率で勝てるというわけです!!!!!!!!!!!!!!!!!!!!!!!!!!!

 

 

と考えた方。それは大きな間違いです。

実はここが機械学習の厄介なところなのですが、上記のコードをもう一度学習させてみましょう。そしたら下記のようになりました。

上が値上がりモデル、下が値下がりモデルです。

precisionのところをみてください。’up’は変化なしですが、’down’だと先ほどとは打って変わって、50%

を下回ってしまっています。

つまり、このモデルは安定して識別率を50%以上にすることができていないわけです。(実証済み:200回学習させた時の平均識別率49.6729%※学習データの内容につき変動あり)

もっと稼ぎたい!という方は他記事もどうぞ!

総括

今回はランダムフォレストを使って、バイナリーオプションに挑戦してみました。

前回よりはまだマシになりましたが、まだまだ稼げるほどのモデルにはなっていないということがわかりました。

億万長者への道のりは長そうです。。。。。

報告!!実際に利益の出たプログラムをnoteにて販売中!!

自分が長いこと研究して実際に1週間に3%ほどの利益を上げれている自動取引BOTを下記のリンク先にて公開中です!気になるかたはぜひご覧ください!

FxトレーダーでOANDA使ってる方、Pythonで作ったこの自動売買BOTを試して欲しいです。

また、新しく人工知能の知識を用いた線形回帰をベースとした特殊な強化学習のモデルを作成しました。かなりのパフォーマンスを上げることができたいますので、是非お試しください。

【論文実装編】線形回帰モデルのFx自動売買ー学習パート+取引モデルのパート統合

 

スポンサードリンク