Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 852
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
Eröffnet nicht einen Handel, wo ist der Fehler?
Öffnet den Handel nicht, wo ist der Fehler?
Fehler Nummer 1: Bei jedem Tick erstellen Sie einen NEUEN Indikator HANDL
Schwarm Nummer 2: (wahrscheinlich) hat die Variable Lot ein falsches Volumen.
Fehler Nummer 3: (wahrscheinlich) ist die Auftragsart für die Klasse CTrade nicht gefüllt.
Was steht im Allgemeinen im Protokoll des Terminals (oder des Testers)?
der Betrag multipliziert mit dem Währungsverlust von 1 SL
Und wenn der Verlust 1 ist, zum Beispiel in BO.
Ich setze die Werte in die Formel ein und erhalte nicht einmal annähernd das gleiche Ergebnis.
Was ist los?
Lücke Nummer 1: Für jeden Tick erstellen Sie einen NEUEN Indikator HANDL
Schwarm Nummer 2: (wahrscheinlich) hat die Variable Lot ein falsches Volumen.
Fehler Nummer 3: (wahrscheinlich) ist die Auftragsart für die Klasse CTrade nicht gefüllt.
Wie auch immer, was steht im Protokoll des Terminals (oder des Testers)?
Dieser Code war in Onitics
Verschieben Sie es zu Onytics. Ich habe gerade die Artikel hier gelesen - und ich habe verstanden, dass es keinen Unterschied für die Arbeit gibt, aber es ist besser in onitiket. Aber in Bezug auf die Klarheit für mich selbst, war ich bequemer, alles in 1 Block zu tun, ich bin rein für mich, während die Lösung von Problemen, die ich mir selbst (Lernen.)
Das Problem war das Los - ich musste eine nicht variable Menge eingeben - und die Funktion returnlot (weil es eine Funktion zur Berechnung des Loses war).
Jetzt habe ich einen Fehler in der Lot-Funktion gefunden - das Lot wird mit vielen Nachkommastellen berechnet und als Ergebnis kann der Auftrag nicht geöffnet werden. Wir müssen unnötige Zeichen reduzieren und nur 2 übrig lassen.
NormalizeDouble und DoubleToStr so weit kann nicht funktionieren - schreibt, dass die Funktion nicht in der Funktion platziert werden kann, und unten, wenn ich ihre Arbeit mit der Funktion schreibt Fehler - die ich nicht beheben kann.
Dieser Code war in Onitik.
Nach ontic verschoben. Ich habe gerade die Artikel hier gelesen - und aus ihnen habe ich verstanden, dass es keinen Unterschied für die Arbeit gibt, aber es ist besser in ontiket. Aber in Bezug auf die Klarheit für mich selbst, war ich bequemer, alles in 1 Block zu tun, ich bin rein für mich, während die Lösung von Problemen, die ich mir selbst (Lernen.)
Das Problem war das Los - ich musste eine nicht variable Menge eingeben - und die Funktion returnlot (weil es eine Funktion zur Berechnung des Loses war).
Jetzt habe ich einen Fehler in der Lot-Funktion gefunden - das Lot wird mit vielen Nachkommastellen berechnet und als Ergebnis kann der Auftrag nicht geöffnet werden. Wir müssen unnötige Zeichen reduzieren und nur 2 übrig lassen.
Wenn ich die Funktion NormalizeDouble und DoubleToStr einfüge, kann ich es noch nicht tun, es sagt, dass die Funktion nicht eingefügt werden kann, und unten sehe ich Fehler, die ich nicht korrigieren kann.
In MQL5 müssen Sie ein Indikator-Handle NUR einmal und NUR in OnInit erstellen. Es ist ein Axiom. Sie können nicht bei jedem Tick in OnTick ein Indikator-Handle erstellen - das ist falsch.
Die korrekte Normalisierung des Loses erfolgt in der Handelsklasse CSymbolInfo::NormalizePrice
In MQL5 müssen Sie ein Indikator-Handle NUR einmal und NUR in OnInit erstellen. Es ist ein Axiom. Sie können nicht bei jedem Tick in OnTick ein Indikator-Handle erstellen - das ist RICHTIG.
Die korrekte Normalisierung des Loses erfolgt in der Handelsklasse CSymbolInfo::NormalizePrice
Das ist falsch, das bestreite ich nicht. ABER!!! Was wird sich ändern, wenn wir sie bei jedem Häkchen erstellen??? Nicht einmal der Wert wird sich ändern.
Falsch, das lässt sich nicht bestreiten. ABER!!! Was wird sich ändern, wenn Sie bei jedem Häkchen etwas erstellen? Nicht einmal der Wert wird sich ändern.
Was soll das bringen? Das ist nur eine Menge zusätzlicher Arbeit für das Drehbuch, das ist alles.
Falsch, das lässt sich nicht bestreiten. ABER!!! Was wird sich ändern, wenn Sie bei jedem Häkchen etwas erstellen? Nicht einmal der Wert wird sich ändern.
In einem kürzlich erschienenen Artikel habe ich gezeigt, dass MQL5 die Überbleibsel der Codierung im MQL4-Stil - Erstellung von Handles bei jedem Tick - wirksam bekämpft: Der Speicher wird nicht verschwendet, aber die Betriebsgeschwindigkeit wird zumindest verringert. Aber ich wiederhole: Die Erstellung von Indikatoren in MQL5 im Stil von MQL4 ist nicht die richtige Methode. Wenn Sie zu MQL5 wechseln, bedeutet das, dass der Programmierstil neu aufgebaut werden muss.
Was soll das bringen? Es ist nur zusätzliche Arbeit für das Drehbuch, das ist alles.
Das hat natürlich keinen Sinn. Es war so eine versteckte Frage drubashke: Warum ähneln Neurastheniker, die hier sind genug, wie es ist, und schalten Sie Caps Lock?
Das heißt, das Ergebnis ist das gleiche, aber die Ausführung ist natürlich sinnlos und viel anstrengender, wie ich dem Geschriebenen entnehme.
Ich wünschte, sie hätten daran gedacht, dies in dem Artikel zu erwähnen, aber im Allgemeinen ist es klar, dass es keinen Grund gibt, dieselbe Sache mehrmals zu tun.
Aber ich hatte das Ziel zu schreiben, um zu verstehen und selbst zu arbeiten, nicht um zu optimieren - das ist, nachdem ich gezählt habe.