執筆者のプロフィールはこちら
  最近のニュース・レビュー記事はこちら new.gif

2005年12月13日

みずほ証券誤発注問題を考える

【①東証のシステムエラーとはどのようなものだったのか】
今回のみずほ騒動の原因が東証のシステムの不具合にもあるということが発表されたわけですが、具体的にはどのような不具合だったのでしょうか?手がかりとなるのは、本日の日経新聞の以下の記載です。

(引用始)
『東証のシステムでは取引価格の制限を超える値の注文は制限値で受け付ける「みなし処理」になる。みずほ証券の一円注文はストップ安で受け付ける「みなし処理」が行われたが、システムがみなし処理の取り消しを受け付けないようになっており、「結局一円でも57万2千円でも取り消しが不能な状態」(天野常務)になっていた。』
(引用終)

「みなし処理」の取り消しを受け付けないというのは、「変なシステムだなー」という印象を持たれるかもしれませんが、以下のように推測すれば、どうしてこんなシステムができてしまったのかの説明がつくと思います。以下は、私のシステム構築経験に基づく推測にすぎないという点をご了解いただいた上で、読み進めていただければと思います。
一般的に、取引(トランザクション)の処理を扱うシステムにおいては、その取引の状態を表す「フラグ」なるものが1バイトのスペースに書き込まれるものです。例えば、今回の東証のシステムで言えば、データを「取り消した」からといってデータを「物理的に削除」してしまうと、後々追跡が不可能となってしまいます。このような場合、「フラグ」を「通常のデータ」から「取り消されたデータ」に換えてやることで、データが有効か否かをシステムに判断させるのです。私の推測では、東証のシステムでは、このフラグは少なくとも以下の3種類の値をとっていたはずです。

1.通常のデータ
2.みなし処理データ
3.取消済みのデータ

既に、取り消されたデータでも取消処理ができるようにしてしまうと、ユーザーは本当にデータの取り消しができたかどうか不安になってしまうため、フラグが「3」の値のデータは取消ができないようにシステムを作っておかねばなりません。この場合、

フラグが「3」ならば取消ができない
 フラグが「3」以外ならば取消ができる

というようなロジックを書くこととなります。しかし、なんらかのミスコミュニケーションにより、プログラマーが

フラグが「1」ならば取消ができる
 フラグが「1」以外ならば取消できない

というようなロジックを書いてしまう可能性は大いにあります。そのような場合、「2」のみなし取引は取消ができなくなってしまうのです!もちろん、システムの設計は様々であるので、私の推測通りである可能性はそれほど高くはないと思いますが、エッセンスはこんなところでしょう。つまり、今回の東証の不具合とは、逃れようのないロジックの書き間違えであったということです。

【②東証の責任は?】
前回のシステム問題と、今回の問題も含めて、私には非常に気がかりになった、新聞上でのある表現があります。それは以下のようなものです。

システムの不具合は一義的には東証に責任がある。

意地悪い見方をすれば、わざわざ「一義的には」とつけるのは、東証側が責任を感じていないからだともいえます。なぜ、ズバリ「システムの不具合は東証に責任がある」と言えないのでしょう?「本当は富士通のSEが悪いんだけど、マスコミがうるさいから一応謝っておくか」といった本心が「一義的には」とつけるあたりに見え隠れします。では、東証はどうすればよかったのでしょうか?富士通のSEが書いたプログラムを全て、東証の従業員がレビューすべきだったのでしょうか?これはコスト的に考えても明らかに「無駄」な話です。
恐らく現実的な選択肢は、東証がシステムテストのシナリオ策定に積極的に関わるということです。システムの検証はランダムにデータを流していただけではダメであり、あらゆる可能性を網羅するようなデータを計画的に流してみることにより、検証を行わねばなりません。恐らくは検証段階においても、東証の関わり方はかなり限定的であり、富士通にまかせっきりだったのではないでしょうか?
また、実ユーザーである会員証券会社もテストに積極的に参加させるなどしていたならば、こうした惨事が防げていた可能性はかなり高かったはずです。

【③富士通の問題は?】
富士通のSEの能力に問題があるなどとは、私には思えません。しかし、これも推測の域を出ませんが、プロジェクト管理には問題があったのではないでしょうか?もし、東証のシステムを担当する富士通の責任者に、必要となるリソースを主張する勇気があれば、十分な人員を割いて計画的なシステムテストを実行できていたはずです。
私が古巣のコンサルファームで経験した最初のプロジェクトは、総勘定元帳システムの構築でした。私は一人のプログラマーとしてプロジェクトに参加して、導入後の2ヶ月間もサポートに携わったのですが、その二ヶ月間一度もシステムが落ちたり、欠陥が発見されることがなかったというのが今でも誇りとなっています。しかし、ユーザーさんからの評価は「あれだけ時間をかけてテストをやっていれば当たり前」というあまり好ましくないものでした。もちろんお客様の声は真摯に受け止めなくてはならないですが、必要な手順を愚直に踏むことが、システム構築の王道であることは間違いありません。「コンサルタント」という肩書きがついていても、魔法使いであるわけなどないのですから、当たり前のことを当たり前にやっていいものを作るのがプロの仕事というものです。こうした考えが欠落してしまったために、構造計算書の偽装問題は発生したのであり、その意味では両者の問題は同根のものであるとすらいえるでしょう。必要な工数は決して省略してはならず、請け負う業者はそのために必要なコストを請求する「勇気」を持たねばなりません。


【④気になる証券会社トレーダーの倫理観】
本日の日経新聞7ページにはジェイコム株を大量保有する証券会社の名がリストアップされています。これらの証券会社がジェイコム株を保有している理由は、誤発注にいち早く気付きそこから利益を得ようとしたからに他なりません。証券会社のトレーダーというのは、四則演算に長けた人々であり、誤発注元の証券会社が被る損失額など、すぐ見当をつけることができるでしょう。また、受け渡しの株が不足するであろうことも、お見通しだったはずです。もちろん、金融の世界は食うか食われるかのゼロサムゲームという厳しい側面もありますが、彼等の行為がこの問題の傷口を広げたたことには間違いありません。こうしたトレーディングはいかがなものなのでしょうか?こうした行いは彼等のPrestigeに影響を与えることはないのでしょうか?

Posted by Ken Kodama at 2005年12月13日 10:08
Comments

>MikeRossTky様

コメントをいただき誠にありがとうございます。dando様の「ブログ時評」にて、リンクを掲載されていらっしゃった方ですね?

>なぜかみずほ証券のシステムの問題については触れていませんね。

みずほ証券のシステム問題については恐らく一般的にも理解しやすく、かつ多くの評論家がコメントするであろうし、また私の時間も限られている(笑)という理由から触れるにいたりませんでした。
この場であえて、私の考えをいくつか述べさせていただくと、まずみずほのシステム問題と東証のシステム問題をあえて比較するならば、私は東証のシステム問題の方が重大であると考えます。両者ともヒューマンエラーに対する機能という点で共通していますが、みずほに欠如していたのは「予防機能」であり、東証がバグを抱えていたのは「最終兵器としての修正・削除手段」です。ご指摘のとおり、「バグがないシステムはない」のですが、とはいえ、私は「バグが許されない機能」というのも存在すると思うのです。誤ったデータを削除・修正する機能にバグがあるのは、致命的な問題といえるのではないでしょうか?
私はMikeRossTky様がご指摘のように、みずほもUBS証券の誤発注問題に学ぶ姿勢があり、それをシステムのアップグレードに活かしているべきであったと思います。証券会社の入力画面が備えるべきチェック機能は、入力値のみの演算によるだけではなく、発行体のデータベースの「発行済株式数」や「前日終値」のような情報をも参照して、入念になされるべきだと思うし、今回の問題を受けてそのような方向にすでに動き出しているように感じられます。

過去のエントリーをご覧いたがくと分かるように、私はともすれば独善的になりがちです(笑)。今後も広範な視点からご教授をいただければ誠に幸いです。

Posted by: 児玉 at 2005年12月15日 11:19

なぜかみずほ証券のシステムの問題については触れていませんね。株数と価格の誤発注は今回がはじめてではありません。以前UBS証券が電通の上場の時に同じような間違えを行って多大なる損益をだしました。ちゃんとして取引システムであれば、上場当日の株に対しては、何らかの価格を設定して、その価格に枚数をかけて総資産額が設定値を超えていれば発注できなくするような対策は行っていなければならないのは当然の対応です。

現に新聞ではそのようなシステムの画面の写真が日経などでイラストされています。

バグがないシステムはない。特に想定外の問題に対応するシステムはない。

歴史と経験に基いてシステムは進化する必要があるのではないでしょうか?

東証のシステムは1999年から動いているシステムです。そのシステムに対応する売買システムも長い間動いています。過去の経験を生かしていないシステムへの評価も必要と思います。

MikeRossTky

Posted by: MikeRossTky at 2005年12月14日 22:20

>dando様

当ブログの書き込みを取り上げていただき、誠にありがとうございます。これは私のMovable Typeの不具合だと思うのですが、dando様のお名前からのリンクが私のサイトになっているため、私が代わって貴サイト『ブログ時評』のリンクを下記に貼らせていただきます。

http://dando.exblog.jp/

Posted by: 児玉 at 2005年12月14日 09:24

開設している「ブログ時評」で触れさせていただきました。

Posted by: dando at 2005年12月13日 23:59
Post a comment









Remember personal info?