【開発の裏側㉜】M2の線を消したら、M30から週足の線まで消えた。名前の頭で探す怖さ

【開発の裏側㉜】M2の線を消したら、M30から週足の線まで消えた。名前の頭で探す怖さ

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

20の時間足の水平線を1枚のチャートに引く、e-LineTraderPro2 を作り直したときの話です。
古い版のコードを点検して、直すところを16か所見つけました。今回はその中から、線が消えてしまう1つを書きます。



このインジケーターは、時間足ごとにボタンがあって、押すとその時間足の線を出したり消したりできます。

チャートに描く線には、1本ずつ名前を付けます。名前には時間足の番号が入っていて、M1が0番、M2が1番、と続き、M30は10番、週足は19番です。
線を消すときは、名前の頭が、その時間足の番号で始まるものを探して消していました。



ここに落とし穴がありました。

M2を消すと、名前の頭が1番で始まる線を探します。
ところが、10番から19番も、頭は1で始まります。M30から週足までの線とジグザグも、全部同じ条件に当てはまってしまいました。

M2のボタンを押しただけで、M30、H1、H4、日足、週足の線まで消えていたわけです。



直し方は簡単で、番号のあとの区切りの記号まで含めて探すようにしました。
1番なら、1と区切りの記号までが一致するものだけを消します。これで10番から19番には当たらなくなりました。



この不具合は、気づきにくい形をしていました。

M2のボタンを押すと、M2の線は正しく消えます。M2の線だけを見ていると、何もおかしくありません。
消えてしまったのは、押したボタンとは別の時間足の線です。原因と結果が、画面の別々の場所に出ていました。

開発の裏側の30回目にも、似た話を書きました。段落の p のタグを探したら、星の絵の path の頭にも当たっていた、という件です。
名前や文字の頭だけで探すと、長い名前の頭にも当たってしまう。区切りまで含めて探すのが、安全な書き方です。



ほかにも、作り直しでは、同じ処理を20回ずつ書いていたところを、時間足の表で回す形にまとめました。本体と描画で3,300行ほどあったのが、全部で1,100行ほどになっています。
同じ処理が20か所あると、1か所直し忘れるだけで、その時間足だけおかしくなります。表で回せば、直すのは1か所で済みます。

インジケーターやEAの点検と作り直しのご依頼も受けています。


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