こんにちわ、野良ジニアです。
【2018/01/28 22:30追記】
本記事/ツール は zaif の取引履歴 CSV が提供再開されるまでの代替手段として公開しました。2018/1/26(金)より、公式に CSV が提供再開されています。
公式の取引履歴が良いという方は、こちらよりダウンロードされてください。
公式 CSV が提供再開したわけですが、以下の理由によりツール自体の提供は継続します。
- 公式 CSV のフォーマットが変わってしまった
- 以前は通貨ペアごとにファイルが分かれていましたが、新フォーマットでは年単位で全ての通貨ペアをまとめたファイルになっている
- 買い/売り が bid/ask 表記に変更されている
- 本ツールでは以下の CSV ファイルを出力している
all.csv
: 全ての取引履歴 CSV ※現在の公式 CSV と同等all_jpy.csv
: JPY建ての全ての取引履歴CSVall_btc.csv
: BTC建ての全ての取引履歴CSV(currency_pair).csv
: 通貨ペアごとの取引履歴CSV ※以前の公式 CSV と同等
- 「フォーマットが変わってしまって困っている」「通貨ペアごとのファイルが欲しい」などという方向け
- Cryptactに急いで取引履歴をアップしたい
- オプションで「買い/売り」表記、「bid/ask」表記の出力を変更可能
- 旧フォーマット(買い/売り) 表記で、cryptact にアップロードできることを確認済
- 2018/01/28 22:30現在、新フォーマットに未対応。下記 Twitter の通り、その内対応される予定
- オプションで「買い/売り」表記、「bid/ask」表記の出力を変更可能
<Zaifのお取引履歴のフォーマット変更について>
— Cryptact(クリプタクト) (@Cryptact) 2018年1月26日
Zaifでのお取引履歴のダウンロードが再開しました。ただし以前とフォーマットが変わっていることから、現在tax@cryptactでは新ファイルはアップロードはできません。今後新ファイルに対応致しますので、しばらくお持ちください。
宜しくお願いします。
【2018/01/28 22:30追記おわり】
昨日、こんな記事を書きました。
ですが、やっぱり「Ruby インストールして、コマンドプロンプトで実行して〜…」って難しいですよね。ってことで、Windows ユーザー向けに実行ファイル(exe)作りました。
リポジトリはこちら。
【2018/01/22 09:30追記】
ツールの更新情報やバグ情報
以下に該当する方は、大変お手数ですがツールをダウンロードしなおして、CSVファイルの出力を再実行してください。
- BTC建での取引を行った
- zaif の正式なフォーマットでないと困る
- 例:cryptactで確定申告しようとしている
zaif の BTC建での取引に関して、CSV フォーマットが異なっていたようです。
ZaifからダウンロードしたBTC建てのcsvのフォーマット知りたい……。ツールで書き出したCSVをcryptactにアップロードすると「zaif.BTCTrades: フィールド名が一致しません (フォーマットが変更された可能性があります)」と出る
— ゆるmoyashi△ (@hitoriblog) 2018年1月21日
【2018/01/22 09:30追記おわり】
【2018/01/22 12:40追記】
先日と同環境で動かしてみたところ、all.csvでフィールド名がなぜかズレてしまうようです。個別のBTC建てではズレはありませんでした。取り急ぎご報告ですm(__)m
— あべ (@abksk12) 2018年1月22日
あべさんから連絡頂いて、all.csv の出力にバグがあることが判明しました。週末までPC触れないので週末に急いで修正します。
xem_btc.csv などの個別ファイルは問題ありません。なお、all.csv は本ツールの独自ファイルになります。(なので困る方はあまり居ないとは思いますが
【2018/01/22 12:40追記おわり】
【2018/01/28 22:30追記】
列ズレのバグを修正しました。あわせて以下を変更しました。
all_jpy.csv
,all_btc.csv
ファイルを出力追加config¥zaif.yaml
にaction_english
オプション追加0
指定で「買い/売り」出力、1
指定で「bid/ask」出力
【2018/01/28 22:30追記おわり】
何はともあれ使いたい
github 上にゴニョゴニョ書いてますが、イチイチ見てらんないって方も多いと思うので、ブログ上にも簡単にまとめておきます。基本的に github の README のコピペです。
実行ファイルをダウンロード
このZipファイル をダウンロードして、適当なフォルダに展開。画像は Mac ですが、こんな構成になっています。
API Keyを作る
Zaif の API Key のページに移動。リンクは怪しいから怖いって方は以下の手順で移動。
二段階認証を設定している場合は入力。
二段階認証パス後に現れる Create Key を入力して Create。
名前は何でも良いです。 必要な権限は Info のみ。(勝手に取引されたり、出金されたりする恐れはないから安心ですね!)
作成に成功するとこんな感じ。取引履歴や通貨ペアが多い方は、同じ手順を繰り返して 複数の Key/Secret を作っておく ことをオススメします。
設定ファイルの変更
以下の2ファイルを変更します。
keys¥zaif.yaml
: API Key/Secret を設定config¥zaif.yaml
: 対象通貨ペア を設定
API Key/Secret 設定
keys¥zaif.yaml
をテキストエディタで開きます。
前段で作成した Key/Secret をコピーして貼り付けます。
複数の Key/Secret を使う場合は、 必要数分だけ行数を増やして ください。その際、 必ず Key/Secret の順番が同じ になるようにしてください。
※1番目の Key、1番目の Secret がペア、2番目の Key、2番目の Secret がペア…という感じになっています。写真の例で言うと、key1 = f5..., secret1 = 04...、key2 = bb..., secret2 = 73... という感じですね。
通貨ペア 設定
config¥zaif.yaml
をテキストエディタで開きます。
集計したい通貨ペアを探して 0
から 1
に変更します。
設定するのが面倒な方は all
を 1
にすれば、全通貨ペアを対象に処理しますが、 zaif API の反応が遅いので時間がかかります。 きちんと設定するのをオススメします。
【2018/01/28 22:30追記】
action_english
設定
config¥zaif.yaml
をテキストエディタで開きます。
取引種別を日本語(買い/売り)で出力する場合は action_english : 0
に、英語(bid/ask)で出力する場合は action_english : 1
に変更します。
※日本語(買い/売り) が旧フォーマット、英語(bid/ask) が新フォーマット になります。cryptact に急いでアップしたい方は 0
に設定してください。cryptact さんが対応完了したら 1
でやらないとダメになるかもなのでご注意ください。
【2018/01/28 22:30追記おわり】
CSV 作成!!
get_trade_csv.exe
をダブルクリック!
実行完了後、results
フォルダに CSV ファイルが出力されます。通貨ペアごと、JPY建て全取引、BTC建て全取引、全通貨をまとめたものがファイル出力されます。
念のため、取引履歴ページで内容に相違が無いか確認してください。
後片付け(API Key/Secret の 削除or無効化)
API を使った不正出金など発生しているので、Key/Secret は削除しておきましょう。
Zaif の API Key のページに移動して、二段階認証を実施。
チェックを外して Save するか、Disable を押して削除してください。
お疲れ様でした。
注意事項
- 本ツールの利用は自己責任でお願いします。確定申告で使ったら、数年後に追徴課税来た、とか言われても責任は負いかねます。
- その内、zaif さんが公式にCSVファイルの提供を開始すると思います。不安な方はそちらを待たれた方が良いです。
- API を使った不正出金が発生しているようなので、ツール利用後は API Key/Secret の削除や無効化を必ず行ってください。
- 「このツール使ったら資産とか情報とか抜かれるんじゃないの?」という方は、ソースコード眺めるなりして判断してください。ソースコード読めない(けど疑惑を感じる)という方は利用を見合わせてください。
- 他ツールからコードを流用、かつ突貫で作ったのでコードは汚いと思います。温かく見守ってあげてください。
- 作成者の環境でしか動作確認できていません。環境によってはエラーが発生して、上手く動かない可能性もあります。
- エラーが発生した場合は、github上でissueなり作成するか、@stray_engineerまでご連絡ください。
- 確認環境
- macOS High Sierra v10.13.2
- ruby v2.45.2p198
- gem v2.6.13
- Bundler v1.16.1
- Windows 7 Pro SP1(64bit)
- ruby v2.5.0p0
- gem v2.7.4
- Bundler v.1.16.1
- macOS High Sierra v10.13.2
- 2018/01/16 19:57 現在、現物取引にしか対応しておりません。ご了承ください。
- 信用取引のCSVフォーマットが分かれば、対応するかもしれません。
寄付/投げ銭 大歓迎
このツールのおかげで助かりました、 彼女ができました、 という方は@stray_engineerにチップ投げてくれたり、
以下のアドレスに寄付してくれたりすると大変喜びます。
- BTC : 12Mg188NpkhtborkmW4gN36dxTTsdyvgSQ
- BCH : 12EzzGLuSavWL8YsMZmmeSV3SSU7hQFqtL
- ETH : 0x87b8ba3d2d43206ac7e911800e7b057f9598c27b
- mona : MV9zR6DKhscyhMQYtZgj1x4MjhSnCqwdXT
- XEM :
- アドレス : NAGJG3-QFWYZ3-7LMI7I-QPSGQN-YADGSJ-ZGJRD2-DIYA
- メッセージ : 5ea003c26771adde
【2018/01/22 09:30追記】
ツール利用者の声
ツール利用された方から「無事に取り出せた」との報告を何件か受けてます!中にはチップを下さった方も…ありがとうございます!
@stray_engineerさんのツールのおかげでやっとzaifのcsv取り出せた…。RubyもBundlerも入れ直してもname errorが消えなくて心折れかけたけど、git cloneから再度やったら何故か走ってくれた…。@stray_engineerさんありがとうございました、後ほどxem送らせていただきます🙏https://t.co/DZAuyml8z6
— あべ (@abksk12) 2018年1月19日
Zaif @zaifdotjp の取引履歴csv抽出がまだ死んだままですが、@stray_engineer さんのツールからcsvを生成できました!僕はMacだったせいかガチャつきましたが(笑)、Windowsの方はexeから容易に出来そうです。
— あべ (@abksk12) 2018年1月20日
確定申告に向けてもやもやしてる方は試す価値ありですよ〜😎https://t.co/9lg7H6IoeZ
zaifのcsv、今だダウンロードできないから、
— ナオタカ (@shirennma) 2018年1月17日
さっきRTしたやつ使ってなんとかCSV化できた
keiryで作ったCSVは うまくできなくて、利益の2倍以上の結果吐き出してびっくらこいたが、こっちはたぶん正確に出たhttps://t.co/U80ZVyGfNt
横から失礼します。
— たにぷー (@tanipuupuu) 2018年1月20日
自分も動かせました。
osはwin10です。
exeで取り出せました。
ありがとうございました。
Zaifから取引履歴CSV書き出すやつ、Windows用のバイナリ出ました "【仮想通貨 zaif】取引履歴CSVをAPIで作成【exe化しました】 - 野良ジニアのスクラップブック" https://t.co/VOJuecU4XM
— ゆるmoyashi△ (@hitoriblog) 2018年1月20日
一部、上手く動作していない方もいるみたいです。連絡来てないだけで他にもいるかも…?
素晴らしい!しかし残念ながら自分はresults が吐き出されませんでしたTT
— よしなに (@ananoyoroshi) 2018年1月20日
ナオタカさん、アドバイスありがとうございます。
— 野良エンジニア@はてなLisker (@stray_engineer) 2018年1月20日
よしなにさん、まだ解決してないでしょうか?logフォルダにファイルがあると思うのですが、その情報を貰えると何か分かるかもです。あとはOSとか、rubyなのかexeなのかとか…
リプでのやり取りが気になるようならDMでもOKです。
【2018/01/28 22:30追記】
その後、無事に動作できました!原因は log
, results
フォルダが無かったことでした。zip ファイル中に含めているので、展開すればできるはずなのですが…同じ原因で上手くいかないという方は手作業でフォルダを作成してください。
フォルダを作成したら出来てきました(文字化けはありますが)!!この度は本当にありがとうございました!
— よしなに (@ananoyoroshi) 2018年1月24日
【2018/01/28 22:30追記おわり】
これからチャレンジ(するかも)な方もいらっしゃいます。
来週中に取引履歴CSV無理なら@stray_engineerさんの力借りるぞ!!
— くろすけぽん (@kurosuke_pon) 2018年1月21日
【仮想通貨 zaif】取引履歴CSVをAPIで作成【exe化しました】 https://t.co/XkPiie5POB
【2018/01/22 09:30追記おわり】
よもやま話
exe 作ろうと思ったきっかけ
この方の引用RTから。
お、便利そう!っと思ったけどほとんど普通のひと絶対使えんやろw
— EIKING (@eiking_jp) 2018年1月16日
Rubyインストールしてコマンド入力なんて。。 https://t.co/TJKiU3HJ8L
いちおう、言い訳(?)させてもらうと昨日の公開前から「やっぱ実行ファイルじゃないとキツイよなー」ってのは気にしてました。
僕の心情や検証状況などはこの辺のスレッドを見てもらえると…
どれもプログラミングが(ある程度)できるとか、ITやPCの知識がないと厳しい感じ?(ざっとしか見てない
— 野良エンジニア@はてなLisker (@stray_engineer) 2018年1月16日
初心者にも分かる感じでパッと作ってみよかな。ただ、Rubyから実行ファイル作るの試したこと無いなぁ…ocra とかでいける?記事がどれも古いのが気になる…(´・ω・`)https://t.co/9aHiyMYv9Y
こんな感じかな?ミリ秒は取れんぽかった。問題は「これを(PCやプログラミング良く分かんない層も含めた)みんなが使えるようにすること」か…うーん。 pic.twitter.com/jheuIebaWa
— 野良エンジニア@はてなLisker (@stray_engineer) 2018年1月16日
あと、Twitter には書いてないけど、どこの誰が作ったかも分からん実行ファイルを叩くのって怖くないですか?そういう意味でも、ソースコード公開してスクリプト実行ってのは、(ソース読める人には)ある程度の安心感はあるのかなーと。(って書くと後出し感が半端ないw
まずは neri を使ってみた
MOONGIFTさんの以下記事を見つけたので試したんだけど、上手くいかずに断念。
結局 ocraを使ったらうまくいった
一番最初に ocra が検索に引っ掛かったんだけど、出て来る記事がどれも 2011年とか古い情報ばっかりで避けてました。
突然失礼します。rubyからexeファイル生成するのって、どうやってされました?zaif API使った取引履歴CSV作成ツールを突貫で作ろうとしてまして…https://t.co/0smPhl4jAu
— 野良エンジニア@はてなLisker (@stray_engineer) 2018年1月16日
検索でocraとかに辿り着いたのですが記事が古いので、どうされたのか気になってます(githubチラ見したけど分からず
いくつかハマったものの、無事に exe ファイル作成できました。最初から ocra で試しておくべきだったなぁと後悔。
ちなみにハマった際に参考になった記事を残しておく。
巳2已己のメモ帳 Ocraの豆知識 [環境変数:OCRA_EXECUTABLE 編]
Windows上のRubyでSSL接続時にcertificate verify failedが出る場合の対処 - Qiita
Windows の Ruby で SSL のエラーが出ないようにしたときのメモ。 · GitHub
Mac 版の実行ファイルについて
色々とやってみたけど上手くいかんかったので、Windows版を使うか、Rubyインストールからやるかで対応ください。
EasyWine を試したけど NG
ここを見て、EasyWine でそのまま実行できると楽だなー、って試したのですがダメでした。
なんとなく、32bit/64bit 絡みの問題っぽかった、Windows で使ってる ruby が 64bit 版だからだと思う。rbenv 使ってゴニョゴニョやってみたけど、今度はライブラリの依存関係とかでエラーになり、ここまで時間かける話じゃねーなと諦めました。
Platypus も試したけど NG
https://t.co/eCfCVLsiOx はいかがでしょう?
— MOONGIFT (@moongift) 2018年1月16日
neri についてつぶやいてたら、まさかのMOONGIFTさんからリプライがきました。普通にビックリしたw
Platypus | Sveinbjorn Thordarson | を教えてもらい、EasyWine の後に試してみたんだけど、Bundler 使ってる場合にどうすれば上手く動くのかが分からず。色々とやってみたけど、これも時間の都合で断念。