株価 - 売買サインチェック(RCI版)!
Updated:
Ruby + MySQL で自作した株価取得のシステム。 全市場(東京・大阪・名古屋・札幌・福岡)の全銘柄の2000年からの全取引データを取得しています。
これまで、色々な指数を利用して売買サインを検証してきました。 今回は、「RCI」というものを利用して同様の検証を行いました。 少し前に検証した「RSI」とは異なります。
※個人的な記録ですので、興味が無ければ読み飛ばしてください。 ※全体的にどんな傾向があるのかを把握するのと、Ruby の学習が目的です。 ※検証結果を取り纏めたものなので、掲載している結果自体ではあまり有効性は感じません。 ※ただ、個別に調べてみるとおもしろいものとなります。
RCI(= Rank Correlation Index)とは、「順位相関指数」と呼ばれている統計学を基にしたテクニカル指標で、「上がり始め」、「下がり始め」の時期とタイミングを捉える指標です。 相場の変化の様子を見ることができますが、反応が敏感なため、ダマシに出合う場合も多いので注意が必要です。 計算式は以下のとおり。
【計算例】[ n = 9 とした場合 ]
日 付 | 終 値 | 日付・順位 | 終値・順位 | 順位差 | 順位差の2乗 |
---|---|---|---|---|---|
8日前 | 141 | 9 | 9 | 0 | 0 |
7日前 | 160 | 8 | 2 | 6 | 36 |
6日前 | 152 | 7 | 4.5 | 2.5 | 6.25 |
5日前 | 152 | 6 | 4.5 | 1.5 | 2.25 |
4日前 | 163 | 5 | 1 | 4 | 16 |
3日前 | 153 | 4 | 3 | 1 | 1 |
2日前 | 147 | 3 | 6 | -3 | 9 |
1日前 | 144 | 2 | 7 | -5 | 25 |
当日 | 143 | 1 | 8 | -7 | 49 |
順位差の2乗の合計 | 144.5 |
RCI = ( 1 - 6 * 144.5 / ( 9 * ( 9^2 - 1 ) ) ) * 100
= ( 1 - 867 / 720 ) * 100
≒ 20.42 (%)
計算してみると分かりますが、
- すべてにおいて右上がり => RCI = 100 (%)
- すべてにおいて右下がり => RCI = -100 (%)
となります。
以下に、前提条件・検証結果を掲載します。
1.前提条件
以降に出てくる Long は買いサイン、Short は売りサインを表しています。
1.定義
何を以って、買いサイン・売りサインと見なすかですが、
-
DEF-1 ( RCIを使った順張り戦略 ) 買いサイン : RCI が 0% を下から上抜けた時 売りサイン : RCI が 0% を上から下抜けた時
-
DEF-2 ( RCIを使った逆張り戦略 ) 買いサイン : RCI -80% を上から下抜けた時 売りサイン : RCI +80% を下から上抜けた時 ※70%, 75% とする場合もあり。
と定義しました。 RCI を計算する日数は [ 9, 26, 52 ] の3種類としました。 そして、検証する場合、9日(26日, 52日)で計算する場合は検証は9日後(26日後, 52日後)までとしています。 また、調整後終値(株式分割があった場合の調整値)を考慮していません。
2.検証銘柄と検証期間
2012年2月24日現在上場している全市場の3,598銘柄を対象に、2000年1月1日から2011年12月31日の株価データを使用して検証しました。 また、複数の市場に上場している銘柄については、優先市場のみで検証しました。 ※全取引件数は 7,956,074 件
2.検証結果
1.サインが発生した件数
[ DEF-1 ] [ DEF-2 ]
[DAYS] [Long ] [Short] [DAYS] [Long ] [Short]
[ 9 ] 475,281 474,890 [ 9 ] 266,370 265,306
[ 26 ] 159,136 158,652 [ 26 ] 98,761 99,039
[ 52 ] 77,023 76,750 [ 52 ] 50,626 50,890
2.各サイン発生○日後に上昇・変動なし・下降した件数
以下は、9日で検証した結果です。
[ DEF-1 ]
[SIGN][DAYS] [UP ] ( %) [EVEN ] ( %) [DOWN ] ( %)
Long ( 1 ) 190,956 (40.21%) 58,727 (12.37%) 225,242 (47.43%)
Long ( 2 ) 198,856 (41.90%) 36,797 ( 7.75%) 238,995 (50.35%)
Long ( 3 ) 201,594 (42.50%) 28,938 ( 6.10%) 243,810 (51.40%)
Long ( 4 ) 203,685 (42.97%) 24,373 ( 5.14%) 245,943 (51.89%)
Long ( 5 ) 204,532 (43.17%) 21,527 ( 4.54%) 247,681 (52.28%)
Long ( 6 ) 205,336 (43.36%) 19,574 ( 4.13%) 248,673 (52.51%)
Long ( 7 ) 205,518 (43.41%) 17,907 ( 3.78%) 250,008 (52.81%)
Long ( 8 ) 206,601 (43.65%) 16,566 ( 3.50%) 250,134 (52.85%)
Long ( 9 ) 208,132 (43.98%) 15,881 ( 3.36%) 249,196 (52.66%)
Short ( 1 ) 211,082 (44.46%) 59,551 (12.54%) 204,113 (42.99%)
Short ( 2 ) 222,195 (46.82%) 37,543 ( 7.91%) 214,788 (45.26%)
Short ( 3 ) 225,496 (47.53%) 30,013 ( 6.33%) 218,879 (46.14%)
Short ( 4 ) 227,181 (47.91%) 25,349 ( 5.35%) 221,699 (46.75%)
Short ( 5 ) 228,083 (48.11%) 22,180 ( 4.68%) 223,819 (47.21%)
Short ( 6 ) 228,356 (48.19%) 20,208 ( 4.26%) 225,300 (47.55%)
Short ( 7 ) 227,977 (48.13%) 18,524 ( 3.91%) 227,146 (47.96%)
Short ( 8 ) 227,620 (48.08%) 17,061 ( 3.60%) 228,708 (48.31%)
Short ( 9 ) 226,329 (47.86%) 16,036 ( 3.39%) 230,569 (48.75%)
[ DEF-2 ]
[SIGN][DAYS] [UP ] ( %) [EVEN ] ( %) [DOWN ] ( %)
Long ( 1 ) 118,277 (44.41%) 27,634 (10.38%) 120,411 (45.21%)
Long ( 2 ) 125,279 (47.05%) 17,390 ( 6.53%) 123,580 (46.42%)
Long ( 3 ) 127,510 (47.90%) 13,479 ( 5.06%) 125,207 (47.04%)
Long ( 4 ) 128,310 (48.21%) 11,348 ( 4.26%) 126,463 (47.52%)
Long ( 5 ) 128,537 (48.32%) 10,015 ( 3.76%) 127,478 (47.92%)
Long ( 6 ) 128,521 (48.35%) 9,016 ( 3.39%) 128,276 (48.26%)
Long ( 7 ) 128,367 (48.32%) 8,430 ( 3.17%) 128,855 (48.51%)
Long ( 8 ) 128,553 (48.42%) 7,693 ( 2.90%) 129,238 (48.68%)
Long ( 9 ) 128,380 (48.42%) 7,250 ( 2.73%) 129,513 (48.85%)
Short ( 1 ) 112,998 (42.62%) 27,680 (10.44%) 124,438 (46.94%)
Short ( 2 ) 117,279 (44.26%) 17,062 ( 6.44%) 130,657 (49.30%)
Short ( 3 ) 118,626 (44.78%) 13,219 ( 4.99%) 133,036 (50.22%)
Short ( 4 ) 119,196 (45.02%) 11,482 ( 4.34%) 134,087 (50.64%)
Short ( 5 ) 118,768 (44.90%) 10,192 ( 3.85%) 135,568 (51.25%)
Short ( 6 ) 119,199 (45.09%) 9,226 ( 3.49%) 135,945 (51.42%)
Short ( 7 ) 119,227 (45.14%) 8,572 ( 3.25%) 136,319 (51.61%)
Short ( 8 ) 119,650 (45.32%) 7,981 ( 3.02%) 136,373 (51.66%)
Short ( 9 ) 119,442 (45.25%) 7,427 ( 2.81%) 137,110 (51.94%)
特に大きな特徴はないように思える。(DEF-1, DEF-2 とも) 26日・52日で検証した結果は掲載していないが、同様の結果となった。(DEF-1, DEF-2 とも)
3.何日後に最も上昇(買い)/下降(売り)したか
買いサイン発生後、何日後に最も上昇したか、 売りサイン発生後、何日後に最も下降したか、を検証。 以下は、9日で検証した結果です。
[ DEF-1 ] [ DEF-2 ]
[DAYS] [Long ] [Short] [DAYS] [Long ] [Short]
[ 1 ] 122,208 106,995 [ 1 ] 61,713 55,261
[ 2 ] 74,435 67,980 [ 2 ] 38,394 34,420
[ 3 ] 59,790 56,456 [ 3 ] 31,994 29,140
[ 4 ] 52,674 52,192 [ 4 ] 28,882 27,101
[ 5 ] 49,891 49,974 [ 5 ] 27,427 26,859
[ 6 ] 48,632 51,133 [ 6 ] 26,771 27,224
[ 7 ] 49,858 55,060 [ 7 ] 28,002 29,698
[ 8 ] 57,228 65,392 [ 8 ] 31,907 35,652
[ 9 ] 89,360 104,058 [ 9 ] 49,957 61,868
DEF-1, DEF-2 とも、買い(売り)サインが発生した翌日と9日後に大きく上昇(下降)している。 26日・52日で検証した結果は掲載していないが、こちらも DEF-1, DEF-2 とも、26日では翌日と26日後が、52日では翌日と52日後が大きく上昇(下降)する結果となった。
4.買いサイン発生から売りサイン発生までの間隔と差が + か 0 か − を集計
以下は、9日で検証した結果です。
[ DEF-1 ] [ DEF-2 ]
[DAYS] [+] [0] [-] [DAYS] [+] [0] [-]
[ 1 ] 4,448 3,948 36,916 [ 1 ] 47,340 4,499 4,383
[ 2 ] 1,849 1,200 31,355 [ 2 ] 41,438 2,961 3,707
[ 3 ] 1,486 855 31,724 [ 3 ] 32,597 2,657 3,962
[ 4 ] 1,239 674 33,280 [ 4 ] 21,314 2,717 5,152
[ 5 ] 969 714 37,909 [ 5 ] 8,627 1,685 10,846
[ 6 ] 1,134 815 44,414 [ 6 ] 3,467 758 11,747
[ 7 ] 2,084 1,438 39,367 [ 7 ] 1,452 317 10,245
[ 8 ] 8,321 1,938 21,641 [ 8 ] 673 126 8,004
[ 9 ] 12,357 1,363 8,946 [ 9 ] 277 59 6,115
[ 10 ] 11,179 1,011 7,196 [ 10 ] 155 30 4,452
[ 11 ] 10,516 781 5,721 [ 11 ] 73 19 3,172
[ 12 ] 9,819 638 4,165 [ 12 ] 36 14 2,323
[ 13 ] 8,982 476 2,813 [ 13 ] 26 2 1,699
[ 14 ] 8,161 354 1,791 [ 14 ] 8 1 1,307
[ 15 ] 7,269 211 1,182 [ 15 ] 8 1 854
: : : : : : : :
DEF-1では、9日後頃から上昇する割合の方が多くなるという結果となった。 26日・52日で検証した結果は掲載していないが、26日で検証した場合は26日後頃から、52日で検証した場合は52日後頃から上昇する割合の方が高くなるいう結果になりました。 また、DEF-2では、5日後頃から下降する割合の方が多くなるという結果となった。 26日・52日で検証した結果は掲載していないが、26日で検証した場合は26日後頃から、52日で検証した場合は27日後頃から下降する割合の方が高くなるいう結果になりました。 DEF-1 と DEF-2 は順張りか逆張りかの違いなので、結果として相反するものとなった。
上記の4番目の検証はかなり有効ではないでしょうか? 順張り、逆張りで挙動が違うので、工夫次第で有効性が高くなるのではないでしょうか? Ruby 学習の延長で検証作業を行ってみましたが、こうして実際に実用的な何かを作成してみることで知識も深まっていきます。
以上。
Comments