スキップしてメイン コンテンツに移動

投稿

[Haskell]Database.HDBC.Sqlite3でSQLite3のデータを読む。

関数型言語のHaskellというものに手を出してみました。 今回は、システムトレードで使っているSQLite3からHaskellで時系列データ(日足)を読んでみます。 備忘録として、コードを上げておきます。 import Database.HDBC import Database.HDBC.Sqlite3 main = do conn c -> String -> IO [(String, String, String, Double, Double, Double, Double, Double)] getHistoricals conn code = do stmt c -> String -> String -> IO [Double] getHistoricalPrices conn code dataType = do stmt

[Python]システムトレード環境

最近、システムトレードをしている。 日本株は、自動売買までは実現できていないが、トレンド分析くらいはできるようになっている。 とりあえず、現時点の環境を整理しておきたい。 ■日本株 H/W:さくらVPS(2GBだったかな?) OS:CentOS6.4(x86_64) 言語:Python DB:SQLite3 データソース: http://www.data-get.com/main/ (有料) データ種別:株価データ、銘柄情報データ、分割併合データ ■FX H/W:DELL T100(6年前のもの)+CPU4コアに換装済+メモリ8GB化済 OS:Windows 7 64bit プラットフォーム:MetatTrader 4 言語:MQL4 取引業者:Alpari Japan ■クライアント H/W:MacBook Pro 13インチ(2010-Mid) 特に不満はないけど、さくらVPSが高い。 自宅のT100は古いけど重い処理をさせるわけじゃない。 そのうちさくらVPSから自宅PCのVirtualBoxかなんかの仮想環境に引っ越す可能性もある。 こんなところ。

[Python]redis-pyでRedis Pub/Sub実装

前から面白そうと思っていたRedisのPub/Sub機能。 redis-pyでどう実装すれば使えるか確認してみた。 ■Pub/Subについて http://ja.wikipedia.org/wiki/出版-購読型モデル ■pub.py from redis import StrictRedis def publish(channel,msg): """ redis-pyにはPUBLISHするためのメソッドがないので、 Redisのコマンドをそのまま実行する為のクラスを使う。 """ sr=StrictRedis() """ 第1引数にRedisのコマンド、第2引数以降は そのコマンドの引数をそのままセット """ sr.execute_command("PUBLISH",channel,msg) if __name__=="__main__": # チャネル"hoge"に"Hello"というメッセージを出版(Publish) publish("hoge","Hello") ■sub.py from redis import Redis def listen(channel): r=Redis() ps=r.pubsub() ps.subscribe(channel) while True: for i in ps.listen(): print i["data"] if __name__=="__main__": # チャネル"hoge"を購読(Subscribe) listen("hoge") ■実行方法・実行結果 (ターミナル1-準備) [user@localhost ~]# python sub.py 1 # => チャネ...

[Python]ポートフォリオの達人ランキング取得プログラム

今日は、投資ブログで公開している三菱UFJ投信主催の「投資にチャレンジ!!ポートフォリオの達人」から毎日更新される運用成績を取得するプログラムを作りました。これまで毎日コンテストの個人ページからコピー&ペーストして作成していた記事の成績部分をプログラムを実行するだけで作成できます。 ■投資ブログの記事 この記事の作成を効率化します。 http://mockuninvestment.blogspot.jp/2013/06/201367.html ■コマンド実行方法 取得したい参加者の個人ページのURLをプログラムに渡してあげるだけ。 python muam_contest.py http://contest.muam.jp/app/ranking/detail?dsp=eac8d83669d6cca1 ■出力内容 コマンド入力後、Enterを押して実行すると以下のフォーマットが出力されます。 2013/6/7更新 ポートフォリオの達人ランキング ========== ランキング(6/7更新):198位 評価額:100,357円 リターン:0.47% リスク:10.63% リターン ÷ リスク:0.04(0.04435225290) ========== http://contest.muam.jp/app/ranking/detail?dsp=eac8d83669d6cca1 あとはブログに張り付けるだけです。投稿用のアドレスにメール送信するプログラムと組み合わせれば、完全自動化できてしまいますね。 ■ソース #!/usr/local/bin/python #coding: utf-8 from bs4 import BeautifulSoup import urllib2,re,unicodedata,sys template=u"""2013/%(date)s更新 ポートフォリオの達人ランキング ========== ランキング(%(date)s更新):%(rank)s 評価額:%(amount)s リターン:%(ret)s リスク:%(risk)s リターン ÷ リスク:%(riskreturnratio)s ========== %(url)s""...

[Python]CentOS+Apache+mod_wsgi+Flask+mongoDBをセットアップしたメモ

毎回調べながら環境構築してたので、メモとして残しておく。 ファイアウォール,SELinuxの無効化 ライブラリ群のインストール Pythonのインストール mod_wsgiのインストール mongoDBのインストール easy_installのインストール Flaskのインストール pymongoのインストール mod_wsgi+Flask設定 ■ファイアウォール,SELinuxの無効化 /etc/rc.d/init.d/iptables stop chkconfig iptables off vi /etc/sysconfig/selinux =====以下の変更を加える===== SELINUX=enforcing ↓ SELINUX=disabled ========== ■ライブラリ群のインストール yum update -y yum groupinstall -y "Development Tools" yum install -y httpd httpd-devel zlib-devel ncurses-devel readline-devel sqlite-devel tcl-devel tk-devel openssl-devel /etc/init.d/httpd start chkconfig httpd on ■Pythonのインストール curl -O http://www.python.org/ftp/python/2.7.4/Python-2.7.4.tgz tar zvxf Python-2.7.4.tgz cd Python-2.7.4 ./configure --enable-shared --prefix=/opt/python2.7 make make install ln -s /opt/python2.7/lib/libpython2.7.so.1.0 /lib64/ vi .bashrc =====以下を追記する===== PYTHONHOME=/opt/python2.7 PYTHONPATH=/opt/python2.7/lib/python2.7/site-packages/ PATH=/opt/python2.7/bi...

[Mac]MacBook Pro(2010Mid)をSSD化して延命。

どのサイトから飛んできたのかコメントで教えてくれると嬉しいです! ========== やっと我が家もSSDの時代になりました。 今回は、元々載っているHDDをSSDに交換し、DVDドライブを取り外したHDDに交換しました。 a) HDD→SSD b) DVD→HDD c) DVD→外付けDVD 追加になるパーツは、SSD本体、DVDドライブの空間にHDDを載せるためのマウンタの二つです。 [左下]インテル SSD 335series 240GB http://www.amazon.co.jp/gp/aw/d/B009SIJ7G8 [上]林檎派 光学ドライブスペース用HDD/SSDマウンタ Macbay2 http://item.rakuten.co.jp/akibakan/10028037/ 早速、分解していく。 ぱか。 左下に見える白いラベルが付いたものが元々入っているHDD。容量は忘れた。SEAGATE製で、小さくアップルのロゴが入っている。 左上の銀色の四角がDVDドライブ。これもごっそり外す。 パソコンが遅いと感じるとき、『古くなった』という人もいるが、ほとんどの場合そんなことはない。趣味で使う程度なら大抵メモリとハードディスクの見直しで改善する。優先順位はメモリ>ハードディスク。 その意味では今回は、優先度を間違えた。メモリも最大容量にすべきところ、ついカッとなってSSDに。 MacBook Proはバッテリー内蔵なので、HDDを取り外す前にバッテリーと基盤とのコネクタを外しておく。 HDDとDVDドライブに繋がるコネクタも外す。 外れた。 分解の詳細はこの辺を見て行った。ありがとうございます。 やさしいMacBookProの育て方 – SSD+HDDで快適生活 http://kray.jp/blog/ssd_macbookpro/ これがSSD。第一印象は、軽い、安っぽい。今はこれが当たり前なんだなー。 取り付けるとこんな感じに。なんかかっこいいw あ、DVDの外し方とか写真を忘れました。すみません。 DVDを取り外して、林檎派のマウンタでHDDを取り付けた結果。若干マウンタが貧相なので不安になったけど、ケースを閉じれば見えないからいいよね。 それぞれ...

[Python]TDNet適時開示情報閲覧サービスから適時開示一覧を取得するスクリプト

現在の案件関係でよく見るサイトなんで、一覧取得してみた。 投資においては、報道が先行することが多いのでわざわざ見る人も少ないと思うけど、見てみると結構おもしろい。 こんなツールを作っている人もいる。便利。 http://www.ninxit.com/blog/2012/10/15/%E9%81%A9%E6%99%82%E9%96%8B%E7%A4%BA%E9%80%9F%E5%A0%B1-for-chrome/ 私のコードもお役に立てばうれしいです。