fx-kirin さん プロフィール

  •  
fx-kirinさん: Wizard In The Market
ハンドル名fx-kirin さん
ブログタイトルWizard In The Market
ブログURLhttp://fx-kirin.com
サイト紹介文システムトレードで生き残っていく術とか。
参加カテゴリー
更新頻度(1年)情報提供9回 / 365日(平均0.2回/週) - 参加 2013/08/27 19:45

fx-kirin さんのブログ記事

  • Python2 から Python3 へのC Extension の移行
  • 最初に追加struct module_state { PyObject *error;};#if PY_MAJOR_VERSION >= 3#define GETSTATE(m) ((struct module_state*)P
    yModule_GetState(m))#else#define GETSTATE(m) (&_state)static struct module_state _state;#endif#ifndef Py_TYPE #define Py_TYPE(o
    b) (((PyObject*)(ob))->ob_type)#endifモジュールの初期化と状態情報を書き換えるinitmyextension 関数など
    の初期状態の関数を書き換える#if PY_MAJOR_VERSIO [続きを読む]
  • Interactive Brokers 証券の Python API を利用する
  • Interactive Brokers 証券とは日本には珍しく自動売買プラットフォームが提供されいてる証券会社で
    す。基本的には全部JAVAで書かれていますが、最近Pythonも公式に対応しました。Python ライブラリの
    入手IB API | Interactive BrokersOur proprietary API solutions let you create your own trading programs that take advantage of ou
    r high-speed order routing and broad mark...Latest版のzipをダウンロードしてください。St [続きを読む]
  • Python 2, Python 3 で更新したファイルを調べてreloadするパッケージを作った。
  • pdbでのデバッグにはreload機能がないIPythonには優秀なautorelaod機能がマジックコマンドで存在していたが、pdb環境で開発する人にとってはreload機能でなかなか便利なものがなかった。Python の reload は使いづらいインスタンスメソッドはreloadしても更新されなかったり、なかなか面倒だった。調べた限り、Pythn3 には reload 用のライブラリが存在しているようだったが、Python2では動かなかったので、自分で作ることにした。 [続きを読む]
  • Python での Log 収集
  • プロジェクトが大きくなるにつれて、プログラムの不備を見つけるのにログの構成、ログデザインを考えることが重要になってくる。上手なログの書き方を覚えれば、プリントデバッグがとても用意になるので、習慣づける価値はある。システムトレードの取引をしていると、サーバーの遅延や分散処理による非同期処理が増えて全体としてのフローが複雑になって、取引残高がずれた時の原因究明が容易ではなくなっていく。その時に、ログを [続きを読む]
  • Rust で Python の拡張ライブラリ作成 と numpy との性能比較
  • この記事は Python Advent Calendar 5日目の記事です。遅れてすみません。Rust で Python の拡張ライブラリを書くなぜRustなのかこの当たりを書いていると時間が無くなりそうなので、割愛したい。ただ、C++に馴染みのあるユーザーで高速に動作するコードを手っ取り早く書いていくにはRustが良さそうであるというのが自分なりの理解。特に、パッケージマネジャー当たりの優秀さはC++にはなくとても助かりそうである。メモリマネジメ [続きを読む]
  • chmod で やらかしてしまったときの対処法
  • メモ書きです。find | xargs とかを普通にやってしまうと、すぐに arguments too long とかいって怒られるので少し厄介。やりたかったのは、間違えて設定してしまっているパーミッションをデフォルト値に戻すというもの。間違えて設定してしまったパーミッションを grep してそれだけをデフォルト値にします。# ホームディレクトリでパーミッションが 777 になってしまっているディレクトリを 755 に戻す。find ~ -type d -exec st [続きを読む]
  • AMD Ryzen & Nvidia GTX 1080 BTO PC 構成・組立と Ubuntu インストール
  • まだググっても、構成例とか出てないので参考になるんじゃないかなと。機械学習用ですが、全然ゲーム用にも転用できる仕様になっています。システムトレードの最適化用PCの追加自前で4 core cpu 4台でいつもバックテストしているのですが、それでは計算が追いつかなくなってきたので、追加でパソコンを購入する必要が出てきました。そのタイミングで Ryzen が発表されたので、早速購入。構成例GTX 1080とRyzen以外は極力、最低価格 [続きを読む]
  • UX21A のディスプレイが壊れたので修理
  • UX21A のディスプレイがぶっ壊れた。画面にラインが入ったり、ディスプレイが揺れたりするようになりました。最終的には真っ黒になって何も表示されないようになってしまった。交換するべきパーツを検討する。とりあえず分解して、パーツを選別する。ディスプレイ部分をここまで分解してみたが、ディスプレイだけを交換するのは難しい様子。上のふたをまるごと交換することにする。ebay でパーツを探す。UX21Aのリプレイス用のパー [続きを読む]
  • Bitvise SSH Server で Windows 上に SSH Server を立てる。
  • Windows 上での SSH Server の候補What is a good SSH server to use on Windows? ? Server FaultIn my spare time I remotely support my wife's office via VPN into a Windows Server. I am about to purchase a wireless broadband serv...以前、OpenSSH で サーバー立てを行ったが、key 認証がうまく行かず諦めた経緯がある。Bitvise SSH Server今回は Server Fault で評価の高かった Bitvise SSH Server を使うことにする。 [続きを読む]
  • Linux Wine に Java 8 JDK を入れる
  • Java JDK をダウンロードしてくるJava SE Development Kit 8 ? Downloads新しくフォルダを作る。$ mkdir jdk $ cd jdkフォルダにダウンロードしてきたファイルを移動exe ファイルを解凍$ 7z x jdk-8u121-windows-i586.exe $ unzip tools.zipJDK, JRE ファイルをアンパックする。$ find -type f | grep '.pack$' | while read __line; do __outjar="$(dirname "$__line")/$(basename "$__line" .pack).jar" echo "$__ [続きを読む]
  • MT4 CopyArray で価格情報を効率よくコピーするには
  • ArrayCopySeriese の使用は避けたほうがいいdouble close[];int size1 = ArrayCopySeries(close1, MODE_CLOSE, Symbol());ArrayCopySeriese で上記のように価格情報を取得してしまうと、 バックテスト時にCloseの配列がとても巨大になってしまうため、致命的なボトルネックが発生してしまう。コピーする配列のサイズを指定する引数も存在しないため、この使用方法しかない。また、価格情報配列をそのままDLLに渡す方法はなさそうで [続きを読む]
  • Python の超お手軽のネットワーク分散コンピューティングライブラリSCOOP
  • SCOOPとはssh とPython の設定を適切にするだけで、簡単にネットワーク間での分散処理が実行できる。ネットワーク分散に対応していないライブラリに便利。関数の処理を分散して行い、返り値をまとめて返してくれる。Core 数に応じた Worker 数の設定が可能Docker との相性が抜群基本動作python 標準の map 関数の使い方で ssh で繋いだ先(ノード)でも分散処理してくれる。multiprocessing.Pool.map のネットワーク処理に対応した版 [続きを読む]
  • Quantopian の pyfolio を単利運用に対応させる。
  • pyfolio は どんなデータを入れても複利運用として計算してしまうので、人によっては望まない検証方法だったりしますよね。今回は mock を使ってそれを解決してみます。daily_result に pandas の daily の収支が入っているとします。mock を使って解決。import mockimport pyfolio as pfdef cum_returns(returns, starting_value=0): return returns.cumsum() + starting_valuewith mock.patch("empyrical.stats.cum_returns", [続きを読む]