技術ブログ

Developers's blog

機械学習で為替予測(FX)をしてみる

2020.08.05 岩﨑 彩佳
利用事例 機械学習
機械学習で為替予測(FX)をしてみる

こんにちは。

皆さんはFXでお金を稼ぎたいと思ったことはあるでしょうか?もしFXでこれまでの生活を一変させるような額のお金を稼ぐことができたら夢のようですよね?

今回はそんな夢を目指して、為替の値動きを機械学習で予測してみたというお話をしたいと思います。


目次

  1. 概要
  2. 手順
  3. 結果
  4. 今後の課題


1 概要

  • 使用したデータセット:OANDA APIを用いて取得
    https://www.oanda.jp/fxproduct/api
    (デモ口座を開設することにより、無料でAPIを利用することができます)

  • 使用したモデル:LSTM

データセット
米ドル円の2016年9月22日から2020年7月20日までの1000個の日足データを取得し利用します。

スクリーンショット 2020-07-21 14.27.04.png
今回は、open(始値)、close(終値)、high(高値)、low(安値)、volume(取引量)という基本的な特徴量を用います。

LSTMとは?

 LSTMは時系列予測をするためのライブラリです。
LSTM(Long short-term memory)は、RNN(Recurrent Neural Network)の拡張として1995年に登場した、時系列データに対するモデル、または構造の1種です。その名前は、Long term memory(長期記憶)とShort term memory(短期記憶)という神経科学における用語から取られています。 ニューラルネットワークは過去の出来事を考慮することができず、RNNは長い記憶に対応できないという欠点があります。そこで長い過去の記憶を考慮できるように、LSTMが開発されました。 今回は5日分のデータを1セットとしてLSTMで予測をしました。
つまり、5日間の為替レートのデータを1セットとして、それを何セットも学習することで、新しい5日間のデータからその次の為替レートを予測していきます。


2 手順

 今回為替予測をするにあたって行った手順について簡単に説明します。  

  1. データセットの準備
       OANDA APIを用いて取得する

  2. データの加工
      ・データセットの「time」の部分が特殊な形(「ISO 8601」)を日本時間に直す
      ・データを学習データと訓練データに分割する
      ・LSTM用にデータを変換する
       絶対的な為替価格ではなく、どのように為替価格が変化し、どの程度価格が変動するかを見る変化率に直す
      ・PandasのデータフレームからNumpy配列へ変換する

  3. LSTMのモデル構築と学習・予測
      ・機械学習ライブラリのKerasを利用してモデル構築を行う
    (Kerasについてはこちらをご覧くださいhttps://keras.io/ja/
      ・モデルの訓練を行う
      ・作成したモデルを用いて、予測をする


3 結果

 2のところで紹介した手順で為替の予測を行ってみました。結果をチャートにしたものがこちらです。

スクリーンショット 2020-07-31 8.54.42.png
青のラインが実際の為替の値動き、赤が今回予測した為替の値動きです。

どうでしょうか。それっぽいものができていると思いますが、チャートをみてみると最初の方で大きく外しているほか、気になるのが、実際の値動きの後に遅れて予測したものが動いている点です。実際にレートが動いてから予測結果が出るため、エントリーのタイミングを逃してしまう可能性があり、各個人での判断が必要となってしまいます。


4 今後の課題

 今回は一日の為替価格のみのデータで分析をしました。為替の値動きは、様々な経済指標やトランプ大統領の発言、1日の中の時間帯によっても変わっていくので、そのようなニュースの情報やTwitterなどの情報も取り入れたらさらに精度の高いものが出来上がるのではないかと思います。
 FXトレーダーは、自分なりにチャートを分析し、何らかの基準を持ってトレードをしています。彼らのノウハウや経験をうまく機械学習に落とし込めれば、同等、またはそれ以上の精度で予測できるのではないかと個人的には思います。
 引き続き機械学習を用いた為替予測を頑張っていきたいです!

関連記事

機械学習で採用予定人数を予測する。狙い目企業はどこ?

2022年卒大学生の皆さん! コロナウイルスが流行していることで就活にどういう影響があるのか、とても不安ですよね。 今回は業界ごとに採用人数を予測し、「どの業界が狙い目なのか」機械学習を使った分析手順を紹介します! 目次 概要 手順 今後の課題 1.概要 データセットの内容 分析対象の7業界・各4企業 化粧品 電子機器 商社 不動産 金融 サービス IT・情報 説明変数と目的変数 特徴量 年初の株価、決算報告書提出翌日の株価、一株あたりの純資産額、従業員数

記事詳細
機械学習で採用予定人数を予測する。狙い目企業はどこ?
利用事例 機械学習
機械翻訳の歴史と今後の可能性

目次 機械翻訳とは 機械翻訳の手法 現在の機械翻訳の欠点 欠点が改善されると 今後の展望 機械翻訳とは 機械翻訳という言葉を理解するために2つ言葉を定義する。 系列 : 記号の列のことで自然言語処理の世界だと文を構成する単語の列になる。 系列変換モデル : 系列を受け取り、それを別の系列に変換する際の確率をモデル化したもの。系列変換モデルはseq2-seqモデルとも呼ばれている。 この2つの言葉から機械翻訳は、ある言語の文章(系列)を別の言語の文章(系列)

記事詳細
機械翻訳の歴史と今後の可能性
利用事例 機械学習 自然言語処理
機械学習におけるパラメータとその決定法

このブログはそもそもパラメータという言葉をよく耳にするが、どのように決定しているのか知りたい人(機械学習の初歩的な数学の理論を知りたい人)向けです。少し数学的な計算も入ってきます。 学習とは、仮定から導き出した誤差関数を最小に,あるいは尤度関数や事後分布を最大にするパラメータを求めることでした。そのうち今回は尤度関数と勾配法について説明していきたいと思います。 パラメータとはどういう設定値や制限値で機械学習の予測モデルを作るのかを示すものです。イメージとし

記事詳細
機械学習におけるパラメータとその決定法
機械学習
データから簡単にレポート作成!  ーARRIA NLG PLCで自然言語生成ー

皆さんはレポートを作成する際、どのような方法で作成していますか? 膨大な量のデータを読み解き、文章を考えて、何かうまくまとまらない...... もっと簡単にできたらいいのに!と思ったことはありませんか? この記事では、Arria NLG PLCのデータから文章を生成する技術について紹介します。 1 ARRIA NLG PLCとは? ARRIA NLG PLCは2009年に設立した企業です。しかし、その技術は30年間の科学的研究に基づいたもので、ARRIA

記事詳細
データから簡単にレポート作成!  ーARRIA NLG PLCで自然言語生成ー
利用事例 機械学習

お問い合わせはこちらから