2020-05-13

謎のチャート(1.0.1)リリース

スプレッドが異常値になるバグを解消したバージョン1.0.1

Article Image

謎のチャート(1.0.1)

チャート本体はこちら

https://www.ultra-noob.com/bitflyer/

bitFlyerから送られてくるデータをもとに板のデプスチャート、遅延、ティッカー、スプレッドを可視化する。

完全にクライアントサイド(ブラウザの中のスクリプト)で動作するのでこちらのサーバーへの負担は殆どないため完全に無料で利用できる。

スプレッドが異常値になる不具合を解消

キー名に入れた「価格」を引き算していたがオブジェクトのキー名は文字列である事を考慮しておらず計算結果が異常値になっていた。

めったに無いことだがキー名を数値として扱う場合は変換が必要。今回はparseInt()にて解決。

板のリセットタイミングを変更

厳密にはわからないが、通信ラグ等の兼ね合いで指値が存在しなくなったレコードにデータが残る事がある模様。これによってスプレッドが異常な値になる事があり現状回避不能。

現在はその対策としてスナップショット受信時に板をリセットすることとしたが更にスプレッドがマイナスになったタイミングでもリセットすることにした。

様子を見てこのあたりはコードを調整する必要があるかもしれない。

連想配列のキー名ソートを廃止

これはJavaScriptを書く人には覚えておいたほうが良い情報。

連想配列はソートしても for ... in で想定した順番で取得できない。

今まで昇順で取得出来ていたので問題ないのではと思っていたが、逆に降順にしてみても昇順で出力されるという検証が出たので急遽修正。ソートは関係ない模様。

Depthチャートに関しては価格から直接要素番号を計算しておりソートは不要であったため最小値のコードだけ実装してキー名ソートは廃止した。

詳しくはMDNを参照。次は引用

注: for...in はインデックスの順序が重要となる 配列 の繰り返しには使うべきではありません。

その他

  • DepthチャートのTooltip(グラフにマウスオーバーするとそのバーの小さな情報が表示される機能)をオフにした。画面更新が早くちらつく上に更新が早すぎて目視では確認できないため。
  • ファビコンを設置

課題?

スプレッドがマイナスになるということは確実にどこか情報をロストしていると言うことだと思うが、原因不明。

もしくはそもそもスプレッドはマイナスになる可能性があるのだろうか?



この記事のタグ

この記事をシェア


謎の技術研究部 (謎技研)