dogwood008の開発メモ!

最近のマイブームは機械学習, Ruby on Rails。中でも機械学習を使った金融商品の自動取引に興味があります。

Python

【Python】テスト時、特定の関数の動作をモックする

要旨 下記のようにモックを定義する。 import pandas as pd from unittest.mock import MagicMock import jquantsapi mock = MagicMock(return_value=pd.DataFrame()) cli = jquantsapi.Client(refresh_token="dummy") cli.get_prices_daily_quotes = mock …

【Python】イミュータブルなsetを作るには、frozenset()

要旨 >>> frozenset(['a', 'b', 'c']).add('z') Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'frozenset' object has no attribute 'add' 詳細 fronzenset に対して add() した際は、特別なエラーではなく AttributeError が</module></stdin>…

【Python】DataFrameを全て特定の型としてパースする

要旨 import pandas as pd df = pd.DataFrame(some_list).astype(int) 詳細 DataFrame.astype(type) で、好みの型に変換できる。 ただし、 timezone-naive な型(タイムゾーンが付加されていない)を timezone-aware な型(タイムゾーンが付加されている)へ…

【JavaScript】オブジェクト同士の比較:{} === {} は false

概要 {} === {} // => false 詳細 JavaScriptでの比較は、落とし穴が多い。詳しくは参考に挙げたページを見てもらえるとわかるが、 +0 === -0 が false になったりと良く知っていないとハマりがちである。 ではどうやって object 同士を比較すれば良いか、と…

【Ruby, Python】開発時に通信傍受プロキシを設置した時、ルート証明書を与えて、ハンドシェイクエラーを回避する

TL;DR 各言語での設定 Ruby ENV['SSL_CERT_FILE'] = PATH_TO_SSL_CERT_FILE Python import os; os.environ['CURL_CA_BUNDLE'] = PATH_TO_SSL_CERT_FILE この文書は誰向け? サーバサイドの開発者で、通信内容を覗きたい人 暗号化されていないhttpでの通信で…

Deep Learning, TensorFlow, Keras, DQN を使ってFXの自動取引をする その10

問題 今までepisode毎に集計してlossが少なくなればモデルを保存するようにしていた lossは増加するばかりで、何度回しても減らない(原因は不明) 一方、TensorBoardでrewardを眺めると、episodeを進める度にrewardは増えていっていた rewardが増えたら保存…

Deep Learning, TensorFlow, Keras, DQN を使ってFXの自動取引をする その9

問題 TensorBoardで、学習の経過を視覚化したいな… 問題に対する解 コールバックを使った。そのままだと動かなかったので、一旦動くように変更。 github.com

Deep Learning, TensorFlow, Keras, DQN を使ってFXの自動取引をする その8

現在の問題 学習の結果、モデルを保存していないので、学習結果を再利用できない。 問題に対する解 Episode毎にモデルが良くなっていたら、重みを保存する。 そのためのコールバックを作成し、学習の際に渡すことで、Episode終了毎に呼ばれるようにする。 gi…

Deep Learning, TensorFlow, Keras, DQN を使ってFXの自動取引をする その7

試しに学習ができるよう、バグフィックスと機能追加。 2010年9月分を1Epoch学習させたところ、47.33分かかった。実際の学習にはこれを数年分、更に数万〜数十万Epoch分を回すので、このパフォーマンスでは厳しい。 次の一手として、GPUを使ってTensorFlowで…

Deep Learning, TensorFlow, Keras, DQN を使ってFXの自動取引をする その6

今回は試しに学習させてみたところ、途中でエラーが出て止まってしまった。再帰的に直前の存在する日時インデックスを取得するメソッドにバグがあったので、この機会にもっとシンプルな実装へ変更した。 (前略) [2017-04-01 15:05:29,613] before 2010-09-…

Deep Learning, TensorFlow, Keras, DQN を使ってFXの自動取引をする その5

現在の問題点その3 一つ心配事は、土日等休場日も学習すべきかどうかである。おそらく、48時間全く値動きがないことを学習しても仕方ないので、これは飛ばして良いと思う。問題はその次の数分の欠測である。欠測の間は値動き無しとして学習するのが良いの…

Deep Learning, TensorFlow, Keras, DQN を使ってFXの自動取引をする その4

現在の問題点その3 一つ心配事は、土日等休場日も学習すべきかどうかである。おそらく、48時間全く値動きがないことを学習しても仕方ないので、これは飛ばして良いと思う。問題はその次の数分の欠測である。欠測の間は値動き無しとして学習するのが良いの…

Deep Learning, TensorFlow, Keras, DQN を使ってFXの自動取引をする その3

現在の問題点その2 2010年9月3日のデータは23:00:00迄しかなく、23:01:00を読み出そうとした時にエラーが発生している。適切にスキップする処理が必要か。 現在の問題点その2に対する解 その日時におけるデータが存在しなければ、その直前のデータを参照すれ…

Deep Learning, TensorFlow, Keras, DQN を使ってFXの自動取引をする その2

解決した内容 現在の問題点その1 h = HistData('2010/09') として、2010年の9月分を学習用に与えているが、ログを見る限り2010年9月1日の05:00:00迄しか学習していない? 問題点その1に対する解 nb_max_episode_steps = None にする。これが各エピソードにお…

Deep Learning, TensorFlow, Keras, DQN を使ってFXの自動取引をする その1

元ネタはこれです qiita.com UdacityのMachine Learning for Tradingを修了して、いっちょやるか、と思い立ってのでやります。 https://www.udacity.com/course/machine-learning-for-trading–ud501www.udacity.com 上記の講座の中では、教化学習、その中で…

Machine Learning for Tradingの受講を終えた

この記事の続き。実は2月中には既に受講を終えていたけど、記事に書いてなかったのでひとまず。 [http://blog.dogwood008.com/entry/2017/02/13/Udacity%E3%81%AE_Machine_Learning_for_Trading%E3%81%AE%E5%8F%97%E8%AC%9B%E3%82%92%E5%A7%8B%E3%82%81%E3%8…

Udacity の Machine Learning for Trading の受講を始めた

Udacity の Machine Learning for Trading を受講し始めた。3部構成で、簡単な英語なので、とっかかりもしやすい。 Mini-course 1: Manipulating Financial Data in Python Mini-course 2: Computational Investing Mini-course 3: Machine Learning Algorit…