株価データで遊んでみた2 [戯言]
前回のあらすじ
大体去年1年分くらいの株価データ(実は10ヶ月分くらいしか無かったことが判明)が手元にあるので、「名状しがたいルールベースのエキスパートシステムのようなもの(笑)」を作って値上がりするルールの組み合わせを遺伝的アルゴリズムで探した所、74%の確率で上がるルールを見つけたんだけど、良く調べてみると全面高となった特定の日にみられる特徴的なパターンを検出するルールを見つけただけで、全然一般化できていなかったでござる。
そんなわけで続き。
基本ルールは前回と同じ。10日後に、1%以上値上がりしたら勝ち、1%以上値下がりしたら負け。
問題は、特定の日に特化するのをどう防ぐか。
そこで遺伝的アルゴリズムの評価関数を変更することにしました。
(前回は、勝った回数と負けた回数の比)
とりあえず思い付いたのは次の3つ。
- 1日毎のルールを満たす銘柄数をカウントし、閾値を超える様なルールは除外する。 (特定の日に特化しているルールは除外)
- 1日毎の全体の勝ち数と負け数をカウントし、どちらかに偏っている日を除外する。 (全面高、全面安の日を除外)
- 1日毎の全体の勝ち負け比と、ルールを満たす銘柄での勝ち負け比を比較して評価する。
1つ目は、閾値はどのくらいが妥当かとか、単純なルールは(ルールを満たすパターンが増えがちなので)除外されやすいとか、あります。
2つ目は、偏っているの基準をどうするかとか、対象データが減ってしまう問題有り。
3つ目は、無条件より高パフォーマンスなルールが期待できるものの、全体が下がっている場合なんかは負けが多いルールでも評価されてしまいます。
どれも、一長一短ですが、実装が楽だったので3つ目を使いました。
結果。
『24日以上、18日移動平均線の−2.8%を下回っている』
なんか、前回と比べて、すっごいシンプルなルールを見つけてきたけど、
大体7割くらいの日で、全体よりも上がりやすい。
………。えっと、逆張りの方が良いってことかな?
コメント 0