JAVAで株ロボを作成し、サーバーにおいて運用したいと考えております。証券会社へはAPIで接続し、売買を自動でしたいと思います。

(サーバーで運用するのは、家のPCだと途中でハングアップしたり、回線が切れることが頻発するからです。)
このようなことをするために、参考となる文献やホームページを探しています。

実際に実行していらっしゃる方、
詳しい方の情報をよろしくお願いします。

回答の条件
  • URL必須
  • 1人3回まで
  • 登録:
  • 終了:2007/03/07 22:47:52
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答6件)

id:sadajo No.1

回答回数4919ベストアンサー獲得回数49

id:mk148

早速の回答ありがとうございます。実は、この本に触発されて、やってみようと思いました。ただ、具体的なことについては、余り書かれていませんでした。なお、よく似た名前のスーパー株ロボという本も読んだのですが、今ひとつでした。

2007/03/04 17:11:40
id:andalusia No.2

回答回数134ベストアンサー獲得回数12

ポイント18pt

カブロボSDKは使わないで、証券会社が提供するAPIと、あとは自力で全て実装すると言う前提ですよね?

一般的には、サーバサイドJavaアプリケーションとして実装すれば簡便だと思います。アプリケーションコンテナ(例:Tomcat)上であれば常時VMが起動している状態なので、あとはその上で自律的に動くような仕掛けにすればいいと思います。

書籍は一般的なサーバサイドJavaの本でまずは十分と思います。

速習サーバーサイドJava (C MAGAZINE)

速習サーバーサイドJava (C MAGAZINE)

  • 作者: 古川 正寿
  • 出版社/メーカー: ソフトバンククリエイティブ
  • メディア: 単行本

あと、証券会社へ接続する際に使うAPIのプロトコルが何なのか不明ですが、ここらへんのクライアントとしての機能がいりますので、不慣れであれば詰まるかもしれませんね。そもそも、APIで発注できるような証券会社って現在まだないような・・・現時点でやろうとすると、Jakarta Commons HttpClientなどを使ってスクレイピング的にやるしかないのではと思います。

http://journal.mycom.co.jp/news/2005/12/21/040.html

id:mk148

早速の回答ありがとうございます。いやー、こんな回答を期待してました。期待以上で、ちょと内容が難しいです。なお、会社の具体名はインタラクティブブローカー(IB)です。なお、カブロボSDKを使う場合も、可能と考えて良いでしょうか。再度の回答希望します。

2007/03/04 17:53:14
id:hamster001 No.3

回答回数474ベストアンサー獲得回数14

id:mk148

この回答はひどすぎる。

2007/03/04 18:40:13
id:andalusia No.4

回答回数134ベストアンサー獲得回数12

ポイント26pt

http://www.interactivebrokers.com/ ですか。世界には、APIを提供していて、かつ日本株の売買ができる会社があるんですね。知りませんでした。


こちらの会社のAPIの仕様を見たところ、通信部分まで含んで面倒を見てくれるようなので、普通にローカル(レンタルサーバ上)でクラスやメソッドを呼び出せばいいようです。さほど難しくはないように(ぱっと見た限りでは)思います。サンプルアプリケーションのソースもついているので、API呼び出し部分はこれを参考にすればいいと思います。

ただし、かなりシンプルな売買関係のAPIしか用意されていないようなので、カブロボレベルのことをしようとすると、過去の株価データや各種指標の計算ルーチンなどを自前で用意しないといけないかと思います。


カブロボSDKは、カブロボ参加規約にひっかかるので残念ながら使えないものと思われます。

http://www.kaburobo.jp/docs/terms.jsp

将来商用化を目指しているようなので、そのときまで待てばカブロボSDKも使えると思いますが、まだだいぶ先のことでしょうね。

id:mk148

再度のご登場ありがとうございます。非常に丁寧なご回答ありがとうございます。わざわざAPIの使用まで見ていただいたとは。勉強させていただきます。

2007/03/04 19:12:19
id:kuippa No.5

回答回数1030ベストアンサー獲得回数13

ポイント23pt

こんにちは、何かものすごく難しいことをやろうとしていますね。

現時点でこれを個人レベルでやるのは困難です。

すくなくとも証券会社やそれに追従するレベルの協力会社が必要になります。もしくはすべて自前で組み立てるだけの能力が必要です。それくらいの能力があればAPIがあるなしに関係なくシステムを構築できます。

そのような方面の能力がないのであれば自前で構築しようとせずに既存のシステムなどを流用するのが一番よいかと思います。


インタラクティブブローカー(IB)さんはこちらですか?

http://www.multicharts.jp/ib/index.php

( ´゚д゚`) 口座作成に20万円。。。なるほどシステムを貸し出しと。。

なるほど…。なんか言いたくなりましたが黙ります。


日本国内だとGMOインターネット証券がいまAPI公開に向けて動いているという情報があります。https://sec.gmo.jp/


一般的に「カブロボ」と呼ばれているのはマネックスとトレード・サイエンス株式会社が開発しているシステムトレードプログラムです。

http://www.kaburobo.jp/

これもまだ一般の方が実運用に活用できるまでにはまだしばらく掛かります。

ようやくテスト10台が5億の運用資金を持って市場にのったばかり。

ちなみにカブロボSDKを使ったからといって実際のトレードができるものではありません。SDKが機能を提供してくれるのでテクニカル指標などの計算は手軽になりますが、SDKがアクセスするのはあくまで運用コンテストなどの環境で市場ではありません。つまりSDKをつかってもまだ取引はできません。

カブロボは将来的には連結をめざしていると思います。自分もなんどかこのコンテストで受賞させていただいているので少し内情は知っていますが、まだ実運用に向けてがんばってる最中です。もし実運用化が一般公開されたときに私のロボットがあったらちょっと贔屓してくださいw



現状の環境でおこなえる平たい案をいくつか提案します。

・エクセルマクロで過去の株価を集計してアラートを出す。

株価の取り込みだけが少し厄介だけどこれが一番現実的。エクセルがSQLになっても同様。

自動売買をしたいのであればカブ.comなど証券会社が提供する逆指値的な処置が一番手間なし。


・完全自動売買

APIを利用せずにネット証券のホームページを自前でコントロールするアプリをつくった方が簡単。

ネット証券への注文をおこなうレベルであればその程度ならあまりプログラム知識がなくてもできます。ただ、セキュリティの問題からあくまでローカルで動作するアプリです。


・サーバ

> 家のPCだと途中でハングアップしたり、回線が切れることが頻発する

これは・・・

こういう事態を忌避してサーバーを借りてそれを回避しようとしているのであれば何か間違っているように感じます。




1日5分で超カンタン!“株&日経225”システムトレードで大儲けする本

1日5分で超カンタン!“株&日経225”システムトレードで大儲けする本

  • 作者: いちのみや あいこ
  • 出版社/メーカー: 扶桑社
  • メディア: 単行本

導入としていちのみやあいこさんあたりの本を進めておきます。

ベースは抑えてあるのでそれなりの腕があればここから改造するのが早いでしょう。



もし、本当に自立思考型のロボットを作成したいのであれば、

・MBA、中小企業診断士関係のバリュエーションの評価計算法

・基本的なプログラム言語(なんでも可。再帰になりがちなので、クラスが使えるものがよい)

・SQL(テクニカル計算を一発で抜こうとすると計算が厄介なので、ストアドが組めるもの。またそのレベル。証券会社が将来そこらへんのAPIを公開した場合はこの知識は要らない。)

・システム環境(アウトソースも可。だがあまり意味は無く動けばよい。)

ここらへんの知識とそれを具体化する腕前が必要になります。

(個人的には誰かがつくったのに後乗りするのが早いかなと。)


そういえば、mixiにシステムトレードのコミュがあったかな。

http://mixi.jp/view_community.pl?id=101914

id:mk148

本当に細かくまで、お考えくださってありがとうございます。実際のところ、だいぶ難しそうなのですね。(心の中では難しいかもって、おもってましたが。) ご推薦の本の方も読ませていただきます。ありがとうございました。

2007/03/04 19:16:01
id:andalusia No.6

回答回数134ベストアンサー獲得回数12

ポイント23pt

いちおう、5の方にちょっと補足(&反論も)しておきます。


> APIを利用せずにネット証券のホームページを自前でコントロールするアプリをつくった方が簡単。

これが私が1で言っている「スクレイピング」です。

これも現実的な案だと思います。

Javaであれば、Jakarta Commons HttpClient といったオープンソースのライブラリで、比較的簡単に可能です。


> こういう事態を忌避してサーバーを借りてそれを回避しようとしているのであれば何か間違っているように感じます。

安定した回線や、物理的サーバ環境(温度や湿度)、無停電電源などを考えれば、これこそ「誰かの作ったものに後乗り」するほうがよいケースがあると思います。

また、レンタルサーバを借りるからと言って、セキュリティ面が劣ることはありません。一般に公開しなければ良いだけですし、自宅でもセキュリティに気を配る必要があるのは同じです。

もちろん、それだけの投資がペイするかどうかはボリューム次第という面はあります。


>・MBA、中小企業診断士関係のバリュエーションの評価計算法

そういった、いわゆる「ファンダメンタル」な投資手法が本筋とされているのはわかりますが、それで必ずしも市場で勝てるものではありません。

MBAでは決して習わないような、罫線分析に代表されるいわゆる「テクニカル」な手法もありだと思いますし、実際、カブロボではテクニカルな手法で好成績をあげることができたとされています。

http://www.itmedia.co.jp/enterprise/articles/0503/18/news107.htm...


あとは、まぁ一般論ですが、後乗りするほうがもちろん簡単ですが、コモディティ化した後では差別化ができない。ということで。まずは(投資を抑えて)ホームサーバでチャレンジしてみるのも悪くはないと思います。Tomcat等はすべて自宅のWindowsPCでも動きますし、そのままの環境でレンタルサーバに持っていけます。

id:mk148

再度のご登場ありがとうございます。オーダー1つ出すことひとつとってもいろんな方法があるということが分かってためになりました。それにしてもandalusiaさんの知識はすごいですね。いくつか分からないことばもあり、勉強せねばと痛感しております。丁寧なご回答、たいへんありがとうございました。

2007/03/04 23:58:27

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません