かぶだいくんで歩み値の欠落をカバーする

かぶだいくんでは、楽天RSSマネックストレーダープロαから株価データーを取得しているが、どちらも歩み値はそのものは取得できないので、現在値と出来高が更新されるたびにその差分から歩み値を導出している。
しかし、このやりかたではたまに生じる現在値や出来高の更新の欠落で、歩み値に誤差が生じる。
たとえば、つぎの画面スナップショットでは、

マーケットスピードで 14:54:34 275円 281,000株と、14:54:35 276円 1,000株は、本来は分離した歩み値だが、かぶだいくんでは、前者のイベントを受信し損ねていて、結局 276円 282,000株として受け取ってしまう。(いずれも行選択して反転した状態になっている。)
受信し損ねるのはしかたがないとしても、受信し損ねた、という事実があったことは知りたい。そうしないと歩み値を見ても常に信用できなくなってしまう。
そこで、「現在値」と「出来高」に加えて、楽天RSSでは「売買代金」のアイテムも見て、3者に矛盾がないかを検査する。マネックストレーダープロαでは「売買代金」のアイテムがないので「Vwap」で代用する。こうすることで、矛盾が生じたかが分かり、さらには逆算することで歩み値の単価にどれだけの誤差が生じているかまで把握できる。逆算して求めた値との差をかぶだいくんの「追加」列に表示している。(-1.00円という表示。単純に求めた歩み値では 276円 であるが、逆算して求めた値はそれよりも -1.00円大きい(すなわち1.00円小さい値が正しい値)、という意味である。)
ただし、1つに縮退してしまった歩み値が元通り複数の歩み値に分離できるわけではない。あくまでも歩み値の単価を修正するにとどまる。


ここで、桁落ちの問題がある。楽天RSSの「売買代金」は精度が1千円までしかない。マネックストレーダープロαの「Vwap」は小数点以下4桁までである。現在の株価水準では後者のほうが精度が高いものの、どちらも誤差があることには変わりはない。面倒なのでここでは詳しく書かないが、パズルのようにして逆算することで、そこそこ正しい値を求めることができる。しかし、呼び値の刻みが小さくて、売買単位が小さい銘柄で、前場より後場になって売買代金や出来高が増えてくると、この桁落ちが顕著になってくる。


もうひとつ別の問題として、「出来高」と「売買代金」(または「Vwap」)のどちらか片方だけが欠落してしまった場合、両者の整合性がとれなくなって、逆算できなくなってしまう。これはレアケースではあるが、できればなくしたいものだ。使ってみての推測も入るが、楽天RSSは配信が遅れてもできるだけ欠落させずに送ろうとするようだが、マネックストレーダープロαは逆に配信の遅延のなさを優先して、配信が間に合わなければアイテムの配信を省いてしまうようだ。したがって、マネックストレーダープロαで問題になることが多い。