Diskussion zum Artikel "Besser Programmieren (Teil 02): Hören Sie auf, diese 5 Dinge zu tun, um ein erfolgreicher MQL5-Programmierer zu werden"
Hallo Leute,
ich bin ein Neuling. Ich habe viel Programmiererfahrung, aber ich fange gerade erst an, in MQL5 zu programmieren - es ist meine erste Sprache ähnlich wie C++. Ich habe mich durch die Referenzdokumente gelesen, kann aber meinen Fehler nicht finden - der Wert, den ich erwarte, von expoMA zurückgegeben zu werden, wird in meinem Diagramm als 0,0 gedruckt/kommentiert - mache ich eine Art Syntaxfehler? Ich erhalte keine Probleme/Fehler beim Kompilieren. Jeder Beitrag, den Sie haben, wäre großartig
void OnTick( { int days = 3; double Ask = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits); double Bid = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits); double movingAverageValues[]; double bidAskAverage = (Ask + Bid)/2; int exponentialMovingAverage = iMA(_Symbol,_Period,MA_Period,0,MODE_EMA,PRICE_CLOSE); ArraySetAsSeries(movingAverageValues,true); CopyBuffer(exponentialMovingAverage,0,0,3,movingAverageValues); double alpha = expoMA(days); double dEMA = bidAskAverage - movingAverageValues[1]; // Der Index 1 steht hier für den EMA des Wertes t - 1 Comment("The ask price is: " + DoubleToString(Ask,5) + "\n" "The bid price is: " + DoubleToString(Bid,5) + "\n" "The average price is: " + DoubleToString(bidAskAverage,5) + "\n" "The custom expoMA value is: " + DoubleToString(alpha,5) + "\n" "The dEMA value is: " + DoubleToString(dEMA,5)) ; } double expoMA(int days=2) { double alpha = 2 / (days + 1); NormalizeDouble(alpha,5); return(alpha); }
Hallo Leute,
ich bin ein Neuling. Ich habe viel Programmiererfahrung, aber ich fange gerade erst an, in MQL5 zu programmieren - es ist meine erste Sprache ähnlich wie C++. Ich habe mich durch die Referenzdokumente gelesen, kann aber meinen Fehler nicht finden - der Wert, den ich erwarte, von expoMA zurückgegeben zu werden, wird in meinem Diagramm als 0,0 gedruckt/kommentiert - mache ich eine Art Syntaxfehler? Ich erhalte keine Probleme/Fehler beim Kompilieren. Jeder Beitrag, den Sie haben, wäre großartig
double expoMA(int days=2) { double alpha = 2.0 / (days + 1); //... }
Du teilst 2/4 in Ganzzahlen (0), und das wird dann in einen Double geparst. Stattdessen sollte einer der beiden Werte Dividend oder Divisor ein Double sein (damit die Division im "detailliertesten" Datentyp durchgeführt wird)
Andere Optionen könnten sein (wobei Tage ein int):
double alpha = double(2) / (days + 1); double alpha = 2 / (days + 1.0); double alpha = 2 / double(days + 1);Das ist wahrscheinlich ein Python-Fehler heheh
Manuel Alejandro Cercos Perez:
Du teilst 2/4 in Ganzzahlen (0), und das wird dann in einen Double geparst. Stattdessen sollten Sie eine zwischen Dividende oder Divisor ein Double sein (so dass die Division in der "detailliertesten" Datentyp durchgeführt wird)
Andere Optionen könnten sein (wobei Tage ein int):
Das ist wahrscheinlich ein Python-Fehler hehehHallo Manuel,
vielen Dank! Der obige Tipp funktionierte wie ein Zauber. Du hast mich davor bewahrt, viele weitere Stunden mit der Suche nach der Ursache zu verbringen.
Ihre letzte Frage: Nehmen Sie die Eröffnungszeit und addieren Sie
Großes Lob an die Übersetzer.
Nach dem ersten Artikel hatte ich Zweifel, aber jetzt bin ich sicher, dass der Autor den schwachsinnigen Programmierern erklären will, dass sie Schwachköpfe sind. Autor, nehmen Sie es mir nicht übel, aber der Artikel ist für Sie geschrieben. Außerdem macht die Arroganz, mit der Sie sich an Ihre Leser wenden, Ihre Arbeit zunichte.

- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Neuer Artikel Besser Programmieren (Teil 02): Hören Sie auf, diese 5 Dinge zu tun, um ein erfolgreicher MQL5-Programmierer zu werden :
Dieser Artikel ist ein Muss für alle, die ihre Programmierkarriere verbessern wollen. Diese Artikelserie zielt darauf ab, Sie zum besten Programmierer zu machen, der Sie sein können, unabhängig davon, wie erfahren Sie sind. Die besprochenen Ideen eignen sich sowohl für MQL5-Programmierneulinge als auch für Profis.
Ich verwende in dieser Artikelserie häufig das Wort noob (Neuling), um jemanden mit weniger Erfahrung in der MQL5-Programmierung zu beschreiben (nehmen Sie mir das nicht übel). Das macht es einfach, sich darauf zu beziehen. Das bedeutet aber nicht, dass dieser Artikel nur für Anfänger geeignet ist. Ganz und gar nicht! Er ist für alle gedacht, unabhängig von der Programmiererfahrung, die Sie haben, denn was Sie zu einem Anfänger macht oder nicht, sind Ihre Programmiergewohnheiten und Ihr Verhalten... nicht die Jahre des Programmierens.
Der erste Artikel ist hier für diejenigen, die ihn nicht gelesen haben, also lasst mich diese Mission fortsetzen, Noobs zu Profis zu machen.
Autor: Omega J Msigwa