更新を避けることはできませんが、"ゼロ除算"の事態は避けなければなりません。
そのため、変数のいずれかが0に等しいかどうかをチェックする必要があります...ゼロ除算を回避する場合
そして、インジケータを停止することはできないので、何かを考えなければなりません。
の例です。
SL = MathFloor((iATR(NULL, PERIOD_D1, 7, 0)*MathPow(10,Digits-exp)+1)*0.1); if (SL == 0) // because error 4066 (for example) { SL = Someting; } lots=MoneyRisk/SL/(MarketInfo(Symbol(), MODE_TICKVALUE)*multi);
ところで、私もこのインジケータで同じ問題を抱えています。しかし、なぜ「古い」MetaTraderでは問題なかったのでしょうか?ここでは、私はいつもATR(5)のためにゼロを受け取ります。なぜだ!!!?以前はそんなことなかったのに...。この新しいMetaTraderは嫌いです...!
int start() //---- { double Spread = MarketInfo(Symbol(), MODE_SPREAD); double ATR = iATR(NULL, PERIOD_D1, 5, 0); int exp1 = 0; if (Digits==5 || Digits==3) { Spread=Spread*0.1; exp1 = 1; } Comment ( "ADR(5): ",DoubleToStr(ATR*MathPow(10,Digits-exp1),1), " || TODAY: ",(iHigh(NULL, PERIOD_D1, 0)-iLow(NULL, PERIOD_D1, 0))*MathPow(10,Digits-exp1), " || ", DoubleToStr(((iHigh(NULL, PERIOD_D1, 0)-iLow(NULL, PERIOD_D1, 0))*MathPow(10,Digits-exp1)/(ATR*MathPow(10,Digits-exp1))*100), 2), "%", "\n" + "SPREAD: ", Spread, " || RATIO: ",DoubleToStr((Spread/ATR)*MathPow(10,-(Digits-exp1-2)), 2),"%" ); //---- return(0); }
問題が見つかったようです!それは間違いなく更新の問題です。今、通貨を変えると、インジケータは動作します。しかし、その後、私は今日まだ開いていなかった通貨ペアを開きました。すると、こんなメッセージが出ました。
問題が見つかったようです!それは間違いなく更新の問題です。今、通貨を変えると、インジケータは動作します。しかし、その後、私は今日まだ開いていなかった通貨ペアを開きました。すると、こんなメッセージが出ました。
angevoyageurさん、私からのこの投稿はご覧になっていないようですね。
おっしゃる通りです...。避けることはできませんね :-)
"私が言いたかったのは、アップデートが完了するまで待ってからSL-calculationに進むことは可能でしょうか?問題は、SLにランダムな値を与えることができないことです、そうするとインジケータ全体が無駄になってしまいます。そこで、エラー4066をチェックし、発生したら、何とか待って、再度チェックしてから、先に進みたいのです。"
そこには、アドバイスに従えないことが記述されており、その解決策に至ったので、qjolさんがアドバイスしてくれたことを間違いなく確認したこともわかりますね。
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
こんにちは、コーダーの皆さん。
私は小さなMoneymanagementのインジケータを作りました。しかし、新しいMQL4になってから、私の手には負えない問題が発生しました。
このインジケータをチャートにドラッグすると、右側にいくつかの数字が表示されます。最初の数字はストップロス(ピップ)を意味し、2番目の数字はロットサイズです。オプションでリスクを選択することができます。もう一つの数値はストップロス・レベルです。しかし、通貨ペアを 変更すると、この数字は消えてしまいます。代わりに「Label」という文字が何度も出てきます。そして、インジケーターリストを見ると、私のインジケーターも消えています。つまり、通貨ペアを変えたら、インジケータがなくなり、数字の代わりにLabelが残ったということです。
全くもって困惑しています。以前はこのインジケータは問題なく動いていたのですが。助けていただけると幸いです。
以下がそのコードです。