株価 - 売買サインチェック(ストキャスティクス版)!
Updated:
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.計算式
まず、各指標の計算式です。
2.定義
前記の計算式から、
- Fast%KラインとFast%Dラインの動きの早さを比べた場合、Fast%Kの方が動きの早いライン
- Fast%DラインとSlow%Dラインの動きの早さを比べた場合、Fast%Dの方が動きの早いライン
となります。
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 ] とした場合
[SIGN] [ Fast ] [ Slow ]
Long 125,710 283,509
Short 118,226 260,994
[ Fast%K : 9, Fast%D : 3, Slow%D : 3 ] とした場合
[SIGN] [ Fast ] [ Slow ]
Long 189,259 316,841
Short 172,584 285,152
[ Fast%K : 14, Fast%D : 3, Slow%D : 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 ] で検証した結果です。 [ ファスト・ストキャスティクス ]
[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%)
[ スロー・ストキャスティクス ]
[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 ] で検証した結果です。 [ ファスト・ストキャスティクス ]
[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
[ スロー・ストキャスティクス ]
[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 ] で検証した結果です。 [ ファスト・ストキャスティクス ]
[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
: : : :
[ スロー・ストキャスティクス ]
[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