mk-mode BLOG

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

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

株価 - 売買サインチェック(RCI・ゴールデンクロス/デッドクロス版)!

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

こんばんは。

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

前回は、「RCI」というものを利用して同様の検証を行いました。

今回は、複数の異なる日数で計算した RCI のクロスを売買サインとする方法です。

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

RCI の計算方法については、「株価 - 売買サインチェック(RCI版)!」を参照してください。

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

1.前提条件

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

1.定義

何を以って、買いサイン・売りサインと見なすかですが、

  • 買いサイン : 短期 RCI が 長期 RCI を -80% 以下の位置で下から上抜けた時 (ゴールデンクロス発生)
  • 売りサイン : 短期 RCI が 長期 RCI を 80% 以上の位置で上から下抜けた時 (デッドクロス発生)

と定義しました。 ※短期・長期 RCI の計算に使用する日数は、9, 26, 52 の組み合わせが一般的。

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

2.検証銘柄と検証期間

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

2.検証結果

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

1
2
3
4
[  DAYS  ]    [Long ]  [Short]
[  9, 26 ]     38,642   32,493
[  9, 52 ]     22,320   17,603
[ 26, 52 ]     28,086   23,589

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

以下は、[ 9日, 26日 ] で検証した結果です。

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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
[SIGN][DAYS]  [UP   ] (     %) [EVEN ] (     %) [DOWN ] (     %)
Long  (  1 )   17,822 (46.13%)   3,596 ( 9.31%)  17,218 (44.56%)
Long  (  2 )   18,438 (47.73%)   2,233 ( 5.78%)  17,961 (46.49%)
Long  (  3 )   19,002 (49.19%)   1,687 ( 4.37%)  17,939 (46.44%)
Long  (  4 )   19,447 (50.35%)   1,394 ( 3.61%)  17,786 (46.05%)
Long  (  5 )   19,771 (51.19%)   1,215 ( 3.15%)  17,636 (45.66%)
Long  (  6 )   19,752 (51.15%)   1,185 ( 3.07%)  17,681 (45.78%)
Long  (  7 )   19,895 (51.53%)   1,040 ( 2.69%)  17,672 (45.77%)
Long  (  8 )   20,006 (51.83%)     937 ( 2.43%)  17,655 (45.74%)
Long  (  9 )   19,888 (51.53%)     966 ( 2.50%)  17,742 (45.97%)
Long  ( 10 )   19,927 (51.63%)     887 ( 2.30%)  17,781 (46.07%)
Long  ( 11 )   19,915 (51.61%)     866 ( 2.24%)  17,810 (46.15%)
Long  ( 12 )   19,938 (51.67%)     815 ( 2.11%)  17,835 (46.22%)
Long  ( 13 )   19,759 (51.21%)     799 ( 2.07%)  18,027 (46.72%)
Long  ( 14 )   19,802 (51.33%)     767 ( 1.99%)  18,011 (46.68%)
Long  ( 15 )   19,803 (51.33%)     769 ( 1.99%)  18,008 (46.68%)
Long  ( 16 )   19,847 (51.45%)     719 ( 1.86%)  18,011 (46.69%)
Long  ( 17 )   19,798 (51.33%)     659 ( 1.71%)  18,116 (46.97%)
Long  ( 18 )   19,873 (51.53%)     663 ( 1.72%)  18,033 (46.76%)
Long  ( 19 )   19,842 (51.45%)     625 ( 1.62%)  18,097 (46.93%)
Long  ( 20 )   19,664 (51.00%)     598 ( 1.55%)  18,298 (47.45%)
Long  ( 21 )   19,528 (50.65%)     671 ( 1.74%)  18,355 (47.61%)
Long  ( 22 )   19,344 (50.21%)     633 ( 1.64%)  18,551 (48.15%)
Long  ( 23 )   19,300 (50.16%)     591 ( 1.54%)  18,585 (48.30%)
Long  ( 24 )   19,131 (49.82%)     572 ( 1.49%)  18,695 (48.69%)
Long  ( 25 )   19,026 (49.61%)     554 ( 1.44%)  18,768 (48.94%)
Long  ( 26 )   18,884 (49.27%)     546 ( 1.42%)  18,901 (49.31%)
Long  ( 27 )   18,804 (49.13%)     538 ( 1.41%)  18,930 (49.46%)
Long  ( 28 )   18,840 (49.26%)     500 ( 1.31%)  18,904 (49.43%)
Long  ( 29 )   18,777 (49.16%)     477 ( 1.25%)  18,944 (49.59%)
Long  ( 30 )   18,710 (49.03%)     464 ( 1.22%)  18,989 (49.76%)
Long  ( 31 )   18,654 (48.91%)     482 ( 1.26%)  19,003 (49.83%)
Long  ( 32 )   18,638 (48.91%)     478 ( 1.25%)  18,987 (49.83%)
Long  ( 33 )   18,588 (48.82%)     439 ( 1.15%)  19,049 (50.03%)
Long  ( 34 )   18,560 (48.77%)     412 ( 1.08%)  19,088 (50.15%)
Long  ( 35 )   18,399 (48.34%)     433 ( 1.14%)  19,226 (50.52%)
Short (  1 )   13,749 (42.32%)   3,288 (10.12%)  15,450 (47.56%)
Short (  2 )   14,371 (44.26%)   2,022 ( 6.23%)  16,078 (49.51%)
Short (  3 )   14,534 (44.77%)   1,661 ( 5.12%)  16,270 (50.12%)
Short (  4 )   14,776 (45.53%)   1,355 ( 4.18%)  16,322 (50.29%)
Short (  5 )   14,806 (45.64%)   1,208 ( 3.72%)  16,426 (50.64%)
Short (  6 )   15,040 (46.38%)   1,059 ( 3.27%)  16,330 (50.36%)
Short (  7 )   15,295 (47.18%)   1,004 ( 3.10%)  16,119 (49.72%)
Short (  8 )   15,567 (48.04%)     883 ( 2.72%)  15,957 (49.24%)
Short (  9 )   15,693 (48.45%)     877 ( 2.71%)  15,820 (48.84%)
Short ( 10 )   15,754 (48.66%)     786 ( 2.43%)  15,837 (48.91%)
Short ( 11 )   15,772 (48.74%)     771 ( 2.38%)  15,819 (48.88%)
Short ( 12 )   15,795 (48.83%)     683 ( 2.11%)  15,867 (49.06%)
Short ( 13 )   15,761 (48.75%)     625 ( 1.93%)  15,942 (49.31%)
Short ( 14 )   15,701 (48.57%)     603 ( 1.87%)  16,023 (49.57%)
Short ( 15 )   15,748 (48.73%)     601 ( 1.86%)  15,968 (49.41%)
Short ( 16 )   15,695 (48.58%)     548 ( 1.70%)  16,064 (49.72%)
Short ( 17 )   15,752 (48.77%)     494 ( 1.53%)  16,050 (49.70%)
Short ( 18 )   15,660 (48.50%)     526 ( 1.63%)  16,102 (49.87%)
Short ( 19 )   15,680 (48.56%)     465 ( 1.44%)  16,142 (50.00%)
Short ( 20 )   15,613 (48.36%)     480 ( 1.49%)  16,192 (50.15%)
Short ( 21 )   15,443 (47.84%)     463 ( 1.43%)  16,376 (50.73%)
Short ( 22 )   15,398 (47.71%)     428 ( 1.33%)  16,451 (50.97%)
Short ( 23 )   15,326 (47.49%)     452 ( 1.40%)  16,496 (51.11%)
Short ( 24 )   15,238 (47.23%)     414 ( 1.28%)  16,614 (51.49%)
Short ( 25 )   15,200 (47.12%)     395 ( 1.22%)  16,664 (51.66%)
Short ( 26 )   15,173 (47.05%)     385 ( 1.19%)  16,694 (51.76%)
Short ( 27 )   15,166 (47.03%)     384 ( 1.19%)  16,695 (51.78%)
Short ( 28 )   15,161 (47.02%)     360 ( 1.12%)  16,720 (51.86%)
Short ( 29 )   15,140 (46.96%)     354 ( 1.10%)  16,745 (51.94%)
Short ( 30 )   15,098 (46.83%)     397 ( 1.23%)  16,743 (51.94%)
Short ( 31 )   15,021 (46.60%)     387 ( 1.20%)  16,826 (52.20%)
Short ( 32 )   15,032 (46.64%)     408 ( 1.27%)  16,791 (52.10%)
Short ( 33 )   15,058 (46.73%)     362 ( 1.12%)  16,806 (52.15%)
Short ( 34 )   15,071 (46.77%)     332 ( 1.03%)  16,821 (52.20%)
Short ( 35 )   14,990 (46.53%)     354 ( 1.10%)  16,873 (52.37%)

特に大きな特徴はないように思える。 [ 9日, 52日 ], [ 26日, 52日 ] で検証した結果は掲載していないが、同様の結果となった。 ※[ 9日, 26日 ] では 9 + 26 = 35(日), [ 9日, 52日 ] では 9 + 52 = 61(日), [ 26日, 52日 ] では 26 + 52 = 78(日) 後までしか検証していない。

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

買いサイン発生後、何日後に最も上昇したか、 売りサイン発生後、何日後に最も下降したか、を検証。 以下は、[ 9日, 26日 ] で検証した結果です。

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
[DAYS]  [Long ]  [Short]
[  1 ]    4,336    3,505
[  2 ]    2,501    2,117
[  3 ]    2,004    1,644
[  4 ]    1,740    1,458
[  5 ]    1,661    1,347
[  6 ]    1,487    1,100
[  7 ]    1,391    1,009
[  8 ]    1,293      909
[  9 ]    1,281      860
[ 10 ]    1,189      814
[ 11 ]    1,085      782
[ 12 ]    1,102      783
[ 13 ]    1,047      783
[ 14 ]      984      815
[ 15 ]    1,101      825
[ 16 ]    1,084      788
[ 17 ]    1,010      830
[ 18 ]    1,035      795
[ 19 ]      929      845
[ 20 ]      935      816
[ 21 ]      929      810
[ 22 ]      878      908
[ 23 ]      854      802
[ 24 ]      886      874
[ 25 ]      866      874
[ 26 ]      910      928
[ 27 ]      949      957
[ 28 ]      962      894
[ 29 ]    1,074      964
[ 30 ]    1,075    1,074
[ 31 ]    1,180    1,172
[ 32 ]    1,322    1,252
[ 33 ]    1,442    1,475
[ 34 ]    1,734    1,684
[ 35 ]    2,944    2,933

買い(売り)サインが発生した翌日と35日後に大きく上昇(下降)している。 [ 9日, 52日 ], [ 26日, 52日 ] で検証した結果は掲載していないが、こちらも [ 9日, 52日 ] では翌日と61日後が、[ 26日, 52日 ] では翌日と78日後が大きく上昇(下降)する結果となった。 ※[ 9日, 26日 ] では 9 + 26 = 35(日), [ 9日, 52日 ] では 9 + 52 = 61(日), [ 26日, 52日 ] では 26 + 52 = 78(日) 後までしか検証していない。

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

以下は、[ 9日, 26日 ] で検証した結果です。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[DAYS]    [+]    [0]    [-]
[ 14 ]      1      0      0
[ 15 ]      2      0      0
[ 16 ]      8      0      0
[ 17 ]     44      0      0
[ 18 ]     96      0      0
[ 19 ]    124      0      0
[ 20 ]    166      0      0
[ 21 ]    199      0      0
[ 22 ]    161      0      0
[ 23 ]    166      0      0
   :       :      :      :
[ 41 ]    107      0      5
[ 42 ]    108      0      4
[ 43 ]     90      0      2
[ 44 ]    102      0      4
[ 45 ]     90      1      2
[ 46 ]     77      0      3
[ 47 ]     90      1      4
[ 48 ]     91      0      6
[ 49 ]     81      2      4
[ 50 ]     94      0      7
   :       :      :      :

買いサインが発生して13日後までは売りサインが発生することはなく、14日後以降売りサイン発生時には買いサイン発生時の終値より高くなる傾向があることがわかります。 また、[ 9日, 52日 ], [ 26日, 52日 ] で検証した結果は掲載していないが、 [ 9日, 52日 ] では、29日後までは売りサインが発生することはなく、30日後以降売りサイン発生時には買いサイン発生時の終値より高くなる傾向があり、 [ 26日, 52日 ] では、28日後までは売りサインが発生することはなく、29日後以降売りサイン発生時には買いサイン発生時の終値より高くなる傾向があることが分かった。


上記の4番目の検証はかなり有効ではないでしょうか? Ruby 学習の延長で検証作業を行ってみましたが、こうして実際に実用的な何かを作成してみることで知識も深まっていきます。

以上。

Comments