oandapyのインストール (2017/09/10)

oandapyをインストールする。oandapyはOANDAの口座からデータを取得するので、OANDAのデモ口座も開設しておく。

oandapyのインストール

○以下のコマンドを端末に入力して「Enter」キーを押す。

$ pip install git+https://github.com/oanda/oandapy.git

OANDAデモ口座の開設

①以下のアドレスをクリックする。

https://www.oanda.jp/

②右上の「デモ申込」ボタンをクリックする。

③「無料デモ口座開設フォーム」の「デモ口座利用規程及び個人情報のお取扱いについて」で「同意・承諾します」にチェックを入れる。

④「お申込みフォーム」で必要事項を入力、または選択する。

⑤「勧誘の受諾の意思の表明」で「同意・承諾します」にチェックを入れる。

⑥「勧誘招請について」で「同意・承諾します」にチェックを入れる。

⑦「デモ口座ID(fxTradePracticeID)を発行する」ボタンをクリックする。

⑧登録したメールアドレスに送られたIDとPWを確認する。

アカウントIDとアクセストークンの取得

(注意)以下は私が実際に手続きしたときの手順であり、現在は少し違うかもしれません。

上に続けて実行する。

①「無料デモ口座開設フォーム」で「デモ ログインへ」ボタンをクリックする。

②「デモ口座ログイン」で「お客様のIDを入力してください」にIDを入力する。

③「パスワードを入力してください」にPWを入力する。

④「デモ口座ログイン情報を記憶する」にチェックを入れる。

⑤「ログイン」ボタンをクリックする。

⑥(ブラウザがFirefoxの場合のみ)「このログイン情報を Firefox に記憶させますか?」で「記憶」ボタンをクリックする。

⑦「口座情報」の「アカウント」で「Primary」の右にある数字をメモする。

これがAPIアクセスに必要なアカウントIDとなる。メールアドレスに送られたIDではないので注意。

⑧「MT4/API関連」の「APIアクセスの管理」をクリックする。

⑨「REST APIアクセスの管理」で「発行する」ボタンをクリックする。

⑩「あなたのPersonal Access Tokenは下記となります。」の下のトークンをメモする。

これがAPIアクセスに必要なアクセストークンとなる。

OANDA用設定ファイルの作成 (2017/05/10)

OANDA用の設定ファイルを作成する。設定は毎回、コマンド入力してもいいのだが、それでは面倒臭い。そこで毎回使う設定はファイルに記述しておく。

①以下の設定を「settings.ini」ファイルとして「~/py」フォルダーに保存する。

[DEFAULT]
environment = practice
account_id = 1234567
access_token = 1234567890123456789012345678901-2345678901234567890123456789012
fromaddr = abcd@yahoo.co.jp
password = 12345678
toaddr =abcd@example.com
folder_ea = .wine/drive_c/"Program Files (x86)"/"OANDA - MetaTrader"/mql4/Files

②自分の環境に合わせて設定内容を変更し、保存する。

  • environment: 口座の種類を設定するもので、デモ口座の場合は「practice」と入力する。
  • account_id: 「OANDA REST APIの準備」でメモしたアカウントIDを入力する。
  • access_token: 同じく「OANDA REST APIの準備」でメモしたアクセストークンを入力する。
  • fromaddr: 送信元メールアドレスを入力する。戦略のシグナルをメールで送信したい場合、このアドレスで送信する。また、ここではyahooメールを利用することとする。
  • password: 送信元メールアドレスのパスワードを入力する。
  • toaddr: 送信先メールアドレスを入力する。戦略のシグナルをメールで受信したい場合、このアドレスで受信する。これはどこのメールでも構わない。
  • folder_ea: MT4の「Files」フォルダーのパスを入力する。パスはMT4のインストール先によって設定例と違う場合もある。これは戦略のシグナルをEAに送信し、EAで執行したい場合に使う。

FXシステムのダウンロード (2017/04/13)

ここで言う「FXシステム」とは私が作成した「forex_system.py」ファイルのことである。

以下のコマンドを実行して「forex_system.py」ファイルを「~/py」フォルダーにダウンロードする。

$ wget -P ~/py https://raw.githubusercontent.com/fxst24/fxst24/master/forex_system/forex_system.py

ランダムウォーク・データの作成 (2017/04/11)

ランダムウォークのデータを作成する。作成にあたってはUSDJPYのデータの日時を利用しているので、あらかじめ「ヒストリカルデータの加工」でデータを作成しておく必要がある。

import forex_system as fs
fs.get_randomwalk_data()

開始日と終了日はUSDJPYと同じになるので指定する必要はない。作成される足の種類もUSDJPYと同じである。

デフォルトの設定では1分足の単位で平均=0.0、標準偏差=0.01 / sqrt(1440)、歪度=0.0の正規分布に従うランダムウォークのデータが作成される。日足での標準偏差が0.01(1%)となるイメージである。

デフォルトとは違う設定で作成したい場合は以下のようにする。

import forex_system as fs
fs.get_randomwalk_data(mean=-0.00001, std=0.0005, skew=1.0)

この場合、平均=-0.00001、標準偏差=0.0005、歪度=1.0の非正規分布に従うランダムウォークのデータが作成される。歪度が0ではないのでランダムウォークと呼ぶのは正しくないかもしれないが、ここではランダムウォークとして扱う。

ヒストリカルデータの加工 (2017/08/05)

hstファイルをcsvファイルに変換

この手順はhstファイルをcsvファイルに変換したい場合のみである。

例として「~/py/historical_data」フォルダーに「USDJPY.hst」ファイルがあるとする。これをcsvファイルに変換する。csvファイルは新たに生成され、hstファイルはそのまま残る。

import forex_system as fs
to_csv_file('USDJPY')

ヒストリカルデータの加工と他の足の作成

例として「~/py/historical_data」フォルダーに「EURJPY.csv」、「EURUSD.csv」、「USDJPY.csv」の各ファイルがあるとする。これを使って2007年1月1日から2017年1月1日までの各足を生成する。

import forex_system as fs
start = '2007.01.01'
end = '2017.01.01'
for symbol in ['EURJPY', 'EURUSD', 'USDJPY']:
    fs.get_historical_data(symbol, start, end)

備考

①デューカスコピーのヒストリカルデータはGMT基準であるように思われるが(夏時間があるようなのでUTCではない)、NYクロージング基準に変更するため、元データから2時間進ませている。

②土日以外のすべての足を作成し、データが欠けている場合は前の足のデータで補間している。データが欠けている場合はデータに変動がないと考えれば前の足の終値を使うことには問題ないが、始値、高値、安値、出来高ではそうはいかない。テクニカル指標なども、元データを使った場合と若干の違いが出ることもある。

③1分足データを元に2分、3分、4分、5分、6分、10分、12分、15分、20分、30分、1時間、2時間、3時間、4時間、6時間、8時間、12時間、1日の各足を作成している。