思ったことをそのままに

思ったことをそのままに

自分が好きなようにいろんな記事を書きます

とある大学生がFXでお小遣いを稼げるようになるまで 【第2話 過去データ大量ゲット!】

 

 

これまでのあらすじ

とある工学部情報系の大学に通う大学生,オレオ.

バイナリーオプション機械学習を使って儲けようとするも,バイナリーオプションが今後禁止される可能性があることをを知り,FXに切り替えた.

 

第1話はこちらからどうぞ

oreohaoleo.hatenablog.com

 

 

まずは下調べ

 

オレオは機械学習がわからぬ.

 

機械学習と言っても,どんな感じで始めればいいのかわかんないな」

「とりあえず, 【機械学習 fx】  検索っと」

 

f:id:oreohaoleo:20200907160151p:plain

 

「ん?なんかピッタリな記事があるぞ」

 

qiita.com

 あれ,もうこの物語のシリーズいらなくね...?

 てか,ツヨツヨな人ならこの物語見るの止めて上の記事を参考にしたほうが絶対いいいと思う.うん.

 

内容としては,機械学習ツヨツヨの人が書いた,機械学習用いてfx予測プログラムを作成する初心者向けの記事である(たぶん)

 

 

一通り記事を見たオレオ.

 

「けっこう丁寧に解説してあるけど,これをそのまま使うのは実用的じゃないっぽい」

「あと,この記事見てもよくわからんかった」←理解力0

 

彼は少しでも複雑な数式を見てしまうと思考が停止してしまうのだ.

 

「自分で理解しながらやっていきたいから,あの記事は参考程度に見ながらやろ~」

 

 

 

 環境つくっていくぞ!

「ローカルの環境でやるのも良さそうだけど,機械学習って言ったらGPU!」

「ってことでGoogle Colaboratory使っちゃお」

 

Google Colaboratoryについてはこちらの記事をどうぞ

note.com

 

 簡単に説明すると,

  • ブラウザ上でPython実行できるよ
  • GPUも使っていいよ
  • 共有も簡単にできるよ

という感じ.

Googleアカウントがあれば誰でも使える上に,めんどくさい環境構築が不要なことも大きなメリットである.

 

 「環境はこれで良さそうだから,次は必要なデータを集めるか」

 

自分の思うようなデータが収集できないと,いいモデルも立てられないため,

機械学習において,データ収集はかなり重要らしい(本で見た)

 

 

 

OandaはOandaって読むよね?

 調べていると,またピッタリな記事を見つけたオレオ.

qiita.com

 

どうやらOanda APIという謎の組織からデータを取得できるらしい..

 

「OandaはOandaって発音すればいいの?それともOanda?どっちだろう」

 

Oanda API について↓

Oandaという会社が提供しているFXの自動売買のためのAPIです。
個人でも利用できるAPIを提供している会社は少ないのですが、OandaはpythonからAPIを利用するためのパッケージ(oandapyV20)も存在しており、pythonユーザにとっては非常に使い易いサービスとなっています。

引用:https://qiita.com/THERE2/items/f716565c884e7750c6c1

 

 なお、デモ環境では、架空のお金で本番取引と同じように取引を行う事ができ、自動売買のモデルが本当に利益を出せるのかシミュレーションする事が出来ます。
精度の悪いモデルや自動売買の処理のバグで自分のお金を溶かしてしまうリスクを軽減する事ができますね。

引用:https://qiita.com/THERE2/items/f716565c884e7750c6c1

 

「ええ,神ぃ...」

 

APIの利用には口座開設が必要とのことで,さっそく口座をつくっていくオレオ.(デモ口座でいいらしい?)

www.oanda.jp

 

 

f:id:oreohaoleo:20200909101957p:plain

 

項目を埋めて登録する.

※SMS認証はなかったため,電話番号はダミーでも問題なさそう.(自分は下一桁だけ数字を変えた)

 

f:id:oreohaoleo:20200909101648p:plain

 

連絡メールアドレス宛にIDとパスワードが届くのでそれを入力してログインする.

 

ログインするとこんな画面になって,赤丸で囲んでいる「APIアクセスの管理」をクリックする.

f:id:oreohaoleo:20200909102706p:plain

 

「発行する」をクリック

f:id:oreohaoleo:20200909102906p:plain

 

英数字の長い文字列をコピーしておく.これがアクセストークンとなる.

f:id:oreohaoleo:20200909103144p:plain

 

これでOandaのAPIを使う準備は完了.

 

「ここまでは順調だね」

 

 

次はいよいよデータを取得するぞ.

 

 

 

Pythonを使って過去データを大量にゲット

流れとしてはさっき貼った記事↓に書いてあるとおりに進めていく.

qiita.com

 

Pythonでoandaを使えるようにするためのコマンド↓

pip install oandapyV20

 

「これGoogle Colab だとどうやって実行すればいいんだろう??」

 

調べてみると「!」を行頭につけることでGoogle ColabでもLinuxコマンドを実行できるようになるらしい.

 

f:id:oreohaoleo:20200909105436p:plain

「お,うまくいったみたい」

 

 あとは記事に書いてある通りにソースコードを書いていく.

 

 ソースコードはこちらから(Google Colabだと実行できません.下で説明してます)

colab.research.google.com

 

繰り返すが,このソースコードは↓の記事のコードそのままであり,細かい解説については↓を見るように.

qiita.com

 

 

 

Google Colabの壁にぶつかる

結論から言うと,Google ColabのPythonのバージョンの変更の仕方がわからず,過去データのダウンロードはGoogle Colabだとできない説が濃厚になっていた.(ご存知の方がいれば教えてください..)

 

「fromisoformat」とやらがPython3.7以降じゃないと使えないらしく,Google ColabのPythonのバージョンを調べてみると

 

f:id:oreohaoleo:20200909171110p:plain

「あらギリギリ足りない」(足りないとは...)

 

そもそもPythonのバージョン関係なしにスクリプトが動くのかを確認するため,ローカル環境のUbuntu(もちろんPythonは3.7以降)にて実行したところ,問題なく動いた.(やったぜ)

なので,Python3.7以降が使える環境にある人は,↑のソースコードをそのままコピペすれば実行できるはず.(IDとアクセストークン書き換えるのと,「pip install oandapyV20」はしておいてね!)

 

Google Colab使っていくぜ!とか言っちゃったけど,各自Python3.7以降が使える環境で実行してね!になっちゃった...」

 

個人的には,プログラム関連の初心者でも一緒にできるような物語にしていく予定だったのだが,早速破綻した.

 

申し訳程度に,今回ダウンロードできた過去のFXデータをここに残しておく.

このデータがあれば今回のスクリプトを実行する必要はない.(自分好みのデータを入手したい場合はソースコードの該当部分をイジる必要がある)

drive.google.com


 

「なんか,いろいろあったけど,過去データは入手できたから,まあ,いいか...次行こ...」 

 

 

 

次回へと続く....