【ぷ】Pythonで為替データを貯める@1Forge

2018年9月26日プライベートmarket,python,sample,server

image

追記:Javascriptのサンプル公開

追記:国通貨だけじゃ無かった

Pythonでスタディー以外で初めて書いたまともなコードになりますよ。ちゃんとIDLE使った。

(;^ω^)いやー新鮮

【ぷ】PYTHONで為替を取得する@1FORGE

こちらの記事で、サンプルコードを動かしてデータ取得を試しました。

これを、現実に近いところまで持っていきたいなと思い、リファレンス片手にコーディング。60行程度の小さなコードですが、やっぱ、実際に書いてエラーと睨めっこしないと覚えませんね。丁寧に書いたつもりです。Linuxでも問題無いはず

んで、公開するプログラムは、以下の仕様です。

1Forgeから為替データを取得して、ログファイルに貯めていくというモノです。サーバでの定期動作を想定してます。

常に、新しいデータが1行目に来るようにしてます。

貯めるデータ形式は、JSON形式又は、生テキストデータのいずれかを選択できます(どっちかをコメント外す)

また、ログに貯める量を設定できます(10回分とか)あと、jsonパースの際に各処理系でエラーとならないよう、クオートをダブルに変更してます。設定箇所は以下4つ

_path = "  ログファイルまでのパス
_filename = 'market.json’  ログファイル名
_quotes = ['EURUSD’, 'GBPJPY’]  APIに問合せる通貨ペア
_loglines = 3  貯めるログ数
あとAPIキーも忘れずに。

image

json形式の場合は、各取得分を配列として扱えるので便利です。Javascriptからもそのまま利用可能です。json.dumpで保存されてます。

image

(一応、ログ内容をウェブ経由を想定してJavascriptで動作するか簡単に確認はしたぞの図)

image

生テキストの場合は、行毎に泥臭い処理が行えます。こういう形式が好きな人も多いでしょう。各行は独立したjsonコードになります。

※該当部分はコメントにしてるので外してください

Pythonコードのダウンロード(Google Drive)

このプログラムを、Cronなんかで1時間毎や1分毎などに起動させて、各時間足でデータが出来上がります。

それを、JavaScriptで読み込んで、そのままグラフにぶっ込んだりできます。

無料枠は日1000回ですからね。

bidとaskは不要な場合は、これで削除できる。json.loadsの下辺りに。

for vl in js:
     del vl['bid’],vl['ask’]

追記:Javascriptのサンプル公開

image

簡単にですが、Pythonで貯めたデータをウェブからの利用を想定してJavascriptコードサンプルを公開します。参考にどうぞ(念の為テストデータも付けました)

Javascriptコード(JQuery版)(Google Drive)

Javascriptコード(JQuery非使用版)(Google Drive)

テストJsonデータ(Google Drive)

追記:国通貨だけじゃ無かった

何気なくデータ見てたら、各国通貨だけじゃなくて、銀や金の先物、ビットコインとかの仮想通貨のレートも取れますね。

XAG:銀、XAU:金、BTC:ビットコイン、ETH:イーサリアム

などなど。

BTCとか75万ですよ。恐ろしい・・。金は1オンスでのお値段。現在13万円・・。

(;´Д`)

2018年9月26日プライベートmarket,python,sample,server

Posted by nabe