MT4でユーロドルのEAを組んでいるのですが、
チャート表示価格は小数点5桁、注文も5桁なのですが、
Print(High[1]);
などをすると、なぜか小数点4桁で表示されてしまいます。
NormalizeDouble(High[1],5);
をやってもだめでした
ボリンジャーバンドを使いたいのですが、iBandsの表示も4桁です。
なんとか5桁で処理が行えるようにできないでしょうか?
環境は、core-i5 win7
MT4の格納場所はc:のすぐ下においています。
よろしくお願いします。
..[補足]..
ix_o_o_oさん
Print(DoubleToStr(High[1],5));
これはできるのですが、これだと文字列になってしまうのではないでしょうか?
5桁で四則演算がしたいのです。
今、帰ってきたところな ので、これからプログラムを実行して、DoubleToStr()でも足し引きの処理ができるか確認してみます。
早速のご回答ありがとうございました。
回答1
Print(DoubleToStr(High[1],5));
コレでどうかな?
追記:ボリバンであれはiBandsよりiMAの方が性能がいいと思います
本線からの偏差の数値がiBandsは小数点以下の設定が出来ませんが
iMAなら可能です
ただ初期からサンプルとして入っているiMA方式のポリバンのロジックを見ても
始めは何が何だか分かりませんでしたね
よくよく見ると移動平均線の値から平均偏差値をループの下にループを作って
答えを求めるといったややこしいロジックになってます
まぁやり方的には為にはなるんですけどね。
追記:どうやらC言語の方でも小数点以下の有効表示とぃぇばいいのかそうゆうのは
4桁までらしいね
ここで 提案ですが Print(High[1]*10);
にすれば5桁目を4ケタ目に繰り上げて四捨五入されずに済みます
表示させるのであればちょっと見苦しいですが
÷10してから文字列変換するしかないですね
ロジックとして認識させるだけであれば十分有効だと思いますよ
個人的にはMT4言語は少しかゆい所に手か届かない感じがしますね
なのでDLL作らないと 出来ない事もたくさんありますよ。
Originally posted 2019-09-09 19:34:49.