Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 170
![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
In CodeBase finden Sie zahlreiche Beispiele. Suchen Sie nach Expert Advisors on pending orders und sehen Sie nach, wie der Code geschrieben ist.
Ich habe etwa eine Stunde langCodeBase durchsucht und nichts Verständliches gefunden. Das ist zu kompliziert für mich. Die Codes sind zu umfangreich und unverständlich für mich, während ich nur ein paar 4-6 Zeilen lange Codes brauche. Danke für die Antwort, aber sie passt nicht.
Ich habe etwa eine Stunde lang ineinen schwebenden Auftrag, wenn der Kurs einen beliebigen Wert erreicht hat (d.h. wenn der Kurs 0,7777 beträgt, dann eröffnen Sie einen schwebenden Auftrag)
2) Schließen Sie den Auftrag (Marktauftrag), wenn er einen beliebigen Wert erreicht hat (d.h. wenn der Kurs 0,6666 beträgt, schließen Sie den Auftrag).
Eine Antwort auf 4-6 Codezeilen erhalten?
Gehören Sie zu den Kunden, die schreiben: "Was gibt es zu tun? Es braucht nur ein paar Zeilen... Was sind schon hundert Pfund?"
Um es klar zu sagen:
Sie müssen zunächst feststellen, dass der Kurs 0,7777 erreicht hat. Hat sie den Gipfel erreicht? Unten? Ist es in Ordnung, wenn der vorherige Tick z.B. 0,7776 war und der aktuelle Tick 0,7778 ist? In diesem Fall wird der Preis nicht dem Wert von 0,7777 entsprechen. Sie müssen also den vergangenen und den aktuellen Wert daraufhin überprüfen, ob sich die beiden Werte überschneiden. Dementsprechend müssen Sie den Wert des vorherigen Ticks speichern und den Wert des aktuellen Ticks kennen. Das bedeutet, dass Sie eine Funktion benötigen, um den Wert des Ticks zu ermitteln und zu speichern, damit Sie ihn später mit drei Preisen vergleichen können: dem vorherigen Tick, dem aktuellen Tick und dem gekreuzten Preis selbst.
Weiter. Wir müssen wissen, in welcher Richtung der Preis den erforderlichen Wert überschreiten wird, und dementsprechend müssen wir die erforderliche Art von schwebenden Aufträgen zu dem erforderlichen Preis festlegen.
Um ihn zu setzen, müssen wir den gesetzten Preis aus dem aktuellen Preis berechnen, den erhaltenen Abstand der ausstehenden Ordereinstellung mit dem StopLevel-Wert vergleichen und wenn der erhaltene Abstand kleiner als dieser Wert ist, dann: a) den Ordereinstellungsabstand korrigieren, um nicht den Fehler 130 zu erreichen, und die Order setzen oder b) warten, bis der Einstellungsabstand den StopLevel übersteigt (mit der gleitenden Spanne, die wir auch bei jedem Tick erhalten sollten) und sehen, ob der Preis bereits das voreingestellte Niveau überschreitet und wenn er auf dem richtigen Wert ist - d.h. wenn der StopLevel bereits gesetzt ist, können wir die Order setzen.е., er sich von dieser Ebene entfernt hat, um eine Bestellung aufzugeben, oder der Zug bereits abgefahren ist.
Sie müssen auch die Stop- und Take-Werte eines schwebenden Auftrags berechnen, die nicht unter dem StopLevel liegen dürfen (korrigieren Sie sie gegebenenfalls).
Wenn alle Prüfungen bestanden wurden, sollte ein Auftrag an den Server gesendet werden, um einen schwebenden Auftrag zu setzen, eine Antwort zu erhalten - wenn die Antwort einen Fehler enthält, ist sie zu verarbeiten (eine weitere Funktion ist erforderlich)...
Dies gilt für schwebende Aufträge.
Bei der Schließung einer Position verhält es sich in etwa genauso: Identifizierung der Kreuzung, Senden eines Handelsauftrags und Bearbeitung der Antwort des Servers im Falle eines Fehlers.
Wenn Sie es schaffen, für all das 4-6 Zeilen einzuplanen, dann ...Sie erhalten eine Medaille im Lagerhaus... ;)
Ich habe das Gefühl, dass es nach dieser Erklärung einen Programmieranfänger weniger gibt ))))
Leute, was bedeutet das (.e) in valuta bitte erklären
Sie benötigen einen Codeabschnitt - einen zuverlässigen Trailing-Stop für mehrere Währungen, der mit einem festgelegten Break-even-Punkt und einem festgelegten Einzug vom Kurs beginnt
Sehen Sie sich das hier an, http://www.kimiv.ru/index.php?option=com_remository&Itemid=13&func=fileinfo&id=62
Sie möchten diese Frage beantworten:
1) Eröffnen Sie einen schwebenden Auftrag, wenn der Kurs einen beliebigen Wert erreicht hat (d.h. wenn der Kurs 0,7777 beträgt, dann eröffnen Sie einen schwebenden Auftrag)
2) Schließen Sie den Auftrag (Marktauftrag), wenn er einen beliebigen Wert erreicht hat (d.h. wenn der Kurs 0,6666 beträgt, schließen Sie den Auftrag).
Eine Antwort auf 4-6 Codezeilen erhalten?
Gehören Sie zu den Kunden, die schreiben: "Was gibt es da zu tun? Es braucht nur ein paar Zeilen... Was sind schon hundert Pfund?"
Um es klar zu sagen:
Sie müssen zunächst feststellen, dass der Kurs 0,7777 erreicht hat. Hat sie den Gipfel erreicht? Unten? Ist es in Ordnung, wenn der vorherige Tick z.B. 0,7776 war und der aktuelle Tick 0,7778 geworden ist? In diesem Fall wird der Preis nicht dem Wert von 0,7777 entsprechen. Sie müssen also den vergangenen und den aktuellen Wert daraufhin überprüfen, ob sich die beiden Werte überschneiden. Dementsprechend müssen Sie den Wert des vorherigen Ticks speichern und den Wert des aktuellen Ticks kennen. Das bedeutet, dass Sie eine Funktion benötigen, um den Wert des Ticks zu ermitteln und zu speichern, damit Sie ihn später mit drei Preisen vergleichen können: dem vorherigen Tick, dem aktuellen Tick und dem gekreuzten Preis selbst.
Weiter. Wir müssen wissen, in welcher Richtung der Preis den erforderlichen Wert überschreiten wird, und dementsprechend müssen wir die erforderliche Art von schwebenden Aufträgen zu dem erforderlichen Preis festlegen.
Um ihn zu setzen, müssen wir den gesetzten Preis aus dem aktuellen Preis berechnen, den erhaltenen Abstand der ausstehenden Ordereinstellung mit dem StopLevel-Wert vergleichen und wenn der erhaltene Abstand kleiner als dieser Wert ist, dann: a) den Ordereinstellungsabstand korrigieren, um nicht den Fehler 130 zu erreichen, und die Order setzen oder b) warten, bis der Einstellungsabstand den StopLevel übersteigt (mit der gleitenden Spanne, die wir auch bei jedem Tick erhalten sollten) und sehen, ob der Preis bereits das voreingestellte Niveau überschreitet und wenn er auf dem richtigen Wert ist - d.h. wenn das Stop-Level gesetzt ist, können wir die Order setzen.е., er sich von dieser Ebene entfernt hat, um eine Bestellung aufzugeben, oder der Zug bereits abgefahren ist.
Sie müssen auch die Stop- und Take-Werte für den schwebenden Auftrag berechnen, die ihrerseits nicht unter dem Stop-Level liegen sollten (korrigieren Sie sie gegebenenfalls).
Wenn alle Prüfungen bestanden wurden, sollte ein Auftrag an den Server gesendet werden, um einen schwebenden Auftrag zu setzen, eine Antwort zu erhalten - wenn die Antwort einen Fehler enthält, ist sie zu verarbeiten (eine weitere Funktion ist erforderlich)...
Dies gilt für schwebende Aufträge.
Bei der Schließung einer Position verhält es sich ähnlich - Identifizierung der Kreuzung, Senden eines Handelsauftrags und Bearbeitung der Antwort des Servers im Falle eines Fehlers.
Wenn Sie es schaffen, für all das 4-6 Zeilen einzuplanen, dann ...Sie erhalten eine Medaille im Lagerhaus... ;)
"Sie sind die Art von Kunde, die sagt: "Was kann man da machen? Es sind nur ein paar Zeilen... Was sind schon hundert Pfund?" Nein, ich gehöre nicht zu diesen Leuten und ich verstehe nicht, warum Sie mich für einen Kunden halten. Ich möchte dieses Programm zu lernen, weil ich Ideen über die Expert Advisor haben, sind die Probleme bei der Umsetzung nur technische (und ich bin nicht bestreiten, dass die Probleme sehr groß sind), aber ich bin nicht versuchen, so etwas wie "machen mich alle die Software und dass es nur mit Gewinn funktioniert. Im Gegenteil, ich habe mit den Grundlagen begonnen und möchte meinen ersten Expert Advisor schreiben. Ich habe auch geschrieben, dass ich ein sehr einfaches Beispiel wollte, ohne alle Details zu berücksichtigen (auch wenn ich weiß, dass sie sehr wichtig sind), aber irgendwo muss ich ja anfangen. Ich wusste, dass es für einen Fachmann schmerzhaft sein würde, sich anzusehen, was ich verlange, aber ich konnte nicht anders, solange es alles ist, was ich weiß. Ich dachte, ich könnte einen solchen Code mit Hilfe des if else-Operators und der Funktion OrderSend (OrderClose) und einigen anderen Dingen schreiben, was ich aber nicht kann. Sie haben eine Menge komplizierter Begriffe geschrieben und mir damit gesagt, dass ich nichts kann und ein Idiot beim Programmieren bin, aber ich weiß es trotzdem. Ich hoffe, Sie halten mich nicht für einen arroganten Mann und verstehen, dass ich einfach weiter lernen möchte. Aber Sie haben auch Recht, ich hoffe, es wurde ein Kompromiss gefunden.
Niemand hat Sie einen "Trottel" genannt, das ist nicht wahr. Aber auch 4-6 Zeilen Code sorgen für Verwirrung - denn wenn ein Mensch etwas lernt, muss er schon etwas ausprobieren, er hat schon versucht, etwas zu schreiben, und sieht deutlich, dass 4-6 Zeilen nicht dazu passen.
Zeigen Sie uns, was Sie zu tun versucht haben - wir wollen versuchen, es zu verstehen.
Ich kann eine alternative, vereinfachte Version vorschlagen - suchen Sie nicht nach einer Preisniveauüberschreitung durch Ticks, sondern durch MA(1) - dann werden die MA auf Bar 1 und MA auf Bar 0 als Indikator für die notwendige Niveauüberschreitung dienen.
Leute, was bedeutet das (.e) in valuta bitte erklären