システムトレードを行うにあたっては当然ながら株価データが必要です。
この株価データは簡単に取得するのであればYahoo FinanceやPythonのAPIなどからでも取得できますが、過去のデータも含めて大量のデータを正確に確保しようとすると、どうしても有料のデータが必要になってきます。
では有料の株価データであれば万全なのかというと必ずしもそうではありません。
株価データを利用するにあたって気をつけるべき点、あるいは株価データを事前に修正しておくべき点がいくつかあるので紹介します。
株式分割・併合
株式銘柄は株価の高騰や下落、あるいは企業の株価に対する考え方によって、株式が分割されたり、併合されたりすることがよくあります。
株式分割とは発行済みの株式を分割して株数を増やし、株価を下げる処理のことを指します。
例えばあなたが、株価が5,000円のある銘柄を100株保有していた場合、仮に株式分割を1:2で行うと、あなたは2,500円の株式を 200株保有することになります。
株価を安く下げることで主に個人投資家に株式を買ってもらいやすくすることが狙いです。
株式併合はその逆で、株価をある比率でまとめてしまうことで株数を減らし、逆に株価を上げる処理のことを指します。
あまり価格の低い株式も敬遠されがちなので、株価を調整する意味合いや企業にとって株主を管理することもそれなりにコストが発生するためコスト削減の目的で併合されることもあるようです。
ある日突然株価が倍になったり半額になったりするわけですから、株式分割・併合の影響を無視してシステムトレードを組むことは自殺行為といえます。
株式分割や併合が行われた場合、新しい株価を基準にして、それより前の日付の株価データをすべて変更された倍率に従って価格修正を行わなければなりません。
Yahoo Financeなどではこのような処理が行われた修正株価が表示されていることが一般的ですが、一部の株価取得サイトのデータでは自分自身で計算をして修正株価を算出する必要があります。
配当落ち
株式を保有していると年に2回や四半期ごとなど配当が得られることがあります。
配当は企業が株主に対して利益を還元する行為ですが、還元した分、株価が下がります。
例えば1株あたり50円の配当を出したとすると株価は理論上50円に下がります。
要するに企業から現金が支払われることでその企業の価値が配当費の分だけ減少するからです。
実際に株価が下がるのは、配当確定日ではなく配当落ちの日です。
この影響を無視してシステムトレードを組むと、外的要因が何も変化していないのに、配当によって価格が大幅に下がり、誤ったシグナルが発出されることが頻繁に起きます。
この配当落ちを考慮した株価を入手するのはなかなか困難です。
例えば、みんかぶでは配当値の月を得ることはできますが、具体的な配当金額や配当落ち日まではわかりませんし、KABU+ のデータも年間の1株配当の予測値はわかりますが、やはり具体的な配当金額や配当落ち日はわかりません。
J-Quants のようなかなり高価な月額使用料を支払う有料データであればこういった値も取得できるようです。
また、力技ですが、TDnet から決算短信の PDF や XBRL データを取得して、自分自身でそれぞれの銘柄の情報を取得するということもできそうです(今は AI の力も使えるので、だいぶ処理が楽になりましたね)。
欠損値・ストップ高 ・ストップ安
無料のデータは言うに及ばずですが、有料のデータであっても欠損値が発生していることがあります。
この場合は前日の株価で補完するなどする必要があります。
一方でストップ高やストップ安というのは少し意味合いが異なります。
確かにこれらも価格としては存在しないのですが、ストップがつくほどの激しい値動きがあったわけですから前日の株価を補完するのでは問題です。
また、ストップ高やストップ安となる価格は証券取引所のルールにより決まっているので、その上限値や下限値を設定することも考えられます。
しかしこの場合も、価格を入れてしまうことで本来買えないはずの日に価格が付き、システムトレードに誤ったシグナルを発出させるリスクがありますし、実際の価格はさらにもっと高いはずであり、株価としても適切とは考えにくいです。
この対策はいろんな方法があるようですが、まず価格はストップ高やストップ安の上限値または下限値を設定し、別途ストップフラグを立てて、その日が通常の日ではないことをシステムトレード側で認識できるようにしておくのが一般的なようです。
まとめ
今回紹介した株価の不整合以外にも増資による株価の変化など様々な要因があります。
システムトレードを行う場合には、こういった点に注意して、修正された株価を用意することがまず必要だと考えます。


コメント