init()内でスタイル設定はダメ。

Kowalski_Japan 2010/10/21 12:13
管理人さん殿
・インジケータを書くとき注意すべきコード。
http://d.hatena.ne.jp/fai_fx/20091114/1258127574 の記事ですが、

>何が問題かというと…
>init()内で、
>SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,3,DeepPink);
>で色や太さを指定している点です。

の部分が分かりませんでした。MQLの仕様ですが、ライン表示の場合は設定の変更は保存されないと思います。
(ヒストグラム表示の場合は保存されるはずです。間違っていたら超ゴメンナサイ(^^;))
ですからコードを書いた人は、どうせ保存されないのだから面倒なことは止めてSetIndexStyleの中に全部書いてしまおうと考えたのだと思うのですが・・・。
ともかくコンパイルしてみました。
色や太さを変えてみましたが、やはり設定の変更は保存されませんでした。私はどうしたら良いのでしょう。

「ライン表示の場合は設定の変更は保存されない」なんて有り得ない…と思いつつ、確認の為のコードを書いてみました。
↓これが保存されないコードで

↓これが保存できるコードです。

↓チャートにドロップした時点では、どちらも深桃色です。

↓二本とも赤い点線を指定すると…

↓当然、赤い点線になります。


この状態で、MT4を終了し、再度起動すると…

↑正しいインジケータでは、赤い点線が保存、再現されるのに対して、不適切なコードでは、init() で深桃色に戻されてしまいます。


ちなみにラインのスタイル情報は、Profile フォルダ内の chrファイルの中に記述されています。

↑Kowalski_Japanさんは、このファイルの内容を確認するのが先決でしょうか・・・^^;
試したインジケータはここにありますので、いろいろ試してみてください。