menu_bar

がんばれ KabuRoboコンテスト
最終更新日:2007/12/25 02:01
訪問者:人
Kaburobo コンテストとは、JAVAで作った株売買ロボットが、1ヶ月のコ ンテスト期間中に株の売買を行って、「一番儲けたロボットが優勝する」という、わかりやすいコンテストです。

ここでは、JAVAプログラムでロボットを作成する人向け(中級者/上級者向け)に、関数の一覧情報などと、バグ情報を提供いたします。
なお、本ページは、うめぷ が勝手に作成したもので、KabuRobo.jp コンテスト 主催者とは関係 がございません。
また、2004年10月5日の Version 1.2.3 を基に本ページを作成しております。


はじめに:

インストール方法、および設定方法は、
http://kaburobo.jp/howto/veterans.html
に、詳細に、書かれていますので、リンク先を御覧下さい。

また、以下に提示する サンプルプログラムは、http://kaburobo.jp/howto/makerobot.html に記載されているコンパイル方法と、同様と致します。



利用可能な関数

株が売買可能なロボットは、 主催者が作成した Robot Class の派生 Class となります。

Kaburobo コンテストで利用可能な主催者側が用意した関数:関数一覧 



サンプルプログラム

  1. sample01.java 前日の株価などの情報を取得します。(バグ情報 1)

  2. sample02.java 前日から200日前までの株価情報を表示します。(バグ情報 1)

  3. sample03.java 前日のFFレート、10年国債、公定歩合を表示します。(バグ情報 2)

  4. sample04.java 前日から100日前までのFFレート、10年国債、 公定歩合を表示します。(バグ情報 2)

  5. sample05.java 業績・財務情報を表示します。(バグ情報 3)

  6. sample06.java 前日の株価変化率を取得し、順に表示する (バグ情報 4)

  7. sample07.java 株の売買 サンプルプログラム / 前日が下がったら、今日は買ってみる (^_^)

  8. sample08.java スタックオーバーフロー? 売買成立順序について (バグ情報 5)

  9. sample09.java RSI の計算サンプル

  10. sample10.java 行列のサンプル
    Kaburobo での行列は、0に一番古い情報が格納されます。詳しくは、サンプルプログラムを眺めてみてね。
    (これに、気がつくのに時間がかかったよ...)






既知のバグ及び仕様?情報

0.タイムゾーン
欧州タイムゾーンで、JAVAプログラムを行うと、時間ず れが発生するので、日曜日に、日本時間 月曜日の売買結果を表示し、金曜日は、お休みになります。 Version 1.2.2 で修正されました。

1. 株価情報の限界
株価は388日前までしか、ありません。
PER等は、正確ではありません。2週に1回程度の再計算です。
Version1.2.3 で 2003年4月1日からのデータで統一されました。

2. 金利情報の限界
FFレート、10年国債、公定歩合は、163日前までし か、ありません。
Version1.2.3 で 2003年4月1日からのデータで統一されました。

3. 単位が不明
業務・財務情報は、円単位となっていますが、多分 万円 単位でしょう。
(まさか、設備投資が 16695円の会社があるとは 思えません)
Version 1.2.2 で修正されました。

4. 株価変動率の計算結果がおかしい
DAY 1: 2004/04/01 木
資金: 10,000,000pts 取引可能金額: 10,000,000pts

花王 化学 初値: 2390 安値: 2380 高値: 2435 終値: 2435 増減: 45 ランク: 4.3
積水ハウス 建設業 初値: 1220 安値: 1195 高値: 1242 終値: 1215 増減: -5 ランク: 4.1
アサヒビール 食料品 初値: 1189 安値: 1182 高値: 1217 終値: 1213 増減: 24 ランク: 3.0
・・・
サンプルプログラム(sample06.java)の動作 結果です。
株価変動率の計算が不正確です。

Version 1.2.2 での説明では、株価変化率だそうです。
「変化が大きい順番に並ぶ」そうですが、

昭和シェル石油 石油石炭製品 初値: 935 安値: 931 高値: 970 終値: 970 増減: 35 ランク: 4.4
三井物産 商事卸売業 初値: 957 安値: 947 高値: 967 終値: 965 増減: 8 ランク: 3.3
(中略)
住友電気工業 非鉄金属 初値: 950 安値: 935 高値: 959 終値: 947 増減: -3 ランク: 0.0
(中略)
アサヒビール 食料品 初値: 1187 安値: 1174 高値: 1200 終値: 1178 増減: -9 ランク: -2.4

となっており、計算方法が 不明瞭です。
直観的に、変化率というのであれば、当日の増減のランクか と 思ったのですが、そうでもないようです。
どうも、前日との変化率のようです。

5. 売買注文が正常に動作しない
sample08.java は、単に成行きで 1単位 売り/1単位 買い としているので 通常であれば、金額の変動はない
はずです。しかし、変な注文が 自動的に発生するので、

履歴:
2004/04/04 日 資金: 19,927,100pts 評価額: 10,000,000pts
2004/04/05 月 資金: 19,690,200pts 評価額: 9,941,200pts
2004/04/06 火 資金: 19,690,200pts 評価額: 9,956,200pts
2004/04/07 水 資金: 19,924,200pts 評価額: 9,962,200pts
2004/04/08 木 資金: 20,163,200pts 評価額: 10,095,200pts
2004/04/11 日 資金: 19,907,700pts 評価額: 9,973,200pts

という 結果となってしまいます。
Version 1.2.2 で、ルールが変更になりました。
前日との変化率
大会証券サーバでの注文処理手順
旧) 実株売却→空売り株解消→実株購入→実株売却→空売り
新) 実株売却→空売り株解消→ 銘柄ごとに 実株購入 と 実株売却 →空売り

6. パラメータの説明
Interval.java にある、Interval関数の引数説明がおかしい。

     * @param lowerBound 初日
     * @param upperBound 終わりの日
となっていますが、  関数は、以下のように提供されています。

public Interval(Calendar firstDay, Calendar lastDay)

実害は ありません。firstDay 初日 lastDay:終りの日 です。






単純リンク・相互リンク 大歓迎です
ご意見、ご感想は、umeda@tele.ucl.ac.beまで
履歴書など TEL +32 10 47 80 74 (オフィス)