皆さんは、銘柄をどのような基準で選択していますか?インターネット上のサイトで希望の銘柄の業績やチャート程度ならタダで得られるようになった昨今ですが、わざわざ自分で株価データを蓄積して、バカ高い金払って株ソフトを利用するのは、テクニカル指標によるスクリーニングを行うためではないでしょうか?拙者も少し前までは、株ソフトの真髄はスクリーニングにありと考えていました。そのため、ChartScapeでは、抽出条件設定のユーザインターフェースとかに注力していたのですが、反面「ちょっと違うかな…」との思い、漠然とした違和感のようなもの、もありました。
テクニカル指標によるスクリーニングでは、例えば、
従来のスクリーニングは、決定木による分類ということができます。いま簡単のために指標が2つ(例えば、13日RCIと100日移動平均乖離率)しかないとします。各日の各銘柄は、横軸を13日RCI、縦軸を100日移動平均乖離率とする平面上にプロットすることが可能です。決定木による分類では、この平面をX軸とY軸に平行な直線で分割した矩形領域内にある点(銘柄)を求めることができる訳です。
決定木の例
決定木による分類の例
実際はN個のテクニカル指標を組み合わせるわけですから、N次元空間上の領域を求めることになります。空間上の点はN個のテクニカル指標からなるベクトル
v = (v1, v2, ... vN) |
では、柔軟な条件で分類するには、どうしたらよいでしょう。いま、上がりそうな銘柄の特徴ベクトル(v0)が既知だったとします。調べたい銘柄の特徴ベクトル(v)とv0のN次元空間上の距離が近いほど、上がりそうであるといえるでしょう。2つのベクトル間の距離は2ベクトル間のコサインを計算することにより求めることができます。コサインの値が1に近いほど2つのベクトル間の距離が近いことになります。N次元空間上の2ベクトルのなす角のコサインは次式で求めることができます。
cosθ = v・v0 / |v||v0| |
k-NNによる分類の例
k-NNで従来のような画一的なスクリーニングとはおさらばし、画期的な銘柄抽出が可能と思いきや、実は「上がりそうな銘柄の特徴ベクトル」はどうやって見つけるのかを解決しなければなりません。これは、過去の事例に学ぶのが最良の方法です。 大量の特徴ベクトルの事例から、「ほにゃららの特徴を持つベクトルは短期的に値上がりする」といったルールを見つけ出すことをデータマイニングといいます。マイニングとは「発掘」のことですね。本連載では、データマイニングのテクニックを紹介しつつ、「銘柄マイニング」への適用の可能性を模索していきたいと思います。
次回(もし次回があれば)は、スクリーニングがなぜダメなのかを検証してみたいと思います。