為替秒足データ作成

概要

・いわゆる前処理
・TrueFX(参考1)にて公開されているミリ秒単位のクオートをもとに秒足データに加工する

NYSOLを使うまで

そもそもなんでNYSOLなのかといいますと、とてもcsvの処理が早いらしい(参考3)
しかもTrueFXからダウンロードできるcsvファイルが月別に1つのファイルにまとめてありエクセルではもはや開けない代物
というわけで実験がてらNYSOLを試してみることに。

で、

NYSOLはなんとまさかのUNIX環境のみの提供だったのでWindowsでは動かない。
Cygwin環境ならインストールできるかなとも思ったりしましたが

屋上へ行こうぜ…キレちまったよ…という感じだったので大人しくLinux環境(今回はUbuntu)を整えるの巻
今回はVMware Playerを使って仮想マシンをセットアップしました。詳しくは参考サイト4を参照ということで。

NYSOLのサイトにはUbuntu 12.04まで動作確認されていると書いてありますが、私の環境(14.04)でも特に問題なく動いています。

コード

シェルスクリプトにまとめています。
やっている内容としては、1行目でTrueFXからダウンロードしてきた対象csvを指定し、秒毎に終値を取得して秒足チャートとしています。
4本値はめんどくさくて取ってないよ。
私の環境では今回のファイル(147万行ほど)の処理に5秒ほどですね。速度は比較してないのです。速さはどうなんですかね、ようしらんけど。

1箇所ハマった点としては、TrueFXからダウンロードできるcsvの改行コードはCRLFである一方、nysolで対応しているのはLFのみ。
1行目でNYSOLが処理できるようにcsvの改行コードを修正しています。

また、NYSOLは秒単位までにしか対応していないので、日時と時間をパースしたりらじばんだりというのが2行目以降。
9行目で欲しい項目だけを選択してoutput.csvに吐き出しています。

結果

ということでめでたく秒足のbidサイドをまとめることができましたというお話でした。

Image

感想

NYSOLは各処理のアウトプットをパイプ(縦棒記号 |)でつなげてチェーンすることができるので文法が分かってくるとやりやすいですね。
ただ一方で純和製ソフトなのか知名度が低いのかよく分かりませんが公式サイト以外にネット上に文章が無いのが調べにくいですね。

ちなみになんでこんなことをやってるかというと、秒単位のデータはリバーサルが効きやすいというのを聞いたからです(参考5)
さらにちなむと、この動画ではマイクロ秒ではモメンタムが効きやすいって話もしていますので、誰か分析はよ!という感じですね。

ついでにちなむとTrueFXというサイトを知ったのは参考6の書籍からでした^^

参考

TrueFX — Tick-By-Tick Real-Time And Historical Market Rates, Clean, Aggregated, Dealer Prices
https://www.truefx.com/?page=frontpage

NYSOL
http://www.nysol.jp/

#TokyoR 39 高速に前処理するNYSOL
http://www.slideshare.net/SatoshiKitajima2/nysol-tokyor39

Ubuntuで作業環境を整えよう
http://www.aise.ics.saitama-u.ac.jp/~gotoh/HowToUbuntu.html

Algorithmic Trading and Machine Learning | TechTalks.tv
http://techtalks.tv/talks/algorithmic-trading-and-machine-learning/60847/

Amazon.co.jp: 金融データ解析の基礎 (シリーズ Useful R 8): 高柳 慎一, 井口 亮, 水木 栄, 金 明哲: 本
http://www.amazon.co.jp/dp/4320123719

  • cygwin Nysolで検索したら、このページにたどり着きました。Nysolプロジェクトの関係者です。数行のスクリプトを見ただけですが、きっちりNYSOLをご理解して使っていただいているようで嬉しく思いました。つい先日Nysol2.1がリリースされてcygwinでNysolが利用可能になりましたので、もしよければまたcygwinでもお試しください。

    • Nekopuni

      コメントありがとうございます!csvをサクッとパースする際にNYSOLは重宝しております。
      ブログも拝見しました。次の機会にWindows+Cygwin環境でも試してみたいと思います!