レベル: 中級 木村 桂 (kimuc@jp.ibm.com), ソフトウェア事業, IBM
2007年 4月 27日 予習編の最後である今回は、作成したロボットをコンテストに登録して、更には正しく動作するかどうかのテストを行うまでの手順を紹介します。この手順を行うことでスーパー・カブロボ・コンテストに参加登録をすることになります。
なお今回の記事内ではこの予習編(6)で作成した DwRobot05 を登録するまでの手順を紹介します。まずは前回までの記事を参照して DwRobot05 を用意するか、あるいはご自身で作成したロボットの内容に置き換えて以下を読んでください。
プロファイルとアーカイブファイルの準備
作成したロボットをコンテストに登録する前にまずはロボットのプロファイルを準備する必要があります。プロファイルはプログラミングされたロボットの動作全般に関して一定のルールを指定するもので、以下で紹介する登録作業時に必要になるものです。
カブロボ SDK を導入したフォルダ(例えば C:\kaburobo)の中に config というサブフォルダがあり、その中に robot-profile.xml というファイルが存在しているはずです。これがプロファイルになります。
メモ帳などのテキストエディタでこの robot-profile.xml ファイルを開きます。PC の設定にもよりますが、ファイルをダブルクリックしても編集できないことが多いので注意してください。
メモ帳で開いたところ
このファイル内のコメント文(<!-- から --> までの間)中にも使い方が記載されていますので一読してください。そして一番下までスクロールして下から6行目の <robot-class-name> 部分を自分のロボット名に変更して保存します。なおファイル内には <robot-class-name> というタグが2箇所ありますが、1箇所目はコメント文中の説明であって、こちらを変更しても意味はありません。必ず2箇所目を変更するように注意してください。
実際に登録するロボットの名前に変更、コメント中の値を変更しないことに注意
なお、このプロファイルにはロボット名以外にも文字コードなど指定する箇所がいくつか存在しています。特に <short-trade> タグでロボットに空売りを許可させるかどうかの指定を行ったり、<special-order> タグで条件付特別注文の指定を行ったりしています。自分のロボットでこれらの機能を使っている場合はこのタグ内の値に注意し、必要であれば値を変更してください。DwRobot05 では空売りを行うロジックになっており、今回は実際に空売りも行わせるロボットとして登録させますので <short-trade> の値は変更せずにこのまま利用することにします。もしこの値を true から false に変更すると DwRobot05 内で執行する空売り注文は全て失敗する(つまり、空売りは行わない)ことになります。
次にコンテストに登録するロボットのプログラムファイルを zip 化します。DwRobot05 の場合は本体である DwRobot05.java に加えて、メモオブジェクトである DwMemo.java もプログラムの一部になっていますので、この2つのファイルが zip 化の対象になります。メモオブジェクトを使わないなど、全て1つのプログラムファイルだけでできているロボット(例: 中級編(3)のDwRobot02.java)の場合はそのファイル1つだけが zip 化の対象になります。対象のファイルを適当なアーカイブツールを使って zip 化し、1つのファイルにまとめます。Eclipse を使っている場合であれば CTRL キーを押しながら対象のファイルを全て選択し、右クリックメニューから Export を選択します。
Export の形式として General → Archive File を選択して Next をクリックします。
zip 化する目的のファイルが全てチェックされていることを確認します(全てチェックされていなかったらチェックします)。また zip されたファイルの出力先(以下の例では c:\DwRobot05.zip)を指定し、"Save in zip format" にチェックが付いていることを確認します。パッケージを利用していない場合は "Create only selected directories" を指定し、最後に Finish ボタンをクリックします。
この結果、出力先に指定したファイルが作られます。これで登録作業前の準備は完了です。
コンテストサーバーにロボットを登録
上記の準備作業で作成した2つのファイルを使って、ロボットをコンテストに登録します。まずはカブロボのホームページ(http://kaburobo.jp/)にアクセスしてログインし、カブロボ工房へ移動します(この手順については中級編(1)記事参照)。
カブロボ工房の画面ではコンテストに登録済みのロボットの一覧が表示されますが、最初は何も登録されていないはずです。カブロボをコンテストに登録するにはまず「カブロボ作成方法の登録」と書かれた箇所の下でロボットの種類を選択します。今回は Java の SDK で作成したロボットを登録しますので、"Java KaburoboSDK" を選択して、登録ボタンをクリックします。
すると登録カブロボ一覧に新しいロボットが追加されます。種類は指定したとおり "Java KaburoboSDK" となっているはずです。この枠に自分のロボットを登録します。ロボットの「編集」と書かれた部分をクリックします。
編集画面では上記の準備作業で作成した zip ファイルと robot-profile.xml のファイルパスを指定して、「アップロード」と書かれたボタンをクリックします。
アップロードに成功すると、以下のようなメッセージが表示されます。これで登録できました。なお2台目以降のロボットを登録する場合もこの手順を繰り返します。
コンテストサーバー上での稼動確認
ここまでの作業でロボットはコンテストに参加登録できたことになります。ただし登録はできていますが、期待した通りにロボットが動作してくれる保証はありません。自分の PC 上では期待通りに動いていたロボットも設定ファイルの違いなどが原因となってコンテストのサーバー上では異なる動作になっている可能性もあります。
そのようなことがないよう、登録が終了したロボットに対しては必ずコンテストサーバー上で稼動確認をしておくべきです。以下にこの稼動確認の手順を紹介します。
まずカブロボのホームページ上でログイン処理を行い、カブロボ工房のページに移動し、登録カブロボ一覧から稼動確認を行いたいロボットの「テスト」をクリックします。
コンテストサーバー上でのテストは過去の4ヶ月単位のデータを使って行います。自分のロボットをテスト稼動させる期間を選択して、「テスト開始」ボタンをクリックします。
以下のような画面に変わることを確認します。
しばらくすると、カブロボにサインインしたメールアドレス宛てにカブロボサイトから稼動テストが終了した旨のメールが届きます。このメールの本文にコンテストサーバーで実行されたロボットの稼動成績が含まれていますので、正しく稼動した結果になっていることを確認します。
なお、この手順で行ったテストの結果概要はカブロボ工房のテスト画面から参照することができます。また「より詳しい解析結果とグラフを見る」をクリックすることで詳細な稼動結果を確認することができます。
自己アピール
ここまでの作業で作成したカブロボをコンテストに登録して、無事にコンテストサーバー上で動作することも確認できました。最後にこのロボットの自己アピールを行いましょう! 再度カブロボのホームページからログインを行って、カブロボ工房に移動します。そこで自分のロボットを選んで「設定」をクリックします。
設定画面では公開用のカブロボ名を入力します。プログラミング時には DwRobot05 という名前にしましたが、コンテスト上ではここで登録した名前で扱われます。またこのロボットの特徴などを記載しておきます(以下は記入例です)。最後に決定ボタンをクリックします。
正しく入力が適用されると、カブロボ工房でのロボット一覧画面に入力内容が反映されます。もし登録ロボットがコンテストで優秀な成績をあげて表彰扱いになった場合、ここで付けたロボット名で表彰されることになると思いますので、是非カッコいい名前を付けてあげてください!
最後に
全7回に及ぶ「スーパー・カブロボ・コンテスト 予習編」はいかがでしたでしょうか?第1回大会に参加された方であれば、基本的には大きな変更はありませんので、比較的簡単、という印象を持たれたかもしれません。もちろん本当に難しいのは投資判断をアルゴリズム化して、Java 言語で実装する部分だと思っています。本連載ではゴールデンクロスという手法で注文タイミングの判断を行う例を紹介しましたが、是非色々なテクニカル分析や独自の分析に基づくロジックの実装に挑戦してみてください。そして実装ができた暁には、是非スーパー・カブロボ・コンテストに登録をして、実戦で戦わせてみてください。
では、第2回スーパー・カブロボ・コンテスト本戦でお待ちしています。
著者について  | |  | 木村 桂: 日本IBM ソフトウェア事業 |
記事の評価
|