レベル: 中級 木村 桂 (kimuc@jp.ibm.com), ソフトウェア事業, IBM
2007年 3月 23日 2007年 4月 11日 更新 2007年春に第2回スーパー・カブロボ・コンテストが開催予定です。今のうちにロボットを作って準備しておきたい、よく分からないけど「投資のロボット」って面白そう、そんな皆さん必見の情報を IBMより(フライング気味に)いち早くお送りします。
まずは復習
2006年は日本の個人投資におけるロボット・トレーディング(アルゴリズム・トレーディング)の元年になったのではないか、と思っています。その理由は多くの企業による協賛の下で「第1回 スーパー・カブロボ・コンテスト」が開催され、一般の参加者が作成した 6000 体を超える投資ロボットが参加し、その投資アルゴリズムを競い合う、という日本でも過去に類をみない大規模なソフトウェアコンテストとなりました。また現在はこのコンテストを通じて選ばれた10体の最優秀ロボットによる、総額5億円の資金を元にした実運用が始まっています。既にソフトウェアコンテストの枠を超えて、個人投資家によるサイバー・ファンド・マネージャーへの道のりまでが開けた、2006年はそんな革命的な1年になりました。
このスーパー・カブロボ・コンテストが更なる進化を遂げて帰ってきます。第2回大会は 2007 年春から開催予定とされています。現在は第2回大会へ参加を希望している個人投資家の皆さんにむけて SDK(ソフトウェア開発キット)が公開され、大会にむけた投資ロボットの作成ができるようになっています。
IBM developerWorks では今回もスーパー・カブロボ・コンテストを支援します。特に Java というプログラミング言語を使って投資ロボットを作ることに挑戦する参加者のために、各種技術情報や関係者インタビューを提供していく予定です。ご意見・ご感想などありましたらぜひ送っていただけると幸いです。
なお、スーパー・カブロボ・コンテストへの参加や、公式ルール、予定等につきましては公式ウェブサイト(http://kaburobo.jp/)を参照してください。
スーパー・カブロボ・コンテストとは?
カブロボをご存知ない方のために簡単に説明します。カブロボは以下の3つの特徴を持った仮想投資コンテストです:
- 実際の相場と仮想の資金を使った株式投資のシミュレーションコンテストです。
- ただし銘柄の指定や売買命令は参加者が行うのではなく、参加者が作成した「投資ロボット」によって執行され、そのロボットの運用成績を競います。
- コンテストを通じて発掘された優秀な投資ロボットには仮想資金ではなく実資金を使った運用が行われます、また投資ロボットの商品化も予定されています。
参加者は上記 2. で説明したロボットを作ってエントリーさせることで参加できます。ここでいう「ロボット」というのは鉄腕アトムやドラえもんのような物理的な実体を持つロボットではありません。投資におけるファンダメンタル的/テクニカル的な情報を日々取り入れながら「上昇しそう」「下がりそう」と判断した売買銘柄を選んで、自動的に売買命令を発行する「ソフトウェアのロボット」です。つまり参加者はこのソフトウェアロボットを(プログラミング等で)作成して参加することになります。 Java 言語のプログラミングが得意な方はこのロボットを SDK を元にゼロから作成してもかまいませんし、プログラミングが苦手であれば投資スタイルについての質問に答えていくことで、そのスタイルに合うようなロボットが自動生成されますので、それを使うこともできます。
そして評価はロボットの運用成績と投資ロジックから判断されます。参加した本人がどれだけ投資に詳しくても、どれだけ経済に強くても、どれだけ株に熱くても(苦笑)評価には関係ありません。それなりの運用成績に加えて、(損切への対処など)リスク管理を含めた投資ロジックの安全性などが評価の対象になります。第1回大会では特別協賛企業であるマネックス証券の代表取締役 CEO である松本 大様をはじめとした多くのプロフェッショナルトレーダーや専門家の皆さんに最終選考に参加いただきました。まさに「誰でも参加できて、夢につながるリアルタイム知的ゲーム」、それがカブロボ・コンテストです。
過去の大会同様、第2回大会においても IBM developerWorks では、特に Java 言語を使ってロボットをプログラミングするための情報を中心に提供していく予定です。なお、本稿はまだ最終的な仕様が確定していない、スーパー・カブロボ SDK2.0 ベータ2版を利用して解説しています。最終版では多少の変更が加わることになるかもしれません。 また本連載で作り方を紹介するカブロボですが、現時点ではまだ作成したロボットを第二回コンテストへ参加登録することはできません。当面は登録が可能になった時点ですぐに参加できるような、予習の意味で紹介させていただきます。これらの点、あらかじめご了承ください。
カブロボ作成の準備
第2回大会はまだ始まっていませんが、開催に備えて投資ロボット(以下、「カブロボ」と表記します)を作っておくことは今からでもできます。本連載記事では第2回大会開催が開始となる前にカブロボを作成するための手順を紹介していく予定です。特に第一回目である今回は、カブロボの開発に必要なソフトウェアの導入手順を紹介します。最初の1回だけ必要な手続きになりますが、いわば「作業場作り」のための手続きになりますのでお付き合いください。 ただ基本的には第一回大会での作業と同じですので、第1回大会に Java 言語で参加された方は (3) のカブロボ SDK のダウンロードまでは読み飛ばしていただいて構いません。またカブロボ SDK 2.0 は基本的には第一回大会で使用したカブロボ SDK 1.0 とも互換があるので、第一回大会で Java プログラミングロボットを作成された経験のある方であれば、ほぼそのまま動かすことができます。
では準備作業を順を追って紹介します。まず前提条件として Microsoft Windows が導入された PC が必要です。Windows のバージョンは(よほど古いものでなければ)特に気にしなくて大丈夫だと思います。実際のところ Windows でなくても動作するかもしれませんが、未確認です。以下の紹介記事では Windows XP を使っています。
Windows 以外には以下の3つが必要になります:
(1) JDK
(2) Eclipse SDK
(3) カブロボ SDK 2.0
まず JDK です。これは Java Development Kit の略で Java 言語のプログラミングをするために必要なツールが一式セットになったものです。カブロボ公式サイトでは JDK のバージョン6(JDK 6)の利用を推奨しています。私自身が使っている範囲内では JDK 5 でも支障なく動作するようですが、動作保証をするわけではありません。というわけで JDK 6 の導入手続きを紹介します。
JDK 6 は Sun Microsystems のサイトから無料でダウンロードできます:
http://java.sun.com/javase/ja/6/download.html
上記サイトから「ダウンロード」と書かれたボタンをクリックし、英語のダウンロードサイトへ移動します。ダウンロードサイトではまず JDK 6 の利用ライセンスに目を通した後で "Accept"(同意) と書かれたオプションを選択し、"Windows Offline Installation, Multi-language" と書かれたリンクをクリックして、jdk-6-windows-i586.exe をダウンロードします。実際には "Windows Online Installation, Multi-language" を選択しても構いません(その場合はネットワークに接続した状態でのインストール作業に移ります)。
ダウンロードが完了したら、jdk-6-windows-i586.exe をダブルクリックしてインストール作業に移ります。基本的にはライセンス内容に同意する以外は全て「次へ」ボタンをクリックして大丈夫です。最後に「インストールが完了しました」というダイアログが出れば、この作業は完了です。
次に (2) の Eclipse SDK を導入します。この Eclipse SDK は Java 言語によるプログラミングを容易に行うための補助ツールです。必須ではありませんが、本紹介記事では Eclipse SDK が導入されている前提でカブロボの開発方法を紹介していきますので、みなさん是非インストールしてください。
Eclipse SDK も www.eclipse.org から、やはり無料でダウンロードできます:
http://www.eclipse.org/downloads/
上記ダウンロードサイトから最新版をダウンロードしてください。この原稿を書いている 2007 年3月14日現在では最新版は Eclipse SDK 3.2.2 になりますので、"Eclipse SDK 3.2.2" と書かれたリンクをクリックします。
次のページではどのミラーサイトからダウンロードするかを聞かれますので、どこか一つ選択します(以下の例では IBM オタワを選択しています)。
eclipse-SDK-3.2.2-win32.zip という zip 圧縮されたファイルがダウンロードできます。このファイルを適当なツールを使って展開します。以下の例では D:\eclipse というフォルダに展開したものと仮定して紹介を続けます。なお、Eclipse は環境を日本語化することも可能ですが、ここでは英語版のまま利用する前提で紹介します。日本語化された方は英語で紹介する文字列を適宜読み替えてください。
最後に (3) のカブロボ SDK をダウンロードします。カブロボ SDK は Java 言語を使ってカブロボの開発を行う際に注文や過去のデータの検索など投資に必要な機能を一通り備えたツールです。カブロボ SDK も無料ダウンロード可能ですが、そのためにはカブロボ公式サイトで参加登録を行う必要があります。まだ参加登録をされていない場合は http://kaburobo.jp/ でエントリー手続きを済ませてください。
エントリー手続きが完了している場合は公式サイト・トップページの右上から「ログイン」を選択します。
エントリー時の登録情報(メールアドレスとパスワード)を入力してログインします。
ログイン後に My ページが表示されます。ここから「カブロボ工房へ」と書かれたリンクをクリックします。
カブロボ工房ページにおいてカブロボ開発キットのダウンロードページへのリンクをクリックします。
ダウンロードページから最新版の SDK をダウンロードします。他にもダウンロードできるモジュールが用意されていますが、カブロボの作成だけであればカブロボ開発キット(SDK)をダウンロードするだけでも大丈夫です。
この原稿を書いている 2007 年4月10日現在では kaburobo-sdk-2.0.0-rc1.zip という名前の zip 圧縮されたファイルがダウンロードできます。このファイルを適当なツールを使って展開します。以下の例では c:\kaburobo というフォルダに展開したものと仮定して紹介を続けます。
これで準備のために必要な材料は全てそろいました。後はカブロボを作ることができるようになるための設定を行います。 まずはカブロボ SDK を展開したフォルダ名(上記の場合であれば "c:\kaburobo")を環境変数と呼ばれる値に設定します。Windows の場合はコントロールパネルを開いて システム→詳細設定→環境変数 を選択し、システム環境変数として KABUROBO_HOME が既に加わっていれば選択してダブルクリック、まだ設定されていなければ新規ボタンをダブルクリックして以下の内容を指定します:
| 変数名 | KABUROBO_HOME |
|---|
| 値 | カブロボ SDK を展開したフォルダ名 (上記であれば c:\kaburobo ) |
|---|
次に Eclipse を起動します。展開したフォルダ(上記例では D:\eclipse)内にある eclipse.exe をダブルクリックして実行します。実行すると以下のようなダイアログが表示されます。これから作成する Java のプログラムをどのフォルダにまとめるか、という確認です。特別な目的で使っている場合を除いて変更する必要はありません。また "Use this as the dafault and do not ask again" をクリックしておくと次回以降の起動時にはこのダイアログは表示されなくなります。
起動すると以下のような画面になります。画面右側にある矢印のアイコンをクリックしてワークベンチと呼ばれる開発環境画面に移動します。
開発環境画面に移ると以下のような画面になります。
最後にスーパー・カブロボ・コンテストに参加させるカブロボを作るための設定をこの画面上で行います。メニューから File → New → Project を選択して、"Java Project" を選択して "Next" をクリックします。
次の画面ではこれから作るカブロボをまとめて1つの「プロジェクト」として管理することになるのですが、そのプロジェクトの名称を入力します。以下の例では "Kaburobo" と入力しました(実際には好きな名前を付けて構いませんが、以下では "Kaburobo" と指定した前提で紹介します)。また JRE は最初にインストールした JDK 6 を使いたいので "Use a project specific JRE:" と "jre1.6.0" を選択します。ここまでできたら再度 "Next" ボタンをクリックします(Finish をクリックしないよう注意してください)。
Java Settings の画面になります。ここではプロジェクトの中でカブロボ SDK を利用するための設定を行います。まず "Libraries" タブを選択して、"Add External JARs" ボタンをクリックします。
JAR ファイルを選択するダイアログボックスが表示されます。ここでは上記 (3) の手順でカブロボ SDK を展開したフォルダ(上記例では "c:\kaburobo")の lib サブフォルダを選び、その中にある "hsqldb.jar" と "skaburobo-sdk.jar" の2つのファイルを選択します(CTRL キーを押しながらクリックすると複数のファイルが選択できます)。選択後に「開く」ボタンをクリックします。
Java Setting の画面に戻りますが、ここで今指定した2つのファイルが Libraries タブ内に追加されていれば成功です。最後に Finish ボタンをクリックします。
パッケージ・エクスプローラと呼ばれる左上の画面に今作成したプロジェクトが追加されているはずです。
最後に(これから作る)カブロボが動作する際の資金や動作期間を指定するための設定ファイルをこのプロジェクトにインポートします。エクスプローラを使って (3) でカブロボ SDK を展開したフォルダを開き、その中の config フォルダ内にある robot-config.xml というファイルを見つけます。
このファイルをマウスで選択し、そのまま Eclipse 画面内のプロジェクトまでドラッグ&ドロップします。すると robot-config.xml ファイルがこのプロジェクトの中に含まれる形でコピーされます。
このままでも動作はしますが、実際に利用する際に便利なようにあらかじめこの robot-config.xml ファイルの内容を変更しておきます。Eclipse のプロジェクト内にインポートされた robot-config.xml をダブルクリックして開き、"Source" と書かれたタブを選択してテキストモードで開き、下から3行目の以下の部分を書き換えて保存(メニューから File → Save)します。
(下から3行目 true を false に変更)
<config-confirmation>false</config-confirmation>
お疲れ様でした。これで Eclipse を使ってスーパー・カブロボ・コンテスト用のカブロボを作成する準備ができました!
次回予告
ちょっと大変でしたが、これで準備は完了です。ここまでの作業が終わればすぐにでもカブロボを作ることができます。が、それは次回以降で紹介することとし、今回はここまでとさせていただきます。
次回は実際にカブロボを作って、動かし、その結果を確認するまでの一連の手続きを紹介します。
著者について  | |  | 木村 桂: 日本IBM ソフトウェア事業 |
記事の評価
|