Tacticoの歴史

2023年にリニューアルするにあたり、ここまでの歴史を書いておこうと思う。このプロジェクトは、岡嶋大介のソフトウェア開発遍歴の中でこれまで最も長大だし、生涯最長の付き合いになったとしてもおかしくないものである。

非公開のスクリーニングツール時代

僕が株式投資に興味を持ったのは1999年、東大理学部情報科学科在学中のことである。高校時代の同級生で、漫画とゲームが好きな友人がその魅力を力説するので、試しに口座を作っていまでいうスイングトレードをしていた。「こんな面白いものがあるのに学校では全く教えないとは大人はなんてズルいんだ」と思ったのを今でも覚えている。ただ、当時はITバブル崩壊のただ中であり、かつ信用取引すらしていないので投資成果としては惨憺たるものであった。

翌2000年に大学を卒業し、サラリーマン生活をスタートするが、株式投機との二足のわらじだった。この時代スマホは存在せず、モバイルではiModeアプリでの取引である。このとき、手掛けるのに有利な銘柄を発掘するのに便利なツールが欲しくなり、当時新興のプログラミング言語だったC#の練習を兼ねてWebサイトのスクレイピングによるデータ収集とスクリーニングのためにソフトウェアを作り始めた。これは完全に自分専用だった(トレーダーの友人には使わせていたかもしれない)し、チャート表示すらなくて、コマンドラインのインタフェースのみを持つものだった。

なお、スクリーニング条件を記述するために独自のスクリプト言語を導入するというアイデアはこの時期からあるもので、C#版のコンパイラ生成ツールであるANTLRにはこの時代から今に至るまでお世話になっているものである。大学在学中はコンパイラと構文解析を手掛けていたので、この分野では今でも好きなのである。

OmegaChart時代

次の転機は2003年である。このツールをGUI化してチャート表示もできるようになれば一般の個人投資家向けに有用なものになるのではないか、という構想はあったものの、作業量が膨大になる問題から保留になっていた。しかし一念発起して会社は1週間休暇をとり、そこで集中的に作業してGUI化と一般公開向けのWebサイト作成を終わらせ、OmegaChartと名付けたのである。名前の理由は、当時Windowsアプリでのチャート表示でalpha chartというものがあり、その先を行くという意気込みで名付けた。これは完全に趣味であり、非営利活動である。

この時代、ユーザサポートは主に2ちゃんねるでやっていた。特に印象的だったエピソードは、何気なくつけた、「マウスホイールで銘柄コード順で前後の銘柄に移動」という機能が大好評で、熱心なユーザが別のユーザを連れてくるようになったことだ。そんなにウケる機能だとは全く予想しなかった。もちろん今回のWebアプリ版でも同じ機能を備えている。

(当時のWindowsアプリのスクリーンショット うーむ懐かしい)

Tacticoの成立

その後いろいろあり、2005年にサラリーマンを辞めた。2年ほどニート生活(生活費はトレードで稼ぐ)を経て2007年からTacticoプロジェクトが始まった。これの狙いは、OmegaChartをベースに、リアルタイムデータ対応・FX対応・発注機能・機能ごとのモジュール化とプラグイン構造、など大幅な強化を図り、トレーディングツールとして証券会社へのライセンス提供を狙うというものである。

目標自体は正しかった(当時はWindowsデスクトップアプリ全盛だし)と今でも思うし、実際複数の証券会社と契約してわりと短期間で売り上げも立つようになったが、目標が高すぎたために充分な開発期間がとれず、結果として完成度が低いままユーザに提供してしまったことが災いして多くの契約は短命に終わってしまった。だが、唯一セントラル短資FX向けのWindowsアプリだけは今でも存続していて、僕にとっては長期安定収入としてとてもありがたい存在である。

なお、この時期一般の個人投資家向けには、機能的にはOmegaChartと変わらないものをTacticoのソースコードベースで構成して無償提供していた。個人向けについては、その後いろいろ忙しくなってしまい、2010年以降ほったらかしになってしまっている。

Web版への移行第一期 WebGL版

さらに時代は下り、さまざまなプロジェクトに顔を出すフリーランス生活をしていたのだが、何かのきっかけでWebGLを勉強した。これは、ブラウザとJavaScriptだけで、OpenGLに近いAPIによってGPUに直接命令が出せるというものである。

で、これを使ってWebGL版のチャート表示の試作をやりはじめた。またバックエンドでも、リアルタイム株価データが比較的安価に使えそうな話があり、これも試作を開始した。たしか2016か2017年のことだったと思う。

ところがこれは大失敗。WebGLは非常にコーディングとデバッグがやりにくいうえ、Webブラウザ側がマジメにサポートしていないので描画パフォーマンスが非常に悪い。バックエンド側も、契約しようとしていた会社に言うことが二転三転してやりづらく、リアルタイムデータの利用は流れてしまった。

でもこのままお蔵入りは忍びないので2022年春に小規模にリリースはしてみたが、実際にはいくつかのスクリーニング機能を直接の知り合い何人かが使う程度だっただろう。

Web版への移行第二期 素直にsvg化

GL版のリリースから半年後、強烈な円安で次の転機が訪れた。この波に乗って、金銭目的の仕事からは生涯解放されたのである。その時点で抱えていたプロジェクトはゆるやかに着地させ、長期的には広く一般の子供向けにプログラミングと情報科学の基礎を手掛ける教育事業をやりたいという目標を持つようになった。

だが、いきなり教育事業に行く前の身辺整理の一環として、Tacticoをもう一度「普通に使える」ようにしてからにしよう、となったのである。主な変更点は、WebGLを捨ててSVGにすること(TradingView含め、ブラウザ上のチャートはほぼすべてそうであるはず)、UIのクオリティを上げること、の2つである。

当初2023年頭くらいの完了を目指していたが、他プロジェクトの着地に手間取ったり、ChatGPTの登場でこれを使ったように若干軌道修正したり、というのがあって2023年6月末になってしまった。

でもまあ一般公開すると、ブログ記事を書いたりTwitterでの宣伝活動をしたりといった手間が発生するので若干腰が引けるところがあるのは否定しないが、どこかの段階で人を雇って移行していこうと思う。

ともかく、2010年以降ほったらかしだった、「個人投資家向けに、気軽にチャートとスクリーニングのツールを作る」という活動に一つ節目をつくることができて本当に良かった。