こんばんは、たかはしです。

とある方とメールでやり取りしていた内容で、きっと同じ症状の人も居るはずと思いましたので、シェアしておきます。

何が問題なのかというとですね、なぜかADX系のインジケーターで、ラインが表示されないと言う症状。

僕が調べたところに寄ると、ADX系のインジケーターでこの症状が起きている人がいるようでした。

しかも厄介なのが、その症状が出る人と出ない人、厳密に言うと環境によって挙動が異なるのです。

ちなみに、僕の環境ではラインが表示されて、その方の環境ではラインが表示されません。

MT4の環境も新しく入れ直して試して貰ったけど、改善せずという感じです。

僕の環境ではラインが出ているため、原因が特定しにくく、諦めかけていたんですが、Google先生の力を借りて原因を探した所、解決策っぽいことが書いてあったので、それを実装して確認して貰うと、ラインが表示されました(・∀・)
※コードは下記参照

普通、インジケーターを自分で作ったりする時って、ゼロの状態から作るのでは無くて、どこかからベースを持ってきて、それに対して手を加えていきます。

おそらくですが、巷に出回っているADX系のインジケーターって、似たような処理で実装されているんだと思いますが、インジケーターの作り方に問題があったようです。

通常MQLでは、この出力データはラインだよとか、矢印だよとか指定して実装するんですが、ADX系のインジケーターに限って、その宣言が何故かされていないんですよね。

一応大手サイトからダウンロードした2種類のインジケーターで確認しましたが、両方とも実装されていませんでした。

なので、ベースのベースから実装されていないんだろうな〜って解釈しましたw

でも、同じ不具合なら全ての環境で同じ症状が出ても良いはずなのに、出る環境と出ない環境があるのが不思議です。

きっとMT4以外の何か、例えばWindowsのバージョンであったり、32ビットや64ビット、コア数とかそういう部分で差があるのかな?

それとも、MT4の設定が違うとか、とにかく原因は不明なんですがそういうことなんだと思います。

この辺は深く考えていても分からないので、あまり気にせず下記コードを症状が出ている人は該当コードに追記して対応してください。

<br />
#property indicator_type1 DRAW_LINE<br />
#property indicator_type2 DRAW_LINE<br />
#property indicator_type3 DRAW_LINE<br />

記述箇所は、該当MQLを開いてコードの先頭の方にpropertyが書かれている箇所らへんに追記するだけでOK。

これでMQLはラインで表示するんだな!と言う風に解釈してくれます。

とりあえず動いたから、こう言う対応をしただけで詳しいことは分かりませんので、あしからず。