[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 186
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
if (c % 2==0) //gerade
Ich würde nicht doppelt auf Gleichheit mit irgendetwas achten.
Ich würde nicht doppelt auf Gleichheit mit irgendetwas achten.
Ich dachte, ich hätte vorher geschrieben, dass das nur für ganze Zahlen gilt. Oder lesen Sie es nicht richtig?
Frage für ein Rätsel).
Wie kann man programmatisch feststellen, ob eine Zahl gerade oder ungerade ist?
Zum Beispiel:
int a, b, c;
a=2;
b=3;
c=a+b
c ist gerade oder ungerade?
Wenn es sich bei den Zahlen um ganze Zahlen handelt, prüfen Sie, ob die Division durch 2 einen Rest ergibt.
Code-Fehler klären
Guten Tag!
Bitte, wer nicht faul ist, sich den Code anzusehen und mir mitzuteilen, was meine Fehler sind. Ich habe eine Reihe von Fehlern bei der Kompilierung. Dies ist mein erster EA, ich habe gerade erst angefangen, ihn zu verstehen. Die Idee des Expert Advisors ist folgende: Am Montag zu einem bestimmten Zeitpunkt platzieren wir schwebende Aufträge in beide Richtungen in einem Abstand von X Punkten zum Schlusskurs der Vorwoche. Am Freitag werden wir zu einem bestimmten Zeitpunkt die Marktaufträge schließen und die schwebenden Aufträge löschen. Das ist alles.
Woche_1.mq4 (4,52 KB)
um damit zu beginnen:
1) ; am Ende eines jeden Operators einfügen
2) korrekte Funktionen verwenden, z. B. Hour()
Können Sie mir bitte sagen, wie ich eine for-Schleife für bereits abgeschlossene verlustbringende Aufträge ausführen kann? Oder vielleicht hat jemand bereits eine Funktion: Wenn ein Verlustgeschäft geschlossen wird, multiplizieren Sie das Los?
irgendwelche Tipps?
einen Tipp vorschlagen!
Zeigen Sie mir Ihre eigenen Versuche, diese Funktion zu implementieren - im Thread "Hilfe für Neulinge".
oder suchen Sie nach "Suche nach der letzten abgeschlossenen Bestellung" oder ähnlichem - das Thema ist schon lange bekannt
Nun, geben Sie mir einen Hinweis.
Sehen Sie die Eulen des Avalanche-Zweigs.
Ich lerne gerade eine Programmiersprache und habe Schwierigkeiten, das Verhalten des Programms zu verstehen. Ich habe einen EA geschrieben, der auf dem Lehrbuch basiert, aber ich habe ihn auf ein etwas anderes Funktionsprinzip umgestellt.
Der Expert Advisor basiert auf einer Mittelwertbildung über 2 Muwings. Die Idee ist einfach: Die gleitenden Durchschnitte kreuzen sich, der Auftrag wird geschlossen und der entgegengesetzte wird eröffnet. Ich habe einen EA geschrieben und er funktioniert gut. Das ist natürlich ein kleiner Nachteil, aber es entspricht der Idee. Das gesamte Problem lautet wie folgt (fett gedruckt):
A=iMA(NULL,0,Zeitraum_MA_1,0,MODE_SMA, PRICE_CLOSE,1); // A
B=iMA(NULL,0,Zeitraum_MA_2,0,MODE_SMA,PREIS_SCHLUSS,1); // B
C=iMA(NULL,0,Zeitraum_MA_1,0,MODE_SMA,PREIS_SCHLUSS,2); // C
D=iMA(NULL,0,Zeitraum_MA_2,0,MODE_SMA,PREIS_SCHLUSS,2); // D
Wenn ich die Art der Berechnung der gleitenden Durchschnitte ändere (es kann ein Pluszeichen angezeigt werden) und die exponentielle Methode( MODE_SMA) anstelle der einfachen(MODE_EEMA ) und einer weiteren(MODE_SMMA), der so genannten geglätteten Methode, einsetze, geht alles schief. Das Funktionsprinzip wird noch amüsanter (im Strategietester), da der EA eine Order ganz am Anfang des eingestellten Zeitraums öffnet und am Ende schließt. D.h. für ein Jahr wird ein einziger Handel am Anfang des Zeitraums eröffnet und am Ende geschlossen. Im Ergebnis hat mir der Expert Advisor ein Plus gezeigt, aber ich brauche ein solches Plus nicht. Ich kann selbst eine Münze werfen und entweder eine Kauf- oder Verkaufsorder eröffnen und schauen, ob ich in einem Jahr gewinne oder verliere. Übrigens, wenn ich MODE_SMA auf MODE_LWMA (Linear Weighted Moving Average) einstelle, funktioniert das Programm einwandfrei.
Bitte teilen Sie mir mit, was los ist? Das Prinzip ist dasselbe, nur die Art der Berechnung der gleitenden Durchschnitte wurde ein wenig verändert.
Der gesamte Code befindet sich in der angehängten Datei.
Ich habe hier Antworten erhalten, aber sie sind nicht kompetent und nicht sachlich. Angeblich verwende ich 4 gleitende Durchschnitte. Dies ist nicht wahr, es gibt zwei gleitende Durchschnitte, aber für jeden gleitenden Durchschnitt werden Werte für zwei Balken genommen (insgesamt 4 Array-Aufrufe, A, B, C, D): 1 und 2 . Darüber hinaus wurde geschrieben, dass wir die Anzahl der Aufträge insgesamt verringern sollten, wenn ein Auftrag geschlossen wird. Dies ist jedoch nicht notwendig, da die Aufträge mit der Funktion Odertotal gezählt werden, und wenn ich einen Auftrag schließe, ändert die Auftragssumme selbst ihren Wert bei der nächsten Iteration. Es wird auch vorgeschlagen, die so genannten magischen Zahlen zu verwenden, um die Aufträge zu verfolgen, aber ich bin noch nicht zu diesem Teil des Handbuchs gekommen. Ich sollte wiederholen, dass das Programm funktioniert, wenn MODE_SMA und MODE_LWMA verwendet werden, aber nicht, wenn MODE_EMA und MODE_SMMA verwendet werden. Wer weiß warum, schreibe mir bitte eine Antwort.
Bitte geben Sie mir einen Hinweis.
Ich lerne gerade eine Programmiersprache und habe Schwierigkeiten, das Verhalten des Programms zu verstehen. Ich habe einen EA geschrieben, der auf dem Lehrbuch basiert, aber ich habe ihn auf ein etwas anderes Funktionsprinzip umgestellt.
Der Expert Advisor basiert auf einer Mittelwertbildung über 2 Muwings. Die Idee ist einfach: Die gleitenden Durchschnitte kreuzen sich, der Auftrag wird geschlossen und der entgegengesetzte wird eröffnet. Ich habe einen EA geschrieben und er funktioniert gut. Das ist natürlich ein kleiner Nachteil, aber es entspricht der Idee. Das gesamte Problem lautet wie folgt (fett gedruckt):
A=iMA(NULL,0,Zeitraum_MA_1,0,MODE_SMA, PRICE_CLOSE,1); // A
B=iMA(NULL,0,Zeitraum_MA_2,0,MODE_SMA,PREIS_SCHLUSS,1); // B
C=iMA(NULL,0,Zeitraum_MA_1,0,MODE_SMA,PREIS_SCHLUSS,2); // C
D=iMA(NULL,0,Zeitraum_MA_2,0,MODE_SMA,PREIS_SCHLUSS,2); // D
Wenn ich die Art der Berechnung der gleitenden Durchschnitte ändere (es kann ein Pluszeichen angezeigt werden) und die exponentielle Methode( MODE_SMA) anstelle der einfachen(MODE_EEMA ) und einer weiteren(MODE_SMMA), der so genannten geglätteten Methode, einsetze, geht alles schief. Das Funktionsprinzip wird noch amüsanter (im Strategietester), da der EA eine Order ganz am Anfang des eingestellten Zeitraums öffnet und am Ende schließt. D.h. für ein Jahr wird ein einziger Handel am Anfang des Zeitraums eröffnet und am Ende geschlossen. Im Ergebnis hat mir der Expert Advisor ein Plus gezeigt, aber ich brauche ein solches Plus nicht. Ich kann selbst eine Münze werfen und entweder eine Kauf- oder Verkaufsorder eröffnen und schauen, ob ich in einem Jahr gewinne oder verliere. Übrigens, wenn ich MODE_SMA auf MODE_LWMA (Linear Weighted Moving Average) einstelle, funktioniert das Programm einwandfrei.
Bitte teilen Sie mir mit, was los ist? Das Prinzip ist dasselbe, aber die Art der Berechnung der gleitenden Durchschnitte wurde ein wenig geändert.
Der gesamte Code befindet sich in der angehängten Datei.
Ich habe hier Antworten erhalten, aber sie sind nicht kompetent und nicht sachlich. Angeblich verwende ich 4 gleitende Durchschnitte. Dies ist nicht wahr, es gibt zwei gleitende Durchschnitte, aber für jeden gleitenden Durchschnitt werden Werte für zwei Balken genommen (insgesamt 4 Array-Aufrufe, A, B, C, D): 1 und 2 . Darüber hinaus wurde geschrieben, dass wir die Anzahl der Aufträge insgesamt verringern sollten, wenn ein Auftrag geschlossen wird. Dies ist jedoch nicht notwendig, da die Aufträge mit der Funktion Odertotal gezählt werden und wenn ich einen Auftrag schließe, ändert die Auftragssumme selbst ihren Wert bei der nächsten Iteration. Es wird auch vorgeschlagen, die so genannten magischen Zahlen zu verwenden, um die Aufträge zu verfolgen, aber ich bin noch nicht zu diesem Teil des Handbuchs gekommen. Ich sollte wiederholen, dass das Programm funktioniert, wenn MODE_SMA und MODE_LWMA verwendet werden, aber nicht, wenn MODE_EMA und MODE_SMMA verwendet werden. Wer weiß warum, schreibe mir bitte eine Antwort.
Ich würde auch die Bedingungen zweimal überprüfen. Hier könnte es ein Problem geben