【開発の裏側79】マウスを動かすと、線が正しい位置に動いた。動かすまで古い位置に残っていた線と、重さの一番の原因の話

【開発の裏側79】マウスを動かすと、線が正しい位置に動いた。動かすまで古い位置に残っていた線と、重さの一番の原因の話

記事
IT・テクノロジー
どうも、FXトレーダー兼システムエンジニアのナオトです。

開発の裏側の79回目です。前回は、通貨の強さのインジケーターで、直し続けるより部品ごと消した話でした。
今回は、20の時間足の高値・安値の線を引くインジケーターを作り直したとき、見つかった3つの話です。



このインジケーターは、1分足から週足まで、20の時間足について、ダウ理論で意識される高値と安値に線を引きます。
どの時間足を出すかは、パネルのボタンで切り替えます。



1つ目は、重さの一番の原因です。

前の版は、マウスが動くたびに、20の時間足の線を全部動かし直し、ボタンも全部設定し直していました。
チャートの上でマウスを動かすだけで、毎回この処理が走ります。

直した版では、線の右端を動かすのは、チャートが動いたり大きさが変わったりしたときだけにしました。
ボタンは最初に1回だけ作り、押されたときに色だけを変えます。



2つ目は、1つ目と根が同じ不具合です。

前の版は、線の値が変わっても、線を作り直す命令が失敗して、古い位置に残ることがありました。
それでも、マウスを動かすと、1つ目の処理が全部の線を動かし直すので、正しい位置に戻っていました。
重い処理が、不具合を隠していたことになります。

直した版では、線がすでにあるなら動かす、無ければ作る、を見分けるようにしました。数が減ったときに余った線も消します。
1つ目を直してマウスで動かし直さなくなったので、2つ目もあわせて直す必要がありました。



3つ目は、残り時間とスプレッドの表示です。

前の版は、0.1秒ごとに表示を作り直して、チャートを描き直していました。
しかも、市場が閉まっていると、残り時間がマイナスの値で出ていました。

直した版では、0.25秒ごとに見て、文字が変わったときだけ書き換えます。市場が閉まっているあいだは、時間を出さずに記号だけにしました。



重い処理を軽くしたら、その処理に隠れていた不具合が出てくることがあります。
インジケーターを軽くするときは、毎回やっていた処理が、ほかのどこかの間違いを打ち消していないかも、あわせて確かめてみてください。

20の時間足の高値と安値を、1枚のチャートに重ねて見られるインジケーターです。


最後までお読みいただき、ありがとうございました。
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す