DEVGRU

プログラミングと競馬予想について書きます

Programming

プロコンで役に立つかもしれないPythonのワンライン関数

Paiza や AtCoder では、入力がテキストで示されますが、 その型は文字列だったり数値だったりするわけで、 うまい感じにキャストしたいものですね。 scanf的なものが標準であればいいのですが、ないので作るしかありません。 (adsbygoogle = window.adsbygo…

Paiza のA問題が解けない

恥を忍んで書くが、PaizaのA問題が解けない。 paiza.jp (adsbygoogle = window.adsbygoogle || []).push({}); 挑戦したのはこれ。 paiza.jp 解法はわかっているつもりだが、計算時間とメモリサイズの制約に引っかかってジャッジが通らない。 最悪ケースのチ…

RxPYとbottle.pyは組み合わせがあまりよくなさそう

掲題のとおりなんですが、 非同期に処理結果をコールバックに渡してくるRxPYと、 関数呼び出しの戻り値としてレスポンスを同期的に値を求めるbottle.py は相性が良くないんですよね。 (adsbygoogle = window.adsbygoogle || []).push({}); RxPYのexampleには…

RxPYよさげ

いま仕事でRxJava使ってAndroidアプリ作っているんですが、 並列タスクを記述しやすくてとても良いですね。 RxJavaリアクティブプログラミング作者: 須田智之出版社/メーカー: 翔泳社発売日: 2017/03/08メディア: Kindle版この商品を含むブログを見る (adsby…

bottle.py のアプリケーションを Dockerで動くようにする

Jupyter Notebookで書いたロジックをAPI化するためにbottle.pyを使用したが、それをDockerで動くようにしてサーバにデプロイした。 例えばこんなmain.pyがあり、その横にbottle.pyがあるとする。 main.py from bottle import route, run, template @route('/…

asdf で Anacondaを入れたらcurlが使えなくなって悲しい

いろいろと言語処理系を使うので、asdfを使っているが、Anacondaを入れると、curlがおかしくなる。 github.com 具体的には、curlという名前のshimが作られるが、Anaconda以外のPythonを使っている時にはshimがどこも差さないので、 エラーとなってしまう。 $…

SAKURAのVPSで、ufwを使いやすくなった(らしい)

以前ブログで、SAKURAのVPSで、ufw使う方法を書いた。 team-6.hatenablog.jp やはりというかみんな困ってたらしく、2017/7/24 にこれが追加された。 vps-news.sakura.ad.jp ufw 以外にDockerのインストールもスタートアップスクリプトとして使えるように用意…

外形監視はUptime Robotがいいらしい

ってGoogle先生が言ってた。 blog.adachin.me blog.shiftky.net Elasticsearchのサーバが死んでいると嫌なので、外形監視を入れた。ついでにこのブログも。 Mackerelは無料プランだと外形監視できないので、これは嬉しい。 問題は他のNode.jsやGoやbottle.py…

bitcoin のシステムトレードをしている 〜2017/08/08の時点の話〜

bitcoinのシステムトレードをいろいろしているが、 エンジニアとして楽しいのはOHLC求めてテクニカル指標出して、あたりまでで、実際の売り買いとなるとそんなに結果が出なかったりするので、 またすぐに改良と称して最初の部分から作りなおしてしまっている…

coincheck の WebSocket API をNode.jsから使う。

一瞬落ちていたcoincheck の WebSocket API だが、 REST APIと違ってポーリングの必要がなく、システムトレードを行うためのデータ収集には欠かせない。 結構簡単なので、以下にメモがてらコードを記載する。 Node.js v7.3.0 で、npm -i ws している。 const…

coincheck の WebSocket APIが落ちているような

表題のとおりだが、ブログ等でサービス障害に上がっていない。 サービス提供者としてそれはどうなんだろうか。 coincheck.com 以下のコードをFirefoxやGoogle Chromeの開発ツールのコンソールから打ち込むと簡単に状況が確認できる。 2017/08/07 2:14現在、5…

bitcoin の取引履歴を貯めるには、Elasticsearchが一番かもしれない

システムトレードでは、取引履歴を蓄積して、そこからレンジバー作って各種テクニカル指標を求め、エントリーの判断を行う。 筆者の環境では、各マーケットのストリームAPIから取得した情報をPostgreSQLに蓄積していたが、 非常に重くなってしまったので、El…

bitcoin 取引所API比較

結論から言えば、bitFlyer が最高(ただし、手数料がかかるので、トータルでは最悪)。 (adsbygoogle = window.adsbygoogle || []).push({}); Zaif ZaifAPI ドキュメント — Zaif api document v1.1.1 ドキュメント 使用感: 最悪 Zaif のAPIはマーケット価格…

機械学習でビットコインマーケットのトレンドをわかりやすくする

coincheck,zaifを対象にトレードを行っていたが、いきなり500〜1000円高い価格で約定してまた戻る、という厄介な動きをすることがある。 通常の時間足ならよいが、今はレンジバーを使っているため、これのせいで足が余計に生え、各種指標も乱れる。 (adsbygo…

Zaif のstreaming APIをNode.jsでウォッチするときの注意

Zaif の streaming APIを用いて価格情報をNode.jsでウォッチするときにハマったのでメモ。 Zaif の streaming API はWebSocketで価格をpush通知してくれるものだが、 Node.jsの websocketパッケージではどういうわけか通知が来ない。 coincheckの同様のAPIは…

bitcoin と Etheriumのシステムトレードを実装した。

bitFlyer lightning でbitcoinとEtheriumのシステムトレードシステムを実装した。 BotはPython3で実装した。 アルゴリズムは「シンプル戦略」を採用し、上昇相場で売り、下降相場で買う、という単純なものに落ち着いた。 「シンプル戦略]についてはこちらを…

bitcoin のシステムトレードに必要なテクニカル指標を計算してプロット

bitcoinに限らず、システムトレードをするにはテクニカル指標を計算する必要がある。 さらにトレーディングアルゴリズムを考えるなら、可視化は必須である。 (adsbygoogle = window.adsbygoogle || []).push({}); 今回、テクニカル指標の計算が無事にできた…

Docker のGUIツールを使わなかった話

今実装中のBitcoinシステムトレードのシステムは、複数のDockerコンテナで構成する。 まさか1つ1つ立ち上げていくわけにも行かないので、オーケステレーションツールを使うが、 稼動状態を見るGUIが欲しくなったのでいろいろ試した。 Rancher rancher.com …

SAKURAのVPSで、ufwを使う

Amazon ECSはやめて、さくらのVPS上にDocker環境を構築することで、コストを下げることにしたが、 ファイアウォールの設定でひどくハマってしまった。 blog.mogmet.com さくらのVPSでufwを使うためには、まず/etc/iptables/iptables.rulesを削除し、さらにイ…

bitcoin の価格情報をAWS上のDBに投入するシステム

掲題の通り、bitFlyerから降ってくるbitcoinの価格情報を、AWS上に立てたPostgreSQL上に投入するシステムを構築した。 複数のサービスを立ち上げるため、AWSのECSを使用した。 これは、Docker コンテナをデプロイできるサービスである。 製品の詳細 - Amazon…

bitcoinシステムトレードをする

このブログでは初めての記事になる。 通常のプログラミングネタはQiitaに書くが、 bitcoin絡みはこちらに書く。 余談だが、これを書いている前日ぐらいにbitFlyerではBTCJPYが340,000から200,000で暴落、その後300,000まで回復している。 通貨としては安定し…