Ruby + MySQL で自作した株価取得のシステム。 全市場(東京・大阪・名古屋・札幌・福岡)の全銘柄の2000年からの全取引データを取得しています。
前回は単純移動平均(= SMA)でゴールデンクロス・デッドクロスを検証してみましたが、今回は指数移動平均線(= EMA)のゴールデンクロス・デッドクロスを買いサイン・売りサインとした場合のその後の株価の変動を検証してみました。 ※全体的にどんな傾向があるのかを把握するのと、Ruby の学習が目的です。
個人的な記録ですので、興味が無ければ読み飛ばしてください。
ゴールデンクロス(デッドクロス)とは短期と長期の移動平均線を計算し、短期の値が長期の値を上抜けた(下抜けた)場合のことを言います。
以下に、前提条件・検証結果を掲載します。
1.前提条件
1.定義
何を以って、買いサイン・売りサインと見なすかですが、今回は
- その日の短期EMAが長期EMAを上回った場合を「買いサイン」
- その日の短期EMAが長期EMAを下回った場合を「売りサイン」
としました。
検証した短期EMAと長期EMAの日数の組み合わせは、[5, 25], [5, 75], [25, 75] です。 また、調整後終値(株式分割があった場合の調整値)を考慮していません。
2.検証銘柄と検証期間
2012年2月14日現在上場している全市場の3,600銘柄を対象に、2000年1月1日から2011年12月31日の株価データを使用して検証しました。 また、複数の市場に上場している銘柄については、優先市場のみで検証しました。 ※2012/02/20 修正(売買サイン判定基準を微調整) ※全取引件数は 7,963,439 件
2.検証結果
1.サインが発生した件数
1 2 3 |
|
5日で計算するよりも25日、25日で計算するよりも75日の方が絞られる。
2.各サイン発生○日後に上昇・変動なし・下降した件数
以下は [ 短期EMA=5日, 長期EMA=25日 ] で計算した場合です。
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 |
|
特に大きな特徴はないように思える。 [ 短期EMA=5日, 長期EMA=75日 ]、[ 短期EMA=25日, 長期EMA=75日 ] で計算して検証した結果は掲載していないが、同じような結果となっていた。
3.何日後に最も上昇(買い)/下降(売り)したか
買いサイン発生後、何日後に最も上昇したか、 売りサイン発生後、何日後に最も下降したか、を検証。 以下は [ 短期EMA=5日, 長期EMA=25日 ] で計算した場合です。
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 |
|
買い(売り)サインが発生した翌日と25日後に大きく上昇(下降)している。 [ 短期EMA=5日, 長期EMA=75日 ]、[ 短期EMA=25日, 長期EMA=75日 ] で計算して検証した結果は掲載していないが、[ 短期EMA=5日, 長期EMA=75日 ]では翌日と75日後に、[ 短期EMA=25日, 長期EMA=75日 ] でも翌日と75日後に大きく上昇(下降)していた。
4.買いサイン発生から売りサイン発生までの間隔と差が + か 0 か − を集計
以下は [ 短期EMA=5日, 長期EMA=25日 ] で計算した場合です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
買いサインが発生した直後は株価が下降するが24日後頃から上昇する傾向にある。 [ 短期EMA=5日, 長期EMA=75日 ]、[ 短期EMA=25日, 長期EMA=75日 ] で計算して検証した結果は掲載していないが、[ 短期EMA=5日, 長期EMA=75日 ] では47日後頃から、[ 短期EMA=25日, 長期EMA=75日 ] では85日後頃から上昇する傾向にあった。
前回の単純移動平均線のゴールデンクロス・デッドクロスよりは有効性はあるでしょうか。 Ruby 学習の延長で検証作業を行ってみましたが、こうして実際に実用的な何かを作成してみることで知識も深まっていきます。
以上。