Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1179
![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
Wenn ich eine Abfrage wie diese mache:
Ich erhalte dieses Ergebnis:
2020.06.17 13:49:53.270 2020.01.02 06:50:00 Symbol EURUSD_i Ziffern 5 Punkt 1e-05
Wenn ich eine Anfrage wie diese stelle:
Ich erhalte dieses Ergebnis:
2020.06.17 13:51:58.787 2020.01.02 06:45:00 Symbol EURUSD_i Ziffern 0 Punkt 0.0
Gleichzeitig möchte ich anmerken, dass ich, wenn ich die Funktion Print nicht einfüge, überhaupt keinen Fehler erhalte, der Auftrag versucht nicht einmal, sich zu ändern. Es ist, als ob CTrade meine Bestellung nicht sieht.
Die Suche nach dem Symbol und der magischen Zahl funktioniert nicht:
Ergebnis:
2020.06.17 14:37:38.147 2020.01.02 06:50:00 Symbol Magic 0 Ticket 2
Die magische Zahl sollte 12345 sein, das Symbol ist Euro-Dollar.
Warum kann ich kein Symbol und kein Medikament bekommen?
Wenn Sie die Zeichenfolge ändern:
wird geändert in
und die Validierung durch die magische Zahl entfernen, dann gibt es Probleme mit den Preisen
2020.06.17 01:38:24.136 2020.01.02 07:40:00 fehlgeschlagene Änderung der Order #2 buy stop 0.1 EURUSD_i bei 1.12086 sl: 1.12023 tp: 1.12275 -> 1.00000, sl: 1.00000 tp: 1.00000 [Ungültiger Preis]
2020.06.17 01:38:24.136 2020.01.02 07:40:00 CTrade::OrderSend: modify #2 at 1.00000 (sl: 1.00000 tp: 1.00000) [invalid price]
2020.06.17 01:38:24.136 2020.01.02 07:40:00 BUY STOP modification failed! Ergebnis Retcode: 10015, Beschreibung des Retcodes: ungültiger Preis
Ich habe mir bereits das Hirn zermartert, während derselbe Code in einem anderen Expert Advisor gut funktioniert.
Was mache ich falsch?
Falsch initialisiertes (oder nicht) Objekt der Klasse CSymbolInfo.
Wenn Sie die Zeichenfolge asymbol.Name(Symbol()) nicht haben, fügen Sie sie hinzu.
Wenn Sie eine haben, debuggen Sie in der Funktion Name(string symbol), was passiert.
Füllen der Felder m_digits usw. mit Refresh().
s.s. Nach dem zu urteilen, was Sie hinzugefügt haben, haben Sie definitiv asymbol uninitialisiert.
Bis zum Eintreffen des neuen Häkchens werden die Tasten nicht bewegt. Das ist es, was ich mit meinen Augen sehen kann. Sobald sich der Preis ändert, bewegen sich die Schaltflächen.
Allerdings werden die Schaltflächen heute auch auf dem neuen Häkchen nicht mehr neu gezeichnet, obwohl ich nichts geändert habe. Nur der Hintergrund bewegt sich.Um zu klären - wie Sie sagen, Sie ändern die Koordinaten in OnTick, und behaupten, dass in der Tat die Tasten auf der NEXT Tick bewegen. Der nächste Tick von dem, bei dem Sie die Koordinaten geändert haben, oder der von Weihnachten?
Ihr CSymbolInfo-Klassenobjekt ist falsch (oder gar nicht) initialisiert.
Wenn Sie keine solche Zeichenfolge asymbol.Name(Symbol()) haben, fügen Sie sie hinzu.
Wenn Sie eine haben, debuggen Sie in der Funktion Name(string symbol), was passiert.
Füllen der Felder m_digits usw. mit Refresh().
s.s. Nach dem zu urteilen, was Sie hinzugefügt haben, ist Ihr asymbol definitiv uninitialisiert.
Ist es eine Initialisierung? Beim Kompilieren erhalte ich die folgenden Informationen
Panel "Handel.mq5" Panel "Handel.mq5" 1 1
Handel.mqh' Handel.mqh 1 1
Object.mqh' Object.mqh 1 1
'StdLibErr.mqh' StdLibErr.mqh 1 1
'OrderInfo.mqh' OrderInfo.mqh 1 1
HistoryOrderInfo.mqh' HistoryOrderInfo.mqh 1 1
PositionInfo.mqh' PositionInfo.mqh 1 1
'DealInfo.mqh' DealInfo.mqh 1 1
'SymbolInfo.mqh' SymbolInfo.mqh 1 1
erzeugter Code 1 1
0 Fehler, 0 Warnungen, 3192 msec verstrichen 1 1
Nachdem ich einen Kauf-Stopp-Auftrag eröffnet habe, berechne ich alle Aufträge neu, wähle einen offenen Auftrag aus und prüfe, ob das Symbol und die Majdic-Nummer übereinstimmen:
In dieser Phase passiert nichts, wie ich bereits oben geschrieben habe. asymbol.Name() gibt aus irgendeinem Grund nicht das Symbol der offenen Order zurück, aorder.Magic() gibt den Wert 0 zurück (obwohl meine magische Zahl 121345 ist), asymbol.TickSize() gibt den Wert 0 zurück. Mit anderen Worten: Die Prüfung schlägt fehl, und die weitere Bearbeitung des Auftrags wird eingestellt. Bitte klären Sie"debug in function Name(string symbol) what's going on", ich verstehe diese Formulierung nicht ganz. Was sollte ich hinzufügen und wo?
Um zu klären - wie Sie sagen, Sie ändern die Koordinaten in OnTick, und behaupten, dass in der Tat die Tasten auf der NEXT Tick bewegen. Der nächste Tick von dem, bei dem du die Koordinaten geändert hast, oder der von Weihnachten?
In diesem Stadium passiert nichts, denn wie ich bereits oben geschrieben habe, gibt die Funktion asymbol.Name() aus irgendeinem Grund nicht das Symbol der offenen Order zurück, die Funktion aorder.Magic() gibt den Wert 0 zurück (obwohl meine Magic 121345 ist), die Funktion asymbol.TickSize() gibt den Wert 0 zurück. Mit anderen Worten: Die Prüfung schlägt fehl, und die weitere Bearbeitung des Auftrags wird eingestellt. Bitte klären Sie"debug in function Name(string symbol) what's going on", ich verstehe diese Formulierung nicht ganz. Was sollte ich hinzufügen und wo?
Der Fehler im Auftragsindex / Ticket könnte ein Fehler sein, der nach der magischen 0 beurteilt wird. Im Moment des Zugriffs auf die Auftragsstruktur werden dort Daten der falschen Reihenfolge geschrieben. In der Auswahlschleife kann es vorkommen, dass die nächste Nummer im letzten Auftragssatz steht und nicht die, die Sie benötigen. Die Daten der letzten Auftragsselektion werden aus der Auftragsstruktur zurückgegeben.
ganz oben in meinem Code stehen die Zeilen
Ist dies eine Initialisierung? Beim Kompilieren erhalte ich die folgenden Informationen
'Trade panel.mq5' Trade panel.mq5 1 1
Handel.mqh' Handel.mqh 1 1
Object.mqh' Object.mqh 1 1
'StdLibErr.mqh' StdLibErr.mqh 1 1
'OrderInfo.mqh' OrderInfo.mqh 1 1
HistoryOrderInfo.mqh' HistoryOrderInfo.mqh 1 1
PositionInfo.mqh' PositionInfo.mqh 1 1
'DealInfo.mqh' DealInfo.mqh 1 1
'SymbolInfo.mqh' SymbolInfo.mqh 1 1
erzeugter Code 1 1
0 Fehler, 0 Warnungen, 3192 msec verstrichen 1 1
Nachdem ich einen Kauf-Stopp-Auftrag eröffnet habe, berechne ich alle Aufträge neu, wähle einen offenen Auftrag aus und prüfe, ob das Symbol und die Majdic-Nummer übereinstimmen:
In diesem Stadium passiert nichts, wie ich oben geschrieben habe. asymbol.Name() gibt aus irgendeinem Grund nicht das Symbol der offenen Order zurück, aorder.Magic() gibt den Wert 0 zurück (obwohl meine magische Zahl 121345 ist), asymbol.TickSize() gibt den Wert 0 zurück. Mit anderen Worten: Die Prüfung schlägt fehl und die weitere Bearbeitung des Auftrags wird gestoppt. Bitte klären Sie"debug in function Name(string symbol) what's going on", ich verstehe diese Formulierung nicht ganz. Was sollte ich hinzufügen und wo?
Mensch, warum benutzt du etwas, das du nicht verstehst (was, wenn es ein Koffer ist?). )
Und Sie machen sich nicht einmal die Mühe zu lesen, was geschrieben steht
Wenn Sie asymbol.Name(Symbol()) nicht haben, fügen Sie es hinzu.
s.w. Ich wollte mehr über die Initialisierung erklären, aber das wäre wohl auch sinnlosEs kann ein Fehler im Auftragsindex / Ticket nach magic 0 vorliegen. Im Moment des Verweises auf die Auftragsstruktur sind dort die Daten des falschen Auftrags gespeichert. Im Selektionszyklus kann es vorkommen, dass die nächste Nummer zum letzten Auftragssatz geht, aber nicht zu dem, den Sie benötigen. Die Daten der letzten Auftragsselektion werden aus der Auftragsstruktur zurückgegeben.
Guten Tag!
Helfen Sie mir, ein einfaches Problem zu lösen.
Lückenzähler. Ich möchte Lücken zählen, die mehr als 10 Punkte betragen.
Die Variable "Lücke" wird auf Null zurückgesetzt. Ich verstehe nicht, warum. Ich habe schon alles versucht. Ich habe es mit Schleifen und Statik versucht - es funktioniert nicht. Ich vermute, ich habe die Schleifen falsch geschrieben.
Guten Tag!
Helfen Sie mir, ein einfaches Problem zu lösen.
Lückenzähler. Ich möchte Lücken zählen, die mehr als 10 Punkte betragen.
Die Variable "Lücke" wird auf Null zurückgesetzt. Ich verstehe nicht, warum. Ich habe schon alles versucht. Ich habe es mit Schleifen und Statik versucht - es funktioniert nicht. Ich vermute, ich habe die Schleifen falsch geschrieben.
Die Variable gap liegt im Bereich der Funktion start - und wird bei jedem neuen Tick mit Null neu initialisiert
Guten Tag!
Helfen Sie mir, ein einfaches Problem zu lösen.
Lückenzähler. Ich möchte Lücken zählen, die mehr als 10 Punkte betragen.
Die Variable "Lücke" wird auf Null zurückgesetzt. Ich verstehe nicht, warum. Ich habe schon alles versucht. Ich habe es mit Schleifen und Statik versucht - es funktioniert nicht. Ich vermute, ich habe die Schleifen falsch geschrieben.