SSブログ

株価データ取得法あれこれ(2) [システムトレード]

昨日は、株式分割の処理のところで一旦終了しました。ヤフーファイナンスの場合、株式分割が行なわれた日付において、1株が何株に分割されたかという表示がなされますが、これを見つけるのになかなか苦労します。前回の方法を用いれば、それが容易になるわけです。

分割箇所が見つかったら、続いて株価と出来高の修正を行ないます。今、1株がn株に分割されたとした場合、分割以前の全ての日付において、株価を1/n、出来高をn倍に修正します。
それ以前にも分割が行なわれている場合もありますが、まずはそれも含めて上記の操作を行ないます。

J5セルに「=ROUNDDOWN(C5/n,0)」(nは実際の数値:以下同)と入力して、それをM5セルまでコピーし、さらにN5セルに「=ROUNDDOWN(G5*n,0)」と入力します。
そして、J5セル~N5セルを全て選択し、分割の前日までコピーします。

ちなみに、ROUNDDOWN関数は、数値の指定桁数以下を切り捨てる関数です。分割修正により株価に小数点以下の端数が生じた場合は、それを切り捨てることになっているようです。
上記の式では、小数点以下を全て切り捨てるようにしています。これは、出来高に関しても同様です。

続いて、J~N列の変更したセル範囲を全て選択して、それをC~G列の対応する範囲に値複写します。値複写をする場合は、セル範囲を選択してコピーした後、貼り付け先でマウスを右クリックし、"形式を選択して貼り付け"メニューから、"値"にチェックを入れて"OK"をクリックします。

値複写が完了したら、分割表示がなされている行を削除し、続いて、J~N列を削除します。なお、それよりも過去においてさらに分割がされている場合は、再びI列の数値が1でなくなる境界を探し、そこを基準にして上記と同様の操作を繰り返します。

なお、その際の分割表示部分は、最初の値複写によってエラー表示となっていますが、I列の値を見れば何株に分割されたかは容易に分かります。
その値に基づいて、再びJ~N列に計算式を入力し、値複写を行ないます。そして、最後にI列を削除します。必要があれば、結果を他のワークシートにコピーします。

以上の操作によって、最終的な株価データが得られますが、実はこれが最後ではない場合があります。得られた株価データに対して、正確で漏れのない立会日の日付データを、最初の日付をそろえて隣の列に貼り付けると、途中から両者の日付が揃わなくなることがあります。

これは、株価データの一部が欠落しているためであり、そのような場合は、欠落した日付を挿入すると共に、その部分の株価データを他から探して埋め込んでやる必要があります。
しかし、株式分割の時と同様、欠落した日付を探すのは一苦労です。

そこで、空いた列で両方の日付の差を計算させ、それが0でなくなる箇所を探すようにすると、データの欠落箇所を容易に見つけることができます。
その際、計算するセルの書式を"標準"にしておく必要があります。これは、マウスの右クリックから、"セルの書式設定"を選択して、変更してください。

データの欠落箇所が見つかったら、その部分に行を挿入し、抜けていた日付と株価データを入力します。そして、再び上記の操作を繰り返し、欠落がないことを確認します。
もし、まだ欠落が存在していた場合は、上記の手順でデータを埋めていきます。

これで、必要な株価データが得られたことと思います。ただし、株価データそのものの正確性はヤフーファイナンスに依存していますので、他にデータソースがない限りは、確認は難しいでしょう。
そこは割り切るしかありませんが、正確なデータが必要ならば、それなりの費用を払って有料サービスを受ける必要があります。

明日は、カブドットコム証券のkabuマシーンから、Time&Salesデータを取得する方法について説明します。これは、カブドットコム証券に口座を持っていて、かつkabuマシーンを使用している方にしか関係ありませんが、ご容赦ください。


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

Facebook コメント

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。