カブロボ使ってみる

まだ申し込んでませんが、とりあえず使ってみました。
ローカルで動かす分には大会への登録は不要なようです。


カブロボプログラミングには、パラメータ設定による簡易ロボットと、コードを書くロボット
があるようです。まあ、プログラマ的には、コードを書かないと面白くないかなということで、
コードを書きます。


コンテストのサイトから、ZIPファイルをダウンロード、展開し、適当なディレクトリに配置します。
Eclipse上から実行するときは、lib以下のJARをクラスパスに通し、
起動構成で以下を指定します。

プログラム引数にロボットのクラス名を指定
例 hoge.MyRobot

VM引数でkaburobo.homeを指定
例 -Dkaburobo.home=C:\project\kaburobo\kaburobo_ver_1_2_4\kaburobo

ロボットの例は以下のようになります。
Robot インターフェイスを実装し、(仮想取引システムから)一日一回呼ばれる
runメソッド内にいろいろ処理を書きます。

package hoge;

import jp.kaburobo.investment.InvestmentAgent;
import jp.kaburobo.investment.SimpleStockOrder;
import jp.kaburobo.investment.Stock;
import jp.kaburobo.investment.StockOrder;
import jp.kaburobo.robot.Robot;

public class MyRobot implements Robot {

    //Buy And Fold
    public void run(InvestmentAgent agent) {
        long money = agent.getPortfolio().getAvailableMoney();
        Stock[] stocks = agent.getStocks();
        SimpleStockOrder stockOrder = new SimpleStockOrder();
        stockOrder.setStock(stocks[0]);
        stockOrder.setTradeType(StockOrder.BUY);
        stockOrder.setQuantityByMoney(money);
        agent.order(stockOrder);
    }
    
}

なおこのロボットは、最初に呼ばれたとき(取引1日目)に
最初の銘柄を買えるだけ買ってあとはホールドです。
(2日目以降は買い付け余力がないので買えません。
なお、コンテストのルール上 2銘柄以上売買しないといけないので
このロボットでは失格ですが)


実行すると以下のように1ヶ月分の仮想売買が実行されます。

hoge.MyRobot start
DAY 1: 2004/04/01 木
資金: 10,000,000pts 取引可能金額: 10,000,000pts

購入: 1928 積水ハウス 建設業 10000000pts 成行

【当日注文処理結果】
銘柄|取引単位数|値段
                                      • -
1928| 8|1215 ... 2004/04/27 火 資金: 280,000pts 評価額: 9,752,000pts 2004/04/28 水 資金: 280,000pts 評価額: 9,968,000pts 2004/04/30 金 資金: 280,000pts 評価額: 9,640,000pts 2004/05/06 木 資金: 280,000pts 評価額: 9,336,000pts hoge.MyRobot end TOTAL TIME: 1.272 sec.

赤字でした(-_-


なお、configディレクトリのkaburobo-config.xmlで、実行期間を指定できます。
また、docディレクトリ以下にJavaDocがあります。