[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 587
![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Beispiel:
Hier sind meine ausgewählten Variablen vom Typ double, aber in iMA wird ihr Wert dort verwendet, wo ein int-Wert benötigt wird (als Zeitraum von MA).
Die Frage ist: Ist diese Verwendung korrekt oder müssen die Werte in den Typ int umgewandelt werden ?
Ich habe nichts dagegen, gibt es ein funktionierendes Beispiel oder einen Link?
Bitte sagen Sie mir, ob es möglich ist, den Wert von double, der das Ergebnis der Berechnung ist, als Ersatzwert für int für weitere Berechnungen zu verwenden.
Beispiel:
Hier sind meine ausgewählten Variablen vom Typ double, aber in iMA wird ihr Wert dort verwendet, wo ein int-Wert benötigt wird (als Zeitraum von MA).
Meine Frage ist also: Ist eine solche Verwendung korrekt oder ist eine Konvertierung von Werten in den Typ int erforderlich ?
Die Umrechnung erfolgt automatisch, wobei lediglich die Nachkommastellen abgeschnitten werden. Die einzige Einschränkung bei dieser Verwendung, die ich gesehen habe, ist, dass double nicht in den Array-Index gesetzt werden kann
Eine weitere Frage:
Konstruktionen
funktionieren nicht. Wenn ihre Werte im Diagramm angezeigt werden, haben sie alle den gleichen Wert, z. B:
1.4118 für MA200_DIN, MA200_UP, MA200_DN und
1.4106 für MA5_DIN, MA5_UP, MA5_DN.
Es stellt sich heraus, dass die Formeln zur Berechnung der Stufen +20 und -20 Punkte nicht funktionieren.
Was mache ich falsch?
Wie Matroskin sagte: Du bist ein Narr... :)
Geben Sie uns einen Code oder eine Aufgabe, und wir werden ihn korrigieren
In WelsLab sieht die Entsprechung des Problems wie folgt aus:
MyATR = SMA.Series((((High-Low)/Low), PerB)[i-1] ;
wenn (BuyAtStop(i, (Open[i] + Open[i]*MyATR), "") ;
d.h. wenn ein Balken geöffnet wird, wird eine Stop-Position platziert, bei der der Open [i] -Kurs des aktuellen Balkens + Trigger (derselbe Open-Kurs multipliziert mit MyATR, berechnet für den Zeitraum PerB auf den geschlossenen Balken [i-1]) einmal geöffnet wird, wenn das angegebene Niveau erreicht wird
Hier wird gezeigt, was ich mit mql4 erreichen möchte, indem ich WellLab als Beispiel verwende.
Ich habe die Materialien vor Ort studiert und versucht, eine Analogie herzustellen.
Ergebnis: Die Aufträge stapeln sich. Bitte geben Sie an, welche Bedingung hinzugefügt (oder geändert) werden sollte, damit die Aufträge einmal zu einem bestimmten Niveau ausgeführt werden.
Hinweis: Der erste Parameter der Funktion iMAOnArray sollte ein Array sein - und Sie haben MyATR als Skalar. Um es richtig zu machen, sollten Sie:
1. deklarieren Sie double MyATR[];
2. Setzen Sie die Arraygröße auf ArrayResize(MyATR,PerB);
3. das Array füllen for(i=1;i<=PerB;i++) MyATR[i-1]=(High[i]-Low[i])/Low[i]; Index i beginnt mit 1, da wir nur geschlossene Balken benötigen
4. Danach können Sie iMAOnArray(MyATR,0,PerB,0,MODE_SMA,0) lesen; hier ist der letzte Parameter 0, da die Verschiebung ha1 bereits in Schritt 3 berücksichtigt wurde.
Prüfen Sie, wie es funktioniert, vielleicht liegt der Fehler nur in diesem