最終更新日: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 コンテストで利用可能な主催者側が用意した関数:
関数一覧
サンプルプログラム
- sample01.java 前日の株価などの情報を取得します。(バグ情報
1)
- sample02.java
前日から200日前までの株価情報を表示します。(バグ情報 1)
- sample03.java
前日のFFレート、10年国債、公定歩合を表示します。(バグ情報 2)
- sample04.java
前日から100日前までのFFレート、10年国債、
公定歩合を表示します。(バグ情報 2)
- sample05.java 業績・財務情報を表示します。(バグ情報 3)
- sample06.java 前日の株価変化率を取得し、順に表示する
(バグ情報 4)
- sample07.java 株の売買 サンプルプログラム /
前日が下がったら、今日は買ってみる (^_^)
- sample08.java スタックオーバーフロー? 売買成立順序について
(バグ情報 5)
- sample09.java RSI の計算サンプル
- 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:終りの日 です。