Gute Praxis zur Vermeidung von Nullteilungsfehlern: 1) Lassen Sie immer ein Leerzeichen vor und nach dem Teilungssymbol in den Berechnungen. Auf diese Weise ist es einfacher, die CtrlF-Suchfunktion zu verwenden, um alle Divisionen zu finden, ohne alle Kommentar-Pre-Fixes zu durchlaufen. 2) Stellen Sie immer Berechnungen, die das Teilungssymbol innerhalb der Befehlsklammern einer Bedingung verwenden, die prüft, um sicherzustellen, dass die Nummer, die Sie teilen, nicht gleich Null ist. Dies verhindert, dass das Programm mit einem Nullteilungsfehler beendet wird, wenn der Nenner je geschieht, dass er Null ist. z. B. 3) Es ist eine gute Idee, irgendeine Art von Fehlerberichterstattung hinzuzufügen, um sicherzustellen, dass das Programm nicht weiter voranschreitet, ohne Sie zu warnen, dass die Berechnung innerhalb dieser Befehlsklammern nicht durchgeführt wurde, wenn der Nenner gleich Null ist - sonst könnten Sie nie erkennen, weil Würde der Nullteilungsfehler nicht mehr auftreten. Es ist vermutlich richtig, anzunehmen, dass, wenn der Nenner jemals Null ist, dann etwas schon falsch gegangen ist, bevor der Nullteilungsfehler auftreten kann, und Sie darüber wissen möchten. z. B. Diese drei Hinzufügungen können einige zusätzliche Sekunden dauern, um jedes Mal in den Code einzugeben, aber sie sparen Minuten oder Stunden, um einen Nullteilungsfehler zu verhindern, der jemals auftritt. Fügen Sie diese in Ihren Code und das Problem wird sich zeigen. Gute Punkte, um sich zu erinnern, clerin6 Divide von Null Fehler sind ziemlich einfach, auf diese Weise zu verhindern, oder wenn Sie wissen, wie die Berechnungen auf die Variablen, die in einer Divide-Operation beteiligt sind gemacht werden. Verwandte, wenn auch ein bisschen anders sind unbeabsichtigte und unheimlich Null Schöpfung über Integer-Division Bugs. Wenn beispielsweise die Länge ein externer int-Eingang ist und der gewünschte Ausgang eine Gleitkommazahl ist: Wenn die Länge eine ganze Zahl ist, erzeugt die obige Zeile für die meisten Längen eine Null. Während das folgende ist, was tatsächlich beabsichtigt ist: (erzeugt ein Gleitkommawert, das als Teil einer exponentiellen Gewichtungsberechnung verwendet werden kann). Von ein paar Mal, mit der Umstellung auf neue Version von MT4 (Build 610), habe ich den gleichen Fehler auf meinem Indikator, wenn ich es mit iCustom in meinem EA. Diese Anzeige ist der berühmte Hull Moving Average 2.0 (zweifarbig geschmierte MA). Sein neuer Name ist HMA jetzt. Einige Syntaxfehler werden wie quotchar durch quotCharquot korrigiert. Jemand kann mir helfen Zero Divide Error Es muss spät sein und ich kann es nicht finden. Es ist in einem Indikator, dass, wenn auf ein Diagramm geladen, es funktioniert gut. Aber wenn ich es von einem EA nennen, bekomme ich Zero Divide. Anmerkung: Ich habe dieses von 9 anderen EAs genannt. Jeder Anruf gibt mir das gleiche Ergebnis in der Journal for Strategy Tester. Heres den Code-Aufruf in der EA: Heres der Indikator-Code: Irgendwelche Ideen wäre hilfreich TIA Joined Nov 2009 Status: Member 12 Posts, das ist nur Weg, um ein Div0. Prüfen Sie diese vor der Berechnung von PercentB. (Dh wenn (bbUpper bbLower) Panik ist bbPrice kommen über OK Andere Sache zu versuchen ist, ändern Sie die 100 bis 100,0 in der PercentB Berechnung. Mischen Ints und Doppel in einer Berechnung können unvorhersagbare Ergebnisse. Jetzt Apr 2007 Status: Gettin Kick in der nutz Jeden Tag 725 Beiträge Danke für die Ideen. BbPrice kommt in Ordnung aus dem, was ich sagen kann. Ich nicht sicher, was Ihre fragen. Ich habe die 100 auf 100.0.Effekt. Ich warf auch in meinem EAs ein Kommentar mit dem Wert, den ich war Also ich bin nicht sicher, ob ich das tun kann Kommen über OK Andere Sache zu versuchen, ist die Änderung 100 bis 100,0 in der PercentB Berechnung. Mischen Ints und Doppel in einer Berechnung können unvorhersehbare Ergebnisse.
No comments:
Post a Comment