自動売買システムの構成と板シミュレーター
kabuステーションAPIを使った自動売買システムの構成と、集めた気配情報の過去データを使って板の動きをシミュレーションするツールについて書いてみます。
kabuステーションAPI
auカブコム証券が提供している、銘柄や気配情報の取得や発注ができるAPIです。
REST APIとPUSH APIの2つがあり、自動売買をする場合はPUSHで気配などをリアルタイムで取得しながら、RESTで発注したり、注文約定結果や残高を確認したりします。
GitHubにPythonなどのサンプルコードが公開されているので、簡単に試すことができます。
気配だけでなく歩み値も同時に取れたら、もっと柔軟にアルゴ開発できるのですが、こちらは今後対応予定とのことです。
自動売買システムの構成
PUSHで取得したデータをDBに保存しつつ、分析や発注をしたいので、以下のような構成にしました。
- PUSH APIを使いkabuステーションから気配情報などをリアルタイムで取得。
- 1で取得したデータをUbuntu上のRedisに配信。ここではRdisのPub/Sub機能を使っています。
- FlaskでRedisのチャネルにSubscribeしてデータを受け、
- MySQLに保存します。
- 一方、2で配信したデータは、1とは別プロセスのFlaskでSubscribeしていて、ここで分析などをして、
- 発注処理や注文約定残高の確認をします。ここのFlaskではデータのやり取りが頻繁に発生するので、asyncioを多用してできるだけ遅延が少なくなるように工夫しています。
板シミュレーター
裁量で取引をしていて思うのは、気配の数量が何株増減したのかわかればいいのになあということです。
普段はkabuステーションか松井のネットストックハイスピードを使ってますが、数量が変化したとき色は変わりますが、増えたのか減ったのかは表示されないですよね。
アルゲンタムコードのBRiSKは増えたか減ったかはわかりますが、何株増減したかはわかりません。
自分で数量記憶しろって話ですが、最良気配近くのは覚えられるとしても、ミリ秒単位で変化し続ける20本の気配を記憶するのは自分にはまだ無理そうです。(うまい人は記憶してるんですかね?)
これが板シミュレーター作った理由です。
増減は表示後フェードアウトするようにしました。あと、値段の列をダブルクリックすると仲値が中心に来るようになってます。
買と売の列の色表示はなぜか表示されるときとされないときがあります。データの更新に処理が追い付いてないんですかね。BRiSKでも表示されないときありますよね。似たような理由なのかな。比較するのもおこがましいですが。。
こういうのは処理速度が肝心なので、本当はQtでデスクトップアプリとして作ろうと思ったのですが、作ったはいいけど実際使わない可能性(あるある)もあるので、まずはブラウザで動くのを作りました。
役立ちそうなら、Qtで作り直そうと思ってます。
Discussion
カブコムAPIのから独自の板シュミレーター製作を検討しております。製作はできますか?
どの程度のものかによりますが、検討は可能です。
始めまして多賀と申します。
エクセルのイメージ表を送りたいのですがメールアドレスを教えてもらえますか?
当方は URLが不正です です。宜しくお願いします。
訂正です。
始めまして多賀と申します。
エクセルのイメージ表を送りたいのですがメールアドレスを教えてもらえますか?
当方は ztec.fax@gmail.com です。
宜しくお願いします。
ありがとうございます。メールアドレスはkujira.capital@gmail.comになります。よろしくお願いいたします。
ありがとう御座います。
追って添付します。
お世話になります多賀です。
質問1,
案件提出する前に機密保持契約(製作物の販権は依頼主)を交わせますか?
質問2,
自動売買する場合はカブコム、楽天等どこの証券会社がよいですか?
メールにてご回答しました。以後のやり取りはメールにてお願いいたします。
こんにちは。カブコムAPIを使って独自の取引ルールを自動化すたいですが製作は可能ですか?
簡単なルールですので可能であればPDFを送らせて頂きます。
よろしくお願いします。