株価データの補正
株価データを読み込んで指標や買付価格を計算するまでの処理を説明します。
1.元の株価データ
銘柄別の株価データは、以下のような情報を含んでいます。
日付 | 始値 | 高値 | 安値 | 終値 | 出来高 | 係数
|
---|
2001/01/04 | 240 | 260 | 220 | 250 | 1200 | 1.00
|
2001/01/05 | 260 | 260 | 235 | 245 | 900 | 1.00
|
2001/01/09 | 120 | 128 | 105 | 125 | 1600 | 0.50
|
2001/01/10 | 132 | 134 | 130 | 133 | 4800 | 1.00
|
2001/01/11 | 0 | 0 | 0 | 0 | 0 | 1.00
|
2001/01/12 | 120 | 125 | 120 | 123 | 3700 | 1.00
|
係数というのは権利落ち係数のことです。係数の計算式は、1:nの分割のとき、
カブカンtypeA形式=1÷n
カブカンtypeP形式=(n−1)×100
となります。
この例では、1月9日に1:2の分割があり、typeA形式では0.50、typeP形式では100になります。
表ではtypeA形式の係数で表示しています。
2.権利落ちの修正
権利落ち係数を使って、権利落ち前の株価と出来高を、権利落ち後の株価のレートに直します。
1:2の分割であれば、権利落ち前の株価は1/2になり、出来高は2倍になります。
権利落ちが複数回ある場合は、期間内の最新の株価を基準に過去の株価を修正します。
日付 | 始値 | 高値 | 安値 | 終値 | 出来高 |
|
---|
2001/01/04 | 120 | 130 | 110 | 125 | 2400 | ←補正
|
2001/01/05 | 130 | 130 | 117.5 | 122.5 | 1800 | ←補正
|
2001/01/09 | 120 | 128 | 105 | 125 | 1600 |
|
2001/01/10 | 132 | 134 | 130 | 133 | 4800 |
|
2001/01/11 | 0 | 0 | 0 | 0 | 0 |
|
2001/01/12 | 120 | 125 | 120 | 123 | 3700 |
|
テストでの買付価格、売付価格の取得は、この権利落ち修正後の価格を利用します。
そのため買付価格が小数になってしまうこともあります。
3.出来高ゼロの日の補完
指標を計算する上で、株価が0の日があると何かと不都合です。
例えば移動平均を計算する場合に終値が0の日があると、その日を含むときだけ数値が急に下がってしまい、本来は出るべきではない売買シグナルが出てしまうことにもなりかねません。
そこで、出来高が0の日(売買が成立しなかった日)は、前日の株価を補ってやります。出来高は0のままです。
日付 | 始値 | 高値 | 安値 | 終値 | 出来高 |
|
---|
2001/01/04 | 120 | 130 | 110 | 125 | 2400 |
|
2001/01/05 | 130 | 130 | 117.5 | 122.5 | 1800 |
|
2001/01/09 | 120 | 128 | 105 | 125 | 1600 |
|
2001/01/10 | 132 | 134 | 130 | 133 | 4800 |
|
2001/01/11 | 132 | 134 | 130 | 133 | 0 | ←補正
|
2001/01/12 | 120 | 125 | 120 | 123 | 3700 |
|
こうして出来高0の日の補完をしてから、指標を計算します。