チョコと株価の甘美な関係 part2
天候にも晴れの特異日があるのだから、バレンタイン効果の是非はともかく、株価が上がる確率の高い日が存在するかもしれません。前ページで調べるための準備はほとんど終わっているので、もう一歩踏み込んでみましょう。
立会日の全てをピックアップ
過去20年間で株式市場が開いていた日を全て抽出して並び替えた後に、同じ日をまとめていけば、全ての立会日が得られます。
手順が難しそうですが、rpnとsortコマンドを使えば、たったの1行で簡単に処理できます。なお、sortコマンドの-nはデータを数字として解釈するためのオプションです。
これでuniq.dayファイルに20年間の全立会日が格納されているはずです。ファイルの中身を確認してみましょう。
104
105
106
107
108
:
(中略)
:
1226
1227
1228
1229
1230
日付の下4桁を数値として解釈しているので、データの最初は1月4日、最後のデータが12月30日になります。全部で353行のデータです。
さっそく、試しに1月4日の上昇率を計算してみましょう。少し手順がややこしくなっていますが、全体のデータ数とプラスだったデータ数を求めて、勝率を求めています。
>rpn -c count <tmp >total
>rpn x _ z <tmp | rpn 1 1 -c lookup | rpn -c count >win
>paste total win | rpn #w #t @t @w @w @t /
15 10 0.666667
最後の15は全日数で、10が上昇した日数、最後が勝率です。勝率だけ高くても立会日の日数が少ない可能性もありますから、日数も併記してあります。
結果は15日中で10日の上昇です。約67%上がっていますね。
1月4日が休みの年もあるので、大発会の時の上昇率ではありません。
このようにして1月4日から12月30日まで計算すれば、もしかすると100%上昇する日を見つけられるかもしれません。
株価が上昇する確率の高い日を求める
上の手順を毎回タイプするのは大変なのでバッチファイルを作って対応します。ファイル名を"dayup.bat"として保存すれば毎回タイプしなくても連続処理できます。
rpn x 10000 %% x <nikkei.dat | rpn %1 %1 -c lookup >tmp
rpn -c count <tmp >total
rpn x _ z <tmp | rpn 1 1 -c lookup | rpn -c count >win
paste total win | rpn #w #t @t @w @w @t / >>dayup.txt
==================================
%%に注意してください。バッチファイルは%に続く数字でパラメータの置換を行ないます。rpnの%は剰余を示す記号なのでエスケープするために%%とします。
バッチファイルができれば、以下のコマンドを投入すればすぐ計算できます。
DOSプロンプトに返答は帰ってきませんが、dayup.txtファイルに過去20年間における1月4日の全日数、上昇した日数、勝率が記録されます。
この処理を全日数分、つまり353日分繰り返せばいいのですが、とても手間がかかるので、バッチファイルの"dayup.bat"を呼び出すバッチファイルの"checkday.bat"を作ります。
checkday --> dayup 104
--> dayup 105
:
--> dayup 1230
作り方は簡単で以下のように全部のコマンドをcheckday.batファイルに予め書いておけばOKです。
del dayup.txt
call dayup 104
call dayup 105
call dayup 106
:
(中略)
:
call dayup 1228
call dayup 1229
call dayup 1230
==================================
ここまでできれば、あとはcheckdayコマンドを投入すれば、連続で1月4日から12月30日までの日付を一つ一つチェックしてくれます。
結果はdayup.txtファイルにあるはずです。さっそく、内容を確認してみます。
15 10 0.666667
16 7 0.4375
15 8 0.533333
14 7 0.5
11 3 0.272727
:
(中略)
:
14 11 0.785714
15 7 0.466667
15 7 0.466667
15 8 0.533333
14 7 0.5
日付がありませんが、冒頭で作成した日付を格納したuniq.dayファイルと結合すれば分かりやすくなります。
104 15 10 0.666667
105 16 7 0.4375
106 15 8 0.533333
107 14 7 0.5
108 11 3 0.272727
:
(中略)
:
1226 14 11 0.785714
1227 15 7 0.466667
1228 15 7 0.466667
1229 15 8 0.533333
1230 14 7 0.5
株価が上昇しやすい日のトップ10
さあ、株価が上昇する日を探しましょう。まずはトップ10です。これまで同様にrpnとsortコマンドで簡単に処理できます。なお、sortコマンドの-rは降順で出力するオプションです。
0.916667 1104 12 11
0.866667 913 15 13
0.833333 919 12 10
0.833333 321 6 5
0.785714 326 14 11
0.785714 225 14 11
0.785714 214 14 11
0.785714 131 14 11
0.785714 1226 14 11
0.769231 814 13 10
順に確率、日付、全日数、上昇した日数が計算されています。
どうも11月4日が最も株価が上昇した確率の高い日のようです。100%ではありませんでしたが、その確率はなんと約92%です。全12回中で11回上昇しています。その他8割台が3つ、残りは全て7割台です。2月14日のバレンタインデーも7位にランクインしています。
ちなみに、上昇確率トップの11月4日はユネスコ憲章記念日です。2位の9月13日は司法保護記念日、3位の9月19日は苗字の日です。何かのアノマリーがあるのかもしれませんが、理由付けは困難な感じがします。
株価が下落しやすい日のトップ10
次にワースト10を求めてみましょう。最も株価が下がる確率の高かった順になります。
0.142857 1107 14 2
0.153846 1113 13 2
0.181818 1009 11 2
0.214286 1021 14 3
0.214286 1024 14 3
0.214286 509 14 3
0.214286 606 14 3
0.214286 805 14 3
0.214286 922 14 3
0.230769 904 13 3
ワーストの上昇率は僅か14%です。ちなみに、そのワースト1位の11月7日は鍋の日です。そして、11月13日はあいさつの日、10月9日は世界郵便デーです。これも理由付けはちょっと困難でしょう。
株価上昇確率から見えてくる傾向
ところで、トップ10とワースト10のリストを見ていて、それぞれの発生月に偏りがあることに気付きます。
上位/下位 |
発生月
|
---|---|
トップ10 |
11月、9月、9月、3月、3月、2月、2月、1月、1月、8月
|
ワースト10 |
11月、11月、10月、10月、10月、5月、6月、8月、9月、9月
|
度数分布にして眺めてみましょう。
|
|
|
2
| * * * *+ +
|
|
|
1
| + + *+ *
|
|
| x
|o 12
+--1--2--3---4--5--6---7--8--9---10-11->
グラフの横軸が月で縦軸が度数です。"*"がトップ10で"+"がワースト10なのですが、年末にワースト10が多いような…何か傾向があるような気がしませんか。
ただ、サンプル数が少なくてよく分かりません。そこでサンプル数を100に増やして傾向を探ってみます。まずはトップ100の度数分布です。グラフ化まで一気に処理します。
>rpn _ _ 100 / i x _ <tmp | rpn -c freq >tmp2
>xyp -x,12 -y,15 -s1,5 -n -m <tmp2
^y 15
|
|
|
10 * * * *
| *
| *
| *
| * *
5 *
| *
| *
|
| x
|o 12
+--1--2--3---4--5--6---7--8--9---10-11->
続いて、ワースト100の度数分布です。
>rpn _ _ 100 / i x _ <tmp | rpn -c freq >tmp2
>xyp -x,12 -y,15 -d+ -s1,5 -n -m <tmp2
^y 15
|
| +
|
10 + +
| +
| + +
| + +
|
5 +
| + + +
|
|
| x
|o 12
+--1--2--3---4--5--6---7--8--9---10-11->
やはり、傾向に違いが感じられませんか。二つのグラフを重ねてみましょう。
|
| +
|
10 + + * * * *
| * +
| * +
| + * +
| * *
5 * +
| * + + +
| *
|
| x
|o 12
+--1--2--3---4--5--6---7--8--9---10-11->
上記同様、横軸が月で縦軸が度数、"*"が株価上昇率トップ100の度数分布です。"+"はワースト100ですね。年末に向かって勝率の悪い日が増える感じがよく分かります。
まとめると次のようになります。
- 年央(春・夏)は値上がりトップ100に入る確率が高い。
- 年初(冬)と年末(秋)は値下がりトップ100に入る確率が高い。
株価が上昇する傾向のある月や曜日に関する記事が曜日と月が教える株の投資にあります。興味のある人は閲覧ください。
バレンタイン効果の有無
一年を通して、上昇確率を調べるとバレンタイン効果よりも高い確率の日がたくさんあることが分かります。取り立ててバレンタインデーだけが特別というわけではなさそうですね。
とは言っても、証明が困難なのが株式アノマリーの特徴です。バレンタイン効果については、ひとつの話題として楽しむのが大人の対応になるようです。
rpnプログラムを実行するには、rpn試用版かrpn標準版が必要です(バージョンの違いはこちら)。
pasteは講座サポートで公開されています。lookup, uniqはユーティリティーパッケージに同梱されています。head, freqはrpnマイスターパッケージに同梱されています。xypとnpdはrpnの姉妹ソフトウェアです。詳しくはプロダクトを参照ください。