mk-mode BLOG

このブログは自作の自宅サーバに構築した Debian GNU/Linux で運用しています。
PC・サーバ構築等の話題を中心に公開しております。(クローンサイト: GitHub Pages

ブログ開設日2009-01-05
サーバ連続稼働時間
Reading...
Page View 合計
Reading...
今日
Reading...
昨日
Reading...

株価 - 売買サインチェック(ストキャスティクス版)!

[ プログラミング, 株式 ] [ MySQL, Ruby ]

こんばんは。

Ruby + MySQL で自作した株価取得のシステム。 全市場(東京・大阪・名古屋・札幌・福岡)の全銘柄の2000年からの全取引データを取得しています。

これまで、色々な指数を利用して売買サインを検証してきました。 今回は、「ストキャスティクス」というものを利用して同様の検証を行いました。

※個人的な記録ですので、興味が無ければ読み飛ばしてください。 ※全体的にどんな傾向があるのかを把握するのと、Ruby の学習が目的です。 ※検証結果を取り纏めたものなので、掲載している結果自体ではあまり有効性は感じません。 ※ただ、個別に調べてみるとおもしろいものとなります。

まず、ストキャスティクス(= Stochastics)とは、一定期間の最安値と最高値を基準に、現在の株価が買われすぎか、売られすぎかを観ることの出来る指標で、Fast%K、Fast%D、Slow%D と呼ばれる3種類で構成されます。 (Fast%K を %K、Fast%D を %D、Slow%D を SD と表現する場合もあります。) 実際には、Fast%Kライン、Fast%Dライン、Slow%Dラインの3本のラインから2つのラインを選んで使用し、「買われすぎ」や「売られすぎ」の状態を観ます。 ※定義は以降の記事参照。

以下に、前提条件・検証結果を掲載します。

1.前提条件

以降に出てくる Long は買いサイン、Short は売りサインを表しています。

1.計算式

まず、各指標の計算式です。

STOCASTICS

2.定義

前記の計算式から、

  • Fast%KラインとFast%Dラインの動きの早さを比べた場合、Fast%Kの方が動きの早いライン
  • Fast%DラインとSlow%Dラインの動きの早さを比べた場合、Fast%Dの方が動きの早いライン

となります。

STOCHASTICS_1

1の性質を利用した指標を「ファスト・ストキャスティクス」、2の性質を利用した指標を「スロー・ストキャスティクス」と呼ぶことにします。 次に、以下のように買いサイン・売りサインを定義します。

  • ファスト・ストキャスティクス

  • Fast%K が A%以下の圏域で Fast%D を上抜けたら買いサイン

  • Fast%K が B%以上の圏域で Fast%D を下抜けたら売りサイン

  • スロー・ストキャスティクス

  • Fast%D が A%以下の圏域で Slow%D を上抜けたら買いサイン

  • Fast%D が B%以上の圏域で Slow%D を下抜けたら売りサイン

※A, B の値は [ 20, 80 ] や [ 25, 75 ] を使用する事が多い ちなみに、ファスト・ストキャスティクスは乱高下するが、スロー・ストキャスティクスは動きが穏やかとなります。

また、今回の検証では調整後終値(株式分割があった場合の調整値)を考慮していません。終値で検証しています。

2.検証銘柄と検証期間

2012年2月17日現在上場している全市場の3,599銘柄を対象に、2000年1月1日から2011年12月31日の株価データを使用して検証しました。 また、複数の市場に上場している銘柄については、優先市場のみで検証しました。 ※全取引件数は 7,960,496 件

2.検証結果

売買サインを判定する圏域はファスト・スローともに [ 20%, 80% ] とした。

1.サインが発生した件数

[ Fast%K : 5, Fast%D : 3, Slow%D : 3 ] とした場合

1
2
3
[SIGN]  [ Fast ]  [ Slow ]
Long     125,710   283,509
Short    118,226   260,994

[ Fast%K : 9, Fast%D : 3, Slow%D : 3 ] とした場合

1
2
3
[SIGN]  [ Fast ]  [ Slow ]
Long     189,259   316,841
Short    172,584   285,152

[ Fast%K : 14, Fast%D : 3, Slow%D : 3 ] とした場合

1
2
3
[SIGN]  [ Fast ]  [ Slow ]
Long     228,388   318,220
Short    201,860   280,168

ファスト・ストキャスティクスの場合、14日よりも9日、9日よりも5日で計算した方が売買サインが絞られるようです。

2.各サイン発生○日後に上昇・変動なし・下降した件数

以下は、[ Fast%K : 5, Fast%D : 3, Slow%D : 3 ] で検証した結果です。 [ ファスト・ストキャスティクス ]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
[SIGN][DAYS]  [UP   ] (     %) [EVEN ] (     %) [DOWN ] (     %)
Long  (  1 )   57,630 (45.87%)  12,236 ( 9.74%)  55,764 (44.39%)
Long  (  2 )   60,146 (47.90%)   7,027 ( 5.60%)  58,394 (46.50%)
Long  (  3 )   61,198 (48.76%)   5,356 ( 4.27%)  58,957 (46.97%)
Long  (  4 )   61,774 (49.24%)   4,530 ( 3.61%)  59,147 (47.15%)
Long  (  5 )   61,588 (49.11%)   3,997 ( 3.19%)  59,819 (47.70%)
Long  (  6 )   61,715 (49.22%)   3,606 ( 2.88%)  60,055 (47.90%)
Long  (  7 )   61,555 (49.12%)   3,391 ( 2.71%)  60,379 (48.18%)
Long  (  8 )   61,345 (49.00%)   3,151 ( 2.52%)  60,708 (48.49%)
Long  (  9 )   60,978 (48.74%)   2,922 ( 2.34%)  61,219 (48.93%)
Long  ( 10 )   60,762 (48.61%)   2,699 ( 2.16%)  61,546 (49.23%)
Long  ( 11 )   60,594 (48.49%)   2,573 ( 2.06%)  61,806 (49.46%)
Long  ( 12 )   60,315 (48.27%)   2,499 ( 2.00%)  62,136 (49.73%)
Long  ( 13 )   60,208 (48.19%)   2,292 ( 1.83%)  62,430 (49.97%)
Long  ( 14 )   60,084 (48.12%)   2,243 ( 1.80%)  62,534 (50.08%)
Long  ( 15 )   60,066 (48.12%)   2,238 ( 1.79%)  62,531 (50.09%)
Long  ( 16 )   59,921 (48.02%)   2,104 ( 1.69%)  62,764 (50.30%)
Long  ( 17 )   59,754 (47.90%)   2,027 ( 1.62%)  62,969 (50.48%)
Long  ( 18 )   59,705 (47.87%)   1,976 ( 1.58%)  63,054 (50.55%)
Long  ( 19 )   59,408 (47.64%)   1,924 ( 1.54%)  63,380 (50.82%)
Long  ( 20 )   59,172 (47.46%)   1,871 ( 1.50%)  63,647 (51.04%)
Long  ( 21 )   59,178 (47.47%)   1,774 ( 1.42%)  63,719 (51.11%)
Long  ( 22 )   59,039 (47.36%)   1,825 ( 1.46%)  63,785 (51.17%)
Long  ( 23 )   58,818 (47.20%)   1,739 ( 1.40%)  64,058 (51.40%)
Long  ( 24 )   58,729 (47.17%)   1,738 ( 1.40%)  64,047 (51.44%)
Long  ( 25 )   58,654 (47.14%)   1,653 ( 1.33%)  64,117 (51.53%)
Long  ( 26 )   58,419 (46.97%)   1,717 ( 1.38%)  64,246 (51.65%)
Long  ( 27 )   58,182 (46.81%)   1,623 ( 1.31%)  64,494 (51.89%)
Long  ( 28 )   58,136 (46.79%)   1,542 ( 1.24%)  64,565 (51.97%)
Short (  1 )   47,777 (40.42%)  10,176 ( 8.61%)  60,248 (50.97%)
Short (  2 )   49,685 (42.05%)   6,076 ( 5.14%)  62,407 (52.81%)
Short (  3 )   50,221 (42.51%)   4,736 ( 4.01%)  63,177 (53.48%)
Short (  4 )   50,343 (42.63%)   3,941 ( 3.34%)  63,798 (54.03%)
Short (  5 )   50,964 (43.18%)   3,427 ( 2.90%)  63,628 (53.91%)
Short (  6 )   51,080 (43.30%)   3,101 ( 2.63%)  63,777 (54.07%)
Short (  7 )   51,255 (43.46%)   2,977 ( 2.52%)  63,702 (54.01%)
Short (  8 )   51,746 (43.89%)   2,645 ( 2.24%)  63,517 (53.87%)
Short (  9 )   51,775 (43.92%)   2,621 ( 2.22%)  63,488 (53.86%)
Short ( 10 )   51,940 (44.07%)   2,448 ( 2.08%)  63,480 (53.86%)
Short ( 11 )   52,344 (44.42%)   2,217 ( 1.88%)  63,271 (53.70%)
Short ( 12 )   52,532 (44.62%)   2,184 ( 1.85%)  63,029 (53.53%)
Short ( 13 )   52,602 (44.70%)   2,022 ( 1.72%)  63,047 (53.58%)
Short ( 14 )   52,697 (44.80%)   1,868 ( 1.59%)  63,072 (53.62%)
Short ( 15 )   52,838 (44.95%)   1,886 ( 1.60%)  62,830 (53.45%)
Short ( 16 )   53,054 (45.15%)   1,793 ( 1.53%)  62,667 (53.33%)
Short ( 17 )   53,164 (45.25%)   1,703 ( 1.45%)  62,619 (53.30%)
Short ( 18 )   52,965 (45.11%)   1,713 ( 1.46%)  62,734 (53.43%)
Short ( 19 )   53,038 (45.21%)   1,599 ( 1.36%)  62,680 (53.43%)
Short ( 20 )   52,895 (45.12%)   1,573 ( 1.34%)  62,756 (53.54%)
Short ( 21 )   52,975 (45.22%)   1,545 ( 1.32%)  62,617 (53.46%)
Short ( 22 )   52,762 (45.10%)   1,518 ( 1.30%)  62,713 (53.60%)
Short ( 23 )   52,701 (45.06%)   1,490 ( 1.27%)  62,770 (53.67%)
Short ( 24 )   52,790 (45.14%)   1,389 ( 1.19%)  62,771 (53.67%)
Short ( 25 )   52,786 (45.14%)   1,272 ( 1.09%)  62,871 (53.77%)
Short ( 26 )   52,653 (45.04%)   1,352 ( 1.16%)  62,886 (53.80%)
Short ( 27 )   52,634 (45.04%)   1,336 ( 1.14%)  62,895 (53.82%)
Short ( 28 )   52,446 (44.89%)   1,278 ( 1.09%)  63,102 (54.01%)

[ スロー・ストキャスティクス ]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
[SIGN][DAYS]  [UP   ] (     %) [EVEN ] (     %) [DOWN ] (     %)
Long  (  1 )  126,336 (44.58%)  28,604 (10.09%) 128,420 (45.32%)
Long  (  2 )  132,359 (46.73%)  17,847 ( 6.30%) 133,011 (46.96%)
Long  (  3 )  135,328 (47.80%)  13,948 ( 4.93%) 133,824 (47.27%)
Long  (  4 )  135,911 (48.02%)  11,944 ( 4.22%) 135,166 (47.76%)
Long  (  5 )  136,439 (48.22%)  10,567 ( 3.73%) 135,942 (48.04%)
Long  (  6 )  136,278 (48.18%)   9,762 ( 3.45%) 136,795 (48.37%)
Long  (  7 )  136,058 (48.15%)   8,988 ( 3.18%) 137,505 (48.67%)
Long  (  8 )  135,918 (48.17%)   8,363 ( 2.96%) 137,888 (48.87%)
Long  (  9 )  136,054 (48.25%)   7,753 ( 2.75%) 138,186 (49.00%)
Long  ( 10 )  136,431 (48.39%)   7,333 ( 2.60%) 138,150 (49.00%)
Long  ( 11 )  135,921 (48.22%)   6,904 ( 2.45%) 139,050 (49.33%)
Long  ( 12 )  135,216 (47.98%)   6,519 ( 2.31%) 140,061 (49.70%)
Long  ( 13 )  135,289 (48.02%)   6,252 ( 2.22%) 140,192 (49.76%)
Long  ( 14 )  134,950 (47.92%)   6,124 ( 2.17%) 140,558 (49.91%)
Long  ( 15 )  134,468 (47.76%)   5,783 ( 2.05%) 141,325 (50.19%)
Long  ( 16 )  134,031 (47.61%)   5,682 ( 2.02%) 141,808 (50.37%)
Long  ( 17 )  133,824 (47.54%)   5,470 ( 1.94%) 142,177 (50.51%)
Long  ( 18 )  133,642 (47.49%)   5,293 ( 1.88%) 142,503 (50.63%)
Long  ( 19 )  133,469 (47.43%)   5,258 ( 1.87%) 142,672 (50.70%)
Long  ( 20 )  133,447 (47.43%)   4,928 ( 1.75%) 142,979 (50.82%)
Long  ( 21 )  133,427 (47.43%)   4,945 ( 1.76%) 142,934 (50.81%)
Long  ( 22 )  133,003 (47.29%)   4,680 ( 1.66%) 143,541 (51.04%)
Long  ( 23 )  132,436 (47.12%)   4,646 ( 1.65%) 143,989 (51.23%)
Long  ( 24 )  132,395 (47.14%)   4,566 ( 1.63%) 143,923 (51.24%)
Long  ( 25 )  132,169 (47.09%)   4,364 ( 1.55%) 144,154 (51.36%)
Long  ( 26 )  131,735 (46.95%)   4,360 ( 1.55%) 144,469 (51.49%)
Long  ( 27 )  131,338 (46.85%)   4,235 ( 1.51%) 144,785 (51.64%)
Long  ( 28 )  131,187 (46.82%)   4,164 ( 1.49%) 144,832 (51.69%)
Short (  1 )  110,737 (42.44%)  24,796 ( 9.50%) 125,390 (48.06%)
Short (  2 )  114,376 (43.85%)  15,767 ( 6.04%) 130,712 (50.11%)
Short (  3 )  115,232 (44.20%)  12,258 ( 4.70%) 133,245 (51.10%)
Short (  4 )  115,019 (44.14%)  10,485 ( 4.02%) 135,095 (51.84%)
Short (  5 )  115,716 (44.42%)   9,059 ( 3.48%) 135,744 (52.11%)
Short (  6 )  116,475 (44.72%)   8,281 ( 3.18%) 135,699 (52.10%)
Short (  7 )  116,627 (44.78%)   7,615 ( 2.92%) 136,177 (52.29%)
Short (  8 )  117,366 (45.08%)   6,966 ( 2.68%) 136,045 (52.25%)
Short (  9 )  117,823 (45.26%)   6,572 ( 2.52%) 135,925 (52.21%)
Short ( 10 )  117,992 (45.34%)   6,201 ( 2.38%) 136,043 (52.28%)
Short ( 11 )  118,721 (45.65%)   5,671 ( 2.18%) 135,698 (52.17%)
Short ( 12 )  118,870 (45.73%)   5,498 ( 2.12%) 135,564 (52.15%)
Short ( 13 )  119,078 (45.85%)   5,191 ( 2.00%) 135,434 (52.15%)
Short ( 14 )  119,424 (46.00%)   5,067 ( 1.95%) 135,125 (52.05%)
Short ( 15 )  119,739 (46.14%)   4,861 ( 1.87%) 134,907 (51.99%)
Short ( 16 )  119,807 (46.19%)   4,617 ( 1.78%) 134,957 (52.03%)
Short ( 17 )  119,635 (46.15%)   4,414 ( 1.70%) 135,194 (52.15%)
Short ( 18 )  119,527 (46.18%)   4,235 ( 1.64%) 135,049 (52.18%)
Short ( 19 )  119,547 (46.23%)   4,186 ( 1.62%) 134,833 (52.15%)
Short ( 20 )  119,401 (46.23%)   4,011 ( 1.55%) 134,872 (52.22%)
Short ( 21 )  119,082 (46.13%)   3,960 ( 1.53%) 135,092 (52.33%)
Short ( 22 )  118,829 (46.05%)   3,807 ( 1.48%) 135,431 (52.48%)
Short ( 23 )  118,701 (46.00%)   3,697 ( 1.43%) 135,637 (52.57%)
Short ( 24 )  118,812 (46.05%)   3,511 ( 1.36%) 135,659 (52.58%)
Short ( 25 )  118,441 (45.92%)   3,497 ( 1.36%) 135,994 (52.72%)
Short ( 26 )  118,289 (45.87%)   3,384 ( 1.31%) 136,180 (52.81%)
Short ( 27 )  117,900 (45.74%)   3,313 ( 1.29%) 136,568 (52.98%)
Short ( 28 )  117,821 (45.71%)   3,254 ( 1.26%) 136,659 (53.02%)

特に大きな特徴はないように思える。 強いて挙げるなら、売買サイン発生翌日は変動がない率が若干高め、というくらいでしょうか。 [ Fast%K : 5, Fast%D : 3, Slow%D : 3 ] のケースしか掲載していないが、Fast%K : 9、Fast%K : 14 とした場合も同様の結果となった。

3.何日後に最も上昇(買い)/下降(売り)したか

買いサイン発生後、何日後に最も上昇したか、 売りサイン発生後、何日後に最も下降したか、を検証。 以下は、[ Fast%K : 5, Fast%D : 3, Slow%D : 3 ] で検証した結果です。 [ ファスト・ストキャスティクス ]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
[DAYS]  [Long ] [Short]
[  1 ]   16,165  12,876
[  2 ]    9,652   7,676
[  3 ]    7,756   6,318
[  4 ]    6,840   5,619
[  5 ]    5,989   5,069
[  6 ]    5,418   4,693
[  7 ]    5,085   4,319
[  8 ]    4,743   4,010
[  9 ]    4,555   3,926
[ 10 ]    4,268   4,117
[ 11 ]    4,208   3,689
[ 12 ]    3,920   3,572
[ 13 ]    3,932   3,563
[ 14 ]    3,818   3,553
[ 15 ]    3,785   3,403
[ 16 ]    3,855   3,451
[ 17 ]    3,657   3,473
[ 18 ]    3,706   3,575
[ 19 ]    3,713   3,756
[ 20 ]    3,884   3,891
[ 21 ]    3,936   3,873
[ 22 ]    3,933   4,093
[ 23 ]    4,078   4,550
[ 24 ]    4,343   4,843
[ 25 ]    4,805   5,189
[ 26 ]    5,365   5,865
[ 27 ]    6,613   7,512
[ 28 ]   11,404  13,241

[ スロー・ストキャスティクス ]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
[DAYS]  [Long ] [Short]
[  1 ]   36,734  29,278
[  2 ]   21,821  17,970
[  3 ]   18,016  14,610
[  4 ]   15,617  12,758
[  5 ]   13,592  11,433
[  6 ]   12,235  10,455
[  7 ]   11,573   9,860
[  8 ]   10,681   9,475
[  9 ]   10,220   8,794
[ 10 ]   10,343   8,583
[ 11 ]    9,338   8,047
[ 12 ]    9,049   7,778
[ 13 ]    9,064   8,141
[ 14 ]    8,600   8,009
[ 15 ]    8,658   7,771
[ 16 ]    8,495   7,829
[ 17 ]    8,482   8,259
[ 18 ]    8,458   8,155
[ 19 ]    8,590   8,470
[ 20 ]    8,527   8,426
[ 21 ]    8,718   8,819
[ 22 ]    9,047   9,456
[ 23 ]    9,406  10,163
[ 24 ]    9,719  10,570
[ 25 ]   10,604  11,547
[ 26 ]   12,369  13,320
[ 27 ]   15,463  16,841
[ 28 ]   26,159  28,968

買い(売り)サインが発生した翌日と28日後に大きく上昇(下降)している。 [ Fast%K : 5, Fast%D : 3, Slow%D : 3 ]のケースしか掲載していないが、Fast%K : 9、Fast%K : 14 とした場合も28日後に大きく上昇(下降)していた。 ※28日後までしか検証していない。

4.買いサイン発生から売りサイン発生までの間隔と差が + か 0 か − を集計

以下は、[ Fast%K : 5, Fast%D : 3, Slow%D : 3 ] で検証した結果です。 [ ファスト・ストキャスティクス ]

1
2
3
4
5
6
7
8
9
10
11
12
[DAYS]     [+]    [0]    [-]
[  1 ]       0      0      0
[  2 ]      11      0      0
[  3 ]   1,933      0      0
[  4 ]   3,043     11     21
[  5 ]   2,098     27     61
[  6 ]   1,322     24     64
[  7 ]   1,301     29    195
[  8 ]   1,196     23    274
[  9 ]   1,174     25    388
[ 10 ]   1,064     31    394
   :        :      :      :

[ スロー・ストキャスティクス ]

1
2
3
4
5
6
7
8
9
10
11
12
[DAYS]     [+]    [0]    [-]
[  1 ]       0      0      0
[  2 ]       0      0      0
[  3 ]     136      7      1
[  4 ]   8,000    170    173
[  5 ]  17,178     82     65
[  6 ]  12,144     95     91
[  7 ]   8,303    106    161
[  8 ]   6,176    132    257
[  9 ]   5,464    128    467
[ 10 ]   5,063    122    573
   :        :      :      :

MACDシグナルと同様、全体的に次に売りサインが発生した時には上昇している場合が多い、という結果になった。 [ Fast%K : 5, Fast%D : 3, Slow%D : 3 ]のケースしか掲載していないが、Fast%K : 9、Fast%K : 14 とした場合も同様の結果となった。


MACDシグナルと同様、上記の4番目の検証はかなり有効ではないでしょうか? 計算間違いしていなければ、この手法だけでも利益を出せる、ということになる。 Ruby 学習の延長で検証作業を行ってみましたが、こうして実際に実用的な何かを作成してみることで知識も深まっていきます。

以上。

Comments