Python
データの名寄せに必要な正規化で同僚から neologdn を進められて使おうとしたが、 Python 3.8 に対応していなくて、 unicodedata.normalize() で事足りたけど、3日前に対応していたお話です。 広告 ユーザの入力値とデータベースを照合して最もマッチする値…
今回は、標準出力に文字列を出力する実装に対して pytest でテストを書く必要があり、 unittest.mock と Python のライブラリリファレンスにかかれていた方法を組み合わせたら見事にハマったお話です。 広告 シンプルにするとこんな感じに、標準出力への文字…
これはなにか 現職の社内でこのテーマで書いたが、そちらは社内プロダクトの情報も混じっているので、同じテーマでブログ向けにいちから書き直してみる。 ちょっと長いが、ウェブサービスを運用するならきちんと抑えておきたい。 課題 SPA + HTTP API(概ねR…
前の記事で開発環境を確認したので、次は改善を考えていく。 team-6.hatenablog.jp 広告 エディタ Visual Studio Code から変える気はしばらくないので、これをどう便利にしていくか考える。 設定の同期 仕事と個人の環境で設定を同期しておらず、さらにこの…
サーバを作り直すときに調べたのでメモがてら。 公式に書き方は載っているが、記述が古いので掲題に特化した方法を載せる。 lightgbm.readthedocs.io 前提として、Compute Engine で GPU が有効なインスタンスがあり、そこに pyenv でPython 3.8.6がインスト…
ここ1年はほとんど変わっていないですが、今現在の機械学習による競馬予想で使っているサービスやライブラリについて情報を残しておきたいと思います。 どちらかというと、なぜそれを使っているのかを考え直したり、あわよくばコメントを貰って改善に役立て…
競馬予想のためにJRDBからファイルをダウンロードする際、今日明日の日付のデータを削除しないと古いデータが混ざる問題があったのでメモ。 最初は date コマンドでやっていたがGNU拡張だったようで、macOSのBSD dateではうまくいかないためPython3で再実装…
競馬情報で特定の年以降のレースを絞り込むときの便利な書き方がわかったので紹介する。 dateカラム(datetime型)が2019年以降のデータを選ぶには、ストレートにするとこのような感じになる。 import datetime data[data.date <= datetime.datetime(201…
結局、仮想通貨は逃げるタイミングが遅れてとんでもない負債を私に残していったので、 ボラリティは低いが安定している株取引を粛々とすることにした。 さて、株取引の自動化は厳しいが、せめて売買のタイミングぐらいは自動的に分かるようにしておきたい。 …
BTC・FXのトレード関係の情報をnoteで売るのが流行っている(というかドテンくん)ので、 ちょっとやってみました。 note.mu 前2記事の画面表示機能+Bot機能で900円です。 Botは1コインあたり5000円買って12%で利喰い、-8%で損切りするのを繰り返すだけです…
こんな記事を書いた。 コードを改良したので続き。 team-6.hatenablog.jp team-6.hatenablog.jp 前回のコードをちょいちょい見直したら結構違うコードになった。 追加になったのは、これまでのトレードの利得を最後に表示するようになった点だ。 API呼び出し…
昨日の続き。 team-6.hatenablog.jp 昨晩は全般的にかなり下落していたようで、反発したコインを売りたくなった。 いちいち購入履歴と付きあわせてどのくらい上がったかを計算するのはアレなので、 昨日のスクリプトを改良して以下のように表示されるように…
先日、この記事を書いた。 team-6.hatenablog.jp しかしながら、上昇の見込めない相場での現物取引は儲けが少なく損ばかり、ということで草コインに投資することにした。 Binance のアカウントを作って0.5BTCを投入、AdaやらVergeやらを買って、Binace APIか…
前の記事で約定履歴が手に入ったので、OHLCを求めてローソク図を描画してみる。 team-6.hatenablog.jp from datetime import datetime, timedelta import pandas as pd import matplotlib.pyplot as plt import matplotlib.finance as mpf from matplotlib i…
bitbank の APIを眺めていたら、任意の日付から約定履歴を取得することができることに気づいた。 無限に見られるわけではないみたいだが、cyrptowatch よりも長い期間のOHLCが取得できそうなので頑張ってみた。 こんなスクリプト(batch.py)を書く。 #!usr/bi…
例のZaif だが、拙宅のStreaming APIを403にした件ですでにうんざりだが、 それに加えて混雑のせいでBot のリクエストが通りづらくなっている。 しばらく待ってリクエストする、を繰り返せばいいのだが リトライするべきエラーとそうではないエラー(資産不…
Zaif でオルトコインとビットコインを用いた裁定取引を試しているんですが、 XEM/BTC と XEM/JPYで最小取引量が異なるようです。 curl https://api.zaif.jp/api/1/currency_pairs/all | jq . | less とかすると、各通貨ペアの最小取引量がでるのですが、 MON…
Pyramid 使いたいんですが、最近cookiecutterの記事(参考)がはてブに上がったりしていたので、 Pyramidのものがないか探したらありました。 https://github.com/Pylons/pyramid-cookiecutter-starter あとは、書いてあるとおりにコマンドを打つと作れると…
以下の本を読んだんですが、掲題の通りノンプログラマ必読ですね。 職場の業務効率向上をしたい人はすぐに買うべきです。 退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング作者: Al Sweigart,相川愛三出版社/メーカー: …
先程まで、AtCoder Grand Contest 019 に参加していました。 agc019.contest.atcoder.jp 結局、A, B まで解けたものの、Cの途中で時間切れ、D以降は問題文すら読んでない状況です。 開始直後に宅内のネットワークが落ちたのが痛かった。 以下、各問題の反省…
前記事で書いたとおり、Anaconda でバシッと色んな物が入って嬉しいんですが、一方でAnacondaを使わずにそれをするにはどの程度の労力がかかるのか、試してみたいと思います。 team-6.hatenablog.jp team-6.hatenablog.jp 事前設定 OS は Ubuntu 16.04 64bit…
先日の投稿で、少しフィードバックをいただけた(ありがとうございます!)ので、それに対する反応です。 team-6.hatenablog.jp フィードバックその1 コメント欄より。 引用されていたので反応しておきますと、こういう理由からAnacondaもいまは問題があると…
ちょっと煽ったタイトルですが、これから言いたいことを一言で言うとそういうことです。 またPython環境構築界隈の混沌が深まりそうで申し訳ないですが、自身の中ではそういう結論です。 まず、先に数件の別サイトの記事を紹介したいと思います。 qiita.com …
お仕事的な理由と、bitcoin のトレードに活かせないか、という2つの理由でディープラーニングに手を出そうとして以下を購入した。 詳解 ディープラーニング ~TensorFlow・Kerasによる時系列データ処理~作者: 巣籠悠輔出版社/メーカー: マイナビ出版発売日: …
AtCoder ABC071 に参加しました。 AtCoder Beginner Contest 071 - AtCoder 感想: 以下記事のワンライナーは役に立った。 以下の記事で書いたワンライナーは使いドコロがあったので良かった。 (今回はPython3で臨んだ) team-6.hatenablog.jp 一方で、1行…
前記事でpyenvのインストールについて書いたんですが、 環境を分ける需要があるので、pyenv-virtualenvについても書いておきます。 team-6.hatenablog.jp virtualenv はPythonのインストールされたパッケージの状態(環境)を管理するツールです。 これを使…
以前書いたとおり、Anaconda を asdf-vm でインストールしたところ、Anacondaではない環境ではcurlがフルパス指定でないと使えなくなった。 team-6.hatenablog.jp 別段asdf-vmにこだわる理由はなく、むしろcurlが使いづらいのが問題なので、 pyenvに移行する…
Paiza や AtCoder では、入力がテキストで示されますが、 その型は文字列だったり数値だったりするわけで、 うまい感じにキャストしたいものですね。 scanf的なものが標準であればいいのですが、ないので作るしかありません。 ので、作ってみました。 >>> de…
AtCoder をやってみました。 と言ってもTutorialだけですが。 Python2と3間違えて速攻でRuntimeErrorの表示を頂いてしまいましたが、 そもそもテストしろよな、というのが正しいツッコまれ方かと思います。すいません。 次は8/20の21時からみたいですね。 多…
掲題のとおりなんですが、 非同期に処理結果をコールバックに渡してくるRxPYと、 関数呼び出しの戻り値としてレスポンスを同期的に値を求めるbottle.py は相性が良くないんですよね。 RxPYのexampleには、代わりにWebSocketを用いて(それもbottle.pyのフレ…