株式をインターネット上で仮想的に売買し,その運用成績を競う――。2005年1月,このようないたって単純なルールのコンテストが開催される。

 ただ,このコンテスト,通常の株運用とは大きく異なる点がある。それは,売買指示を出すのがソフトウエアのロボットだということ。参加者はオープンソースの開発環境を使って,Java言語でソフトウエア・ロボットを作成。それをエントリーする。ロボットが来年1~2月の1カ月間,255の日経銘柄のうちの40銘柄を対象に株式を自動売買し,それで得た運用益を競うのだ。コンテスト期間中,参加者はロボットに対して指示を出すことができない。

 このコンテストの正式名は「カブロボ・プログラミング・コンテスト」(略称はカブロボ・コンテスト)。早稲田大学理工学部コンピュータ・ネットワーク工学科と日本IBM,野村総合研究所が共同開催する。

 主催者いわく,目的は「最良のアルゴリズムを考えることを楽しむ機会」を提供すること。株式の自動売買は,大学の研究で取り上げられることもあるテーマ。高い運用実績をあげる最適なアルゴリズムは確立されていない。コンテストを通して,参加者はこの“頭脳ゲーム”を楽しむ。そして,多様なアルゴリズムを生み出すことが期待される。

「試行錯誤」は楽しいもの

 ここまで読むと「プロかセミプロのプログラマ向けコンテストか」と思うかもしれない。しかし,そうではない。このコンテストで面白いのは,プログラミング未経験者はもちろん,パソコンを始めたばかりの人をも参加対象としていることだ。

 初級者は,運営側が用意した簡易ロボットを,自分なりの仕様に改造してコンテストに参加できる。改造するための作業は,Webブラウザを使って15の質問に答えるだけ。質問の答え方によって,約200兆通りのロボットが完成する。

 質問に対する答を変えながら,いくつかのロボットを試作。運用シミュレーションを繰り返して,高成績をあげるロボットに仕上げていく。カブロボのホームページ上に「2004年4月(株価の方向性のない相場)」「2004年6月(株価が上昇した相場)」「2004年7月(株価が下落した相場)」の3種類の実際の株価データが用意されており,それぞれの期間における簡易ロボットの運用成績を示してくれる。

 一般に「プログラミング・コンテスト」と呼ばれるものは,初級者にとって敷居が高い。プログラミングに興味があっても,なかなか参加できないのが現実だ。こういった状況の中で,「プログラミング未経験者でも,パラメータを変えながら自分仕様のロボットを作ることによって,『アルゴリズム』というものを考えることの楽しさを感じられるだろう」(コンテストを企画・運営するリンゴラボの加藤浩一社長)という運営側の考えは,一つの試みとしては面白いだろう。

 実際,簡易ロボットをカスタマイズすることは容易だが,“賢い”ロボットにすることは難しい。15の質問は,株式に対する知識がなくても“ひらめき”だけで答えることができる。ただ,それでは運用成績は地をはったまま。筆者も,カブロボのホームページ上にあるシミュレーション機能を使って,さまざまな設定のロボットを試しているが,運用成績はマイナスから抜け出せない。ホームページに掲載されている「株の基礎知識」などを読みながら,いまだに試行錯誤を続けている。この「試行錯誤」と「目的に向かって学ぶ」ことがけっこう楽しいのだ。

 運用成績の上位者や面白いアルゴリズムを作成した参加者には賞金が出る。筆者の属する「日経パソコン」も賞を用意した。簡易ロボットでエントリーした参加者の中で,高い運用成績をあげた人に電子辞書を贈呈する(受賞人数は日経パソコン読者2名,非読者1名)。コンテストでは人間対ロボットの戦いも用意され,「東大株式投資クラブAgents」のメンバーがあげた運用益をロボットが上回れるのかも見る。チャレンジしてみてはいかがだろうか。

(藤田 憲治=日経パソコン)