【開発の裏側⑳】同じ仕組みを別の言語で書き直したら、元のインジケーターの不具合が見えました

【開発の裏側⑳】同じ仕組みを別の言語で書き直したら、元のインジケーターの不具合が見えました

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

今回は、開発中のインジケーターで、思わぬところから不具合が見つかった話です。



ダウ理論のトレンドを、チャートに色で出すインジケーターを作っていました。
山と谷を結ぶジグザグを引いて、高値や安値の更新に合わせて、上目線、下目線、トレンドなし、と状態を切り替えます。

これを使って、目線やトレンドの色に先を当てる力があるのかを、22年分のデータで測ることにしました。
ただ、MT5のインジケーターのままでは、何十万本もの足を何通りも測るのに向いていません。そこで、同じ仕組みを、検証用の別の言語で書き直しました。



書き直したものと、元のインジケーターの結果を突き合わせていたときです。
上目線に変わったはずの次の足で、すぐトレンドなしに戻る場面が見つかりました。色がちらつくのです。

原因を追うと、押し安値を取り直すタイミングでした。

元のインジケーターは、山や谷が確定するのを待ってから、押し安値を更新していました。確定には、そのあと何本かの足が要ります。
だから、トレンドなしから上目線に変わった瞬間には、押し安値がまだ、ひとつ前の上昇の古い値のままでした。しかも、その値は今の価格より上にあります。
押し安値より下にいるので、次の足ですぐにトレンドなしへ戻ってしまっていたのです。



直し方は、押し安値を、高値の更新や安値の更新が起きたその瞬間に取り直すことでした。
そのようにインジケーターを作り直しました。



この不具合は、元のインジケーターだけを見ていても見つかりませんでした。別に書いたものと結果を並べたことで、食い違う足として浮かんできたのです。

同じ仕組みを、別の言語で、もう一度一から書く。
2つの結果を突き合わせると、どちらかが間違っている場所が浮かびます。前回の、数え方に未来が紛れた話も、2つ目の道具と結果が合わなかったことで気づきました。

手間は2倍かかります。それでも、見た目では分からない不具合を見つけるのに、役に立つやり方です。

インジケーターやEAの作成、今あるものの点検のご依頼も受けています。


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