【開発の裏側67】値動きのたびに、パネルを全部書き直していた。ボックスのインジケーターを軽くした2つの話

【開発の裏側67】値動きのたびに、パネルを全部書き直していた。ボックスのインジケーターを軽くした2つの話

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

開発の裏側の67回目です。前回は、EAの取引が検証の計算より少なく、その日初めてを数え始める時刻が違っていた話でした。
今回は、ボックスのインジケーターを作り直したとき、点検で見つかった重い処理の話です。



このインジケーターは、何度も止められた価格帯をボックスとして描き、左上のパネルに、いまの価格からボックスの上限と下限までの距離を出します。
保存したボックスを、あとから表示し直すこともできます。

作り直す前の版を1行ずつ読むと、必要のない処理を何度もくり返している所が2つありました。



1つ目は、パネルの書き直しです。

前の版は、値動きのたびに、距離の行を全部書き直し、そのたびにチャートを描き直していました。
新しい足ができたときや、ボタンを押したときには、パネルの部品をいったん全部消して、作り直していました。
保存したボックスを表示しているあいだは、値動きのたびに、そのボックスがチャートにあるかを調べていました。

金のように値動きの多い銘柄では、1秒に何回も値動きが来ます。そのたびに同じ文字を書き直していたことになります。

直した版では、パネルの部品は最初に1回だけ作ります。
値動きのたびに見るのは、変わった値だけ。書いたときだけ、チャートを描き直します。
ボックスも、中身が変わったときだけ、位置を動かして描き直すようにしました。



2つ目は、データの取り方です。

保存したボックスの表示から、いまのボックスの表示へ戻すとき、前の版は、新しい足ができるたびに、チャートにある全部の足の時刻や価格を取り直していました。
チャートには何万本もの足が入っていることがあります。ボックスを探すのに使うのは、そのうち最近の何日分かだけです。

直した版では、さかのぼる日数の分だけを取るようにしました。



2つとも、動きとしては正しく、表示も合っていました。画面を見ているだけでは、気づけない重さです。

インジケーターを作るときは、値動きのたびに何をしているかを、一度書き出してみてください。毎回しなくてよい処理が、混ざっていることがあります。

ボックスを自動で見つけて描き、保存して、あとから見比べられるインジケーターです。


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