Marketceteraを使ったオンライン証券取引システムを開設しよう♪
書き掛けだった http://d.hatena.ne.jp/masayang/20071107/1194473175 に加筆修正。
SourceforgeにてMarketcetera Trading Platformなるものを発見。
Marketceteraとは?
詳しくは公式サイト(英語)を参照。
- 取引所・ECN・証券会社などに接続し、株価データを取得したり、株式売買の注文をしたりできる。
- 複数の取引口座を設置し、それぞれ個別でポジションを管理できる→証券会社と同じような事ができる
- 取引画面はWebベースのものと、Eclipseベースのものとがある。後者はスクリプトによるプログラミングが可能→機械化した取引が可能
- 上記フィーチャは全てオープンソースの部品で提供される
いきなり本物の取引所や証券会社とつなぐのは大変なので、Marketcetera側がテスト用の「取引所もどき」を用意してくれている。ありがたい。
Marketcetera構成
動作環境
入手方法
- OMS+Tradebase
- VMWare(Version 6)上で動作するインストール済セットを使うのが楽。どうせ本当に証券取引するわけじゃなし。
- Marketcetera TracからMarketcetera VMWare Appliance 0.4.1 (208MB)を入手[*1]
- Photon
- Marketcetera Tracから、使用する環境に応じたPhoton(win32/linux/macos)を入手
OMS設定
VMWareを起動して、ダウンロードしたOMS/TradeBaseを立ち上げる。といってもLinuxのコンソール端末が立ち上がるだけ。
marketcetera/marketceteraでログインできる。rootにはsudo su -で。
そして、入手したSenderCompIDを説明書通りに設定し、VMWareを再起動すればOMSが起動される。
Tips: loginプロンプトで ifconfig と打つと(パスワード不要)IPアドレスが表示される。
Tips: loginプロンプトで status と打つと(パスワード不要)各プロセスの状態が表示される。
Tips: いちいちVMWareのコンソールに切り替えるのは面倒なので、puttyなどを使ってsshでログインするとよいかも。
SenderCompIDの入手
Marketceteraが用意する「なんちゃって証券取引システム」につなぐさいにSenderCompIDという識別子が必要になる。
登録ページから利用者登録すると、SenderCompIDがメールで送られてくる。送られてきたSenderCompIDを
/opt/marketcetera/platform/conf/oms.xml
を編集して登録する。
<bean id="defaultSessionID" class="quickfix.SessionID"> <constructor-arg value="fixVersion"/> <constructor-arg value="送られてきたSenderCompIDをここに入れる"/> <constructor-arg value="MRKTC-EXCH"/> </bean>
登録したら、OMSを再起動。
# /etc/init.d/oms restart
Photon設定
Photonを起動。メニューのEdit->Preferenceを選択し、設置したOMSにつながるようにする。JMS Server URLのIPアドレス部分をVMのIPアドレスに入れ替えればよい。
トレーディングごっこ
Photonから、OMSを通じて「なんちゃって取引所」の時価情報を入手したり、株やオプションの注文をだしたりできる。でも、「なんちゃって取引所」なので損もしなければ儲かることもない。
上記は株の発注画面。左のグラフはWebブラウザでGoogle Financeを呼んでいるだけ。ここは改善の余地あり。
上記はオプションの発注画面。「なんちゃって取引所」にはIBMのデータしかないので、あまりおもしろくない。また、この画面からは単純なオプション発注しかできない。合わせ技(カバードコールとか、ストラドルとか)は、Photonの「スクリプト機能」を活用する必要あり。
どうでも良いこと
PhotonもOMSもまだまだ「おもちゃ」みたいな感じがするけど、継続して注目したい。米国の場合、証券取引所(あるいはECNなど)と取引者の間はFIXプロトコルでつなぐことになっている。そしてFIXプロトコルは公開されている。プロトコルが公開されれば(そして参加者が増えれば)、そこにオープンソース製品が誕生する可能性がでてくる。MarketceteraのOMSはまさにそれだ。
証券会社が自らMarketceteraを使うかどうかは微妙だけど、機関投資家がMarketceteraをベースに取引システムを組んでいる事例もあるらしい。この場合、「中間介在業者」としての証券会社は不要、ということになる。オープンソース製品が既存ビジネスを破壊していく、という事例になるのでは。
*1:MacではVMWare Fusionを使った