OANDA APIで現在のレートを取得
練習用にOANDA APIでEUR/USDの現在のレートを取得します。
Sandbox
開発ガイドを読むとsandbox環境は認証が必要ないので最初にこちらで実行しました。
$ curl -i "http://api-sandbox.oanda.com/v1/prices?instruments=EUR_USD"
curl: (52) Empty reply from server
時間を置いて何度か試したのですが、正常な動作を確認できませんでした。開発ガイドにもsandboxは動作が不安定で時々使用不可能になると書いてあるので「fxTrade Practice」と記載されている別の環境で試します。
fxTrade Practice
pythonのAPIラッパーに、先日取得したアクセストークンを使用して再度試しました。 今回は用意されているサンプルコードをそのまま利用しました。
GitHub - oanda/oandapy: Python wrapper for the OANDA REST API
$ pip install git+https://github.com/oanda/oandapy.git
import oandapy oanda = oandapy.API(environment="practice", access_token="YOUR_ACCESS_TOKEN") response = oanda.get_prices(instruments="EUR_USD") print(response)
$ python example.py {'prices': [{'instrument': 'EUR_USD', 'bid': 1.06354, 'time': '2016-12-13T03:39:26.222056Z', 'ask': 1.06359}]}
無事に動作を確認することができました。
参考
2016年に買って良かったもの10選
2016年に買ってよかったものをまとめました。
ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装
ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装
- 作者: 斎藤康毅
- 出版社/メーカー: オライリージャパン
- 発売日: 2016/09/24
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (6件) を見る
文系出身の自分にもディープラーニングの概念を理解できるくらい解説が丁寧で分かりやすい本でした。読み込むには数学の知識が乏しかったため、この本を読んだあとに数学の勉強をはじめました。
コーヒーの人
- 作者: 大坊勝次,田中勝幸,國友栄一,濱田大介,松島大介,加藤健宏,numabooks,小島賢治
- 出版社/メーカー: フィルムアート社
- 発売日: 2015/12/18
- メディア: 単行本
- この商品を含むブログを見る
A Film About Coffee(ア・フィルム・アバウト・コーヒー) [DVD]
- 出版社/メーカー: TCエンタテインメント
- 発売日: 2016/10/05
- メディア: DVD
- この商品を含むブログ (1件) を見る
コーヒーのドキュメンタリー映画「A Film About Coffee」を観たことをきっかけに手に取りました。コーヒーの初心者からスタートしてどのように職人・プロフェッショナルへと変わっていくか、仕事に対してどのような姿勢や哲学で取り組んでいるかなど、学歴のバックグラウンドのない文系フリーランスの自分の状況と重ねながら読み進めました。
VOX gear+ 3DVR ゴーグル
VOX gear+ 3DVR ゴーグル 3Dメガネ HMD 素晴らしい3D体験 焦点/瞳孔距離調節可能 4- 6.5インチのスマートフォンに適用 GoogleDIY ビデオ 映画ゲーム用
- 出版社/メーカー: VOX
- メディア: エレクトロニクス
- この商品を含むブログを見る
VRをとりあえず体験したいと思い購入しました。VRのヘッドセットの中では安いランクになるかもしれませんが、充分に新しい映像の世界を体験をすることができました。後日、同じものを友人にすすめたところ、友人もVRの映像体験に感動したようでした。
バックハンガー
- 出版社/メーカー: (有)アークトレーディング
- メディア:
- この商品を含むブログを見る
バックを机や棚に引っ掛ける時に重宝しています。机や棚にネジ穴など開ける必要がなく、持ち運びも簡単です。2つ購入して、自宅用と外出用に使っています。
あずきのチカラ
- 出版社/メーカー: 桐灰化学
- 発売日: 2008/10/14
- メディア: ヘルスケア&ケア用品
- 購入: 71人 クリック: 582回
- この商品を含むブログ (29件) を見る
- 出版社/メーカー: 桐灰化学
- 発売日: 2009/09/30
- メディア: ヘルスケア&ケア用品
- 購入: 30人 クリック: 348回
- この商品を含むブログ (24件) を見る
以前使っていたものを引越のタイミングで紛失したため、目もと用と首肩用をそれぞれ再購入しました。長時間のデスクワークが多いので、疲れを感じた時なとに使用しています。
キャプテンスタッグ チェア
キャプテンスタッグ チェア CS ラウンジ チェア type2 グリーン M-3889
- 出版社/メーカー: キャプテンスタッグ(CAPTAIN STAG)
- 発売日: 2012/03/09
- メディア: スポーツ用品
- クリック: 4回
- この商品を含むブログを見る
アウトドア系の椅子の座り心地が好きなため使用しています。千円程度と値段が安いことも大きな魅力です。
ファイナルファンタジー XV
ファイナルファンタジー XV 初回生産特典 武器「正宗/FINAL FANTASY XVオリジナルモデル」アイテムコード同梱 - PS4
- 出版社/メーカー: スクウェア・エニックス
- 発売日: 2016/11/29
- メディア: Video Game
- この商品を含むブログ (12件) を見る
Amazonでは色々な意見が出ていますが、数年ぶりにFFをやった身としてはタイムマシンに乗ったような気持ちでグラフィックの進化に驚きながら楽しんでプレイしています。経験値の稼ぎ方の軸がモンスターを倒すことからサブクエストをクリアすることに移行している点は大きな改善だと感じました。レベル上げのために駆り出されていた世界中の弟が救われたのではないかと思います。しかしバグが多いのは事実で、ボス戦でキャラがフリーズするなど致命的なバグが2回ありました。アップデートに期待しています。
電気ケトル
ティファール 電気ケトル 「ノヴェア」 ブラック 0.5L KO324871
- 出版社/メーカー: T-fal
- メディア: ホーム&キッチン
- この商品を含むブログを見る
バルミューダ 電気ケトル BALMUDA The Pot K02A-BK(ブラック)
- 出版社/メーカー: BALMUDA
- 発売日: 2016/10/21
- メディア:
- この商品を含むブログを見る
引越のタイミングで友人にすすめられて購入しました。コーヒー・カップラーメン・スープなど様々なシーンで役立っています。初めての電気ケトルだったので定番のティファールを選びました。最近発表されたバルミューダの電気ケトルも気になっています。
マドラー
- 出版社/メーカー: 日本デキシー
- メディア: ホーム&キッチン
- この商品を含むブログを見る
電気ケトルを購入してコーヒーを飲む機会が増えたので、使い捨てのマドラーを購入しました。
ドラム式洗濯機
仕事に行く前に洗濯物を入れると帰ってきたら乾いているので、本来の家事時間を他のことに使えるなど時間を有効活用できるようになりました。洗濯機に合わせて服選びも変わり、乾燥機にかけても縮みにくい素材の服を中心に選ぶようになりました。
OANDA APIを利用するための準備
OANDA APIを利用するためにアカウントの登録とAPIのアクセストークンの発行を行います。
1. OANDA fxTrade Practiceのアカウント取得
日本の居住者の方が、OANDA APIを利用するには、OANDA Japan株式会社でfxTrade(本番口座)もしくはfxTrade Practice(デモ口座)のアカウントが必要です。 こちらから、無料の デモアカウント もしくは 新規取引アカウントを開設してください。
今回はデモ口座を申し込みました。
デモ口座申し込みに必要な入力項目(2016年12月時点)
- 規約の同意
- 氏名
- 性別
- メールアドレス
- 電話番号
- 本番口座に関する勧誘を許可する旨の同意項目
2. アクセストークン発行
まず、OANDA fxTrade Loginページにログインしてください。ログイン後、『APIアクセスの管理』をクリックし、API契約書に同意後に、パーソナルトークンを発行する事が可能となります。
以上で準備完了です。
参考
システムトレードの参考記事
背景
AI・人工知能分野が盛り上がりを見せる中で、どういった関わり方ができるかを模索していました。ある勉強会でディープラーニングを応用したシステムトレードの開発に取り組んでいる方の話を聞く機会があり、そこでシステムトレードについて興味を持ちました。今後の趣味開発のため自分用に参考記事をまとめました。
システムトレードの参考記事
深層強化学習でシステムトレードをやる時に役に立ちそうな資料まとめ - ニートの言葉
OANDA REST APIの準備 - FXシステムトレード
fx_systrade/xgboost_trade_oanda.py at master · ryogrid/fx_systrade · GitHub
OANDA APIをつかって Pythonで 為替レートを取得してみた | Futurismo
今後
機械学習についてはまだ実装できるレベルではないため、しばらくは本を読んだりサンプルコードを動かしたり試行錯誤する予定です。トレードシステムについては上記の記事を参考にデモ口座でトレードのやり取りができる最低レベルまでの実装を目標に開発を進める予定です。
シグモイド関数
数学を避けてきた人生の報いを受けながらシグモイド関数について学んでいます。本を読み進める上で以下の記事を参考にしました。
シグモイド関数の参考記事
- Artificial Neural Networks/Activation Functions
- シグモイド関数
- How to calculate a logistic sigmoid function in Python?
- 【2次関数】f (x)の意味
- 【指数・対数関数】0乗,−1乗の意味
シグモイド関数の実装
def sigmoid(x): return 1 / (1 + np.exp(-x))
その他
高校レベルの数学もさっぱりなので、数学記号の読み方や意味が分からないことが多々あります。色々調べた中で進研ゼミの数学のQ&Aページがコンパクトに分かりやすくまとまっていました。
Python3でTensorFlowのMNISTチュートリアルを試す
Python3環境でTensorFlowのMNISTチュートリアルを試しました。 Qiitaに丁寧に解説された記事があがっていたので、そこに掲載されているサンプルコードをコピペ(Python3に合わせて一部修正)で動かしました。
どういった処理を行っているかについては、正直に言ってさっぱりなのですがまずは動作を確認できたという所で一歩進めたかと思います。
# -*- coding: utf-8 -*- from tensorflow.examples.tutorials.mnist import input_data import tensorflow as tf import time start_time = time.time() print("開始時刻: " + str(start_time)) print("--- MNISTデータの読み込み開始 ---") mnist = input_data.read_data_sets("MNIST_data/", one_hot=True) print("--- MNISTデータの読み込み完了 ---") x = tf.placeholder(tf.float32, [None, 784]) W = tf.Variable(tf.zeros([784, 10])) b = tf.Variable(tf.zeros([10])) y = tf.nn.softmax(tf.matmul(x, W) + b) y_ = tf.placeholder(tf.float32, [None, 10]) cross_entropy = -tf.reduce_sum(y_*tf.log(y)) train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy) init = tf.initialize_all_variables() sess = tf.Session() sess.run(init) print("--- 訓練開始 ---") for i in range(1000): batch_xs, batch_ys = mnist.train.next_batch(100) sess.run(train_step, feed_dict={x: batch_xs, y_:batch_ys}) print("--- 訓練終了 ---") correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1)) accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float")) print("精度") print(sess.run(accuracy, feed_dict={x: mnist.test.images, y_: mnist.test.labels})) end_time = time.time() print("終了時刻: " + str(end_time)) print("かかった時間: " + str(end_time - start_time))
結果
$ python mnist_for_ml_beginners.py 開始時刻: 1479552572.434575 --- MNISTデータの読み込み開始 --- Extracting MNIST_data/train-images-idx3-ubyte.gz Extracting MNIST_data/train-labels-idx1-ubyte.gz Extracting MNIST_data/t10k-images-idx3-ubyte.gz Extracting MNIST_data/t10k-labels-idx1-ubyte.gz --- MNISTデータの読み込み完了 --- --- 訓練開始 --- --- 訓練終了 --- 精度 0.9085 終了時刻: 1479552576.449984 かかった時間: 4.015408992767334
90%強の精度結果でした。
参考
videojsのサンプルコード
video.jsの動作確認用のサンプルコード。 S3から動画を読み込む際には、CORS設定の編集が必要。
<!DOCTYPE html> <html> <head> <link href="http://vjs.zencdn.net/5.11.9/video-js.css" rel="stylesheet"> <script src="http://vjs.zencdn.net/5.11.9/video.js"></script> <script src="https://npmcdn.com/videojs-contrib-hls@^3.0.0/dist/videojs-contrib-hls.js"></script> </head> <body> <video id="example-video" width="960" height="400" class="video-js vjs-default-skin" controls> <source src="http://d2zihajmogu5jn.cloudfront.net/bipbop-advanced/bipbop_16x9_variant.m3u8" type="application/x-mpegURL"> </video> <script> var player = videojs('example-video'); </script> </body> </html>