Cycle Operator 'für' Fragen - Seite 8

 
WhooDoo22:

Der obige Snapshot-Fehler ist das aktuelle Problem, das behoben werden muss. Was empfehlen Sie, um dieses Problem zu lösen?

Ich danke Ihnen.

Ich habe den Grund dafür in einem früheren Beitrag beschrieben (letzter Beitrag auf Seite 4) ... abgesehen davon, dass ich vorschlage, eine Schleife zu formulieren (for oder while, sie sind dasselbe), die ALLE offenen Aufträge durchläuft und die richtigen findet, um sie zu ändern und zu schließen ... aber was Sie wirklich tun sollten, ist mql4 für einige Monate zu vergessen und zuerst die Grundlagen zu lernen ...
 

Simon,

Welche Grundlagen sollte man Ihrer Meinung nach am besten studieren?


Also, ich analysiere das gerade:

Jetzt isti 2, die OrderSelect() versucht, die Order an Position 2 auszuwählen, schlägt aber fehl. es sind nur 2 Orders offen, an den Positionen 0 & 1, also gibt OrderSelect() false zurück, was macht OrderSymbol()? es ist keine gültige Order ausgewählt . . . aber selbst wenn sie aus irgendeinem seltsamen Grund true zurückgibt, hat OrderSelect() bereits false,false und true = false zurückgegeben ... die while-Schleife ist beendet undi ist auf 2 gesetzt

Gehen Sie nun den Rest des Codes durch und beachten Sie dabei, dassi den Wert 2 hat...


Die Art und Weise, wie der Beitrag geschrieben wurde, war etwas schwierig zu lesen , aber ich fand diesen Abschnitt oben interessant.


Wenn der aktuelle Wert von "i" jetzt zwei (2) ist, dann hält die Funktion OrderSelect() 2 als Nummer der Bestellposition. Offensichtlich gibt es keine Bestellung in der Bestellposition 2, wenn man davon ausgeht, dass die Bestellung bereits geschlossen wurde, so dass ein Fehler "ungültiges Ticket" erzeugt wird.

Ich arbeite derzeit an diesem Problem.

Ich denke daran, den Wert 2, der derzeit in der Funktion OrderSelect() enthalten ist, auf Null zurückzusetzen und eine Bedingung vor der Ausführung der Codezeilen unterhalb des "while"-Zyklus hinzuzufügen.

Ich danke Ihnen.

 
WhooDoo22:

Simon,

Welche Grundlagen sollte man Ihrer Meinung nach am besten studieren?

Alle... . suchen mit Google finden Sie viele Ressourcen, verlassen Sie sich nicht nur auf eine Quelle für jedes Thema, finden Sie IMMER mehr als eine, so dass Sie Ihr Verständnis zu testen ... Sie sollten die folgenden mindestens abdecken und vieles mehr darüber hinaus:

  • binär
  • hexadezimal
  • grundlegende boolesche Algebra
  • Was ist ein Algorithmus?
  • Flussdiagramme
  • Variablen und Typen von Variablen
  • Bedingungen
  • Schleifen
  • Arrays und Sortierung von Arrays
  • Grundlagen des Umgangs mit Zeichenketten

Dies setzt voraus, dass Sie über gute Mathematikkenntnisse verfügen, andernfalls müssen Sie Ihre Algebrakenntnisse auffrischen.

 
WhooDoo22:

Wenn der aktuelle Wert von 'i' nun zwei (2) ist, hält die Funktion OrderSelect() 2 als Positionsnummer der Bestellung fest. Offensichtlich gibt es keinen Auftrag in Auftragsposition 2, wenn man davon ausgeht, dass der Auftrag bereits geschlossen wurde, so dass ein Fehler "ungültiges Ticket" erzeugt wird.

Ich arbeite derzeit an diesem Problem.

Ich denke daran, den Wert 2, der derzeit in der Funktion OrderSelect() enthalten ist, auf Null zurückzusetzen und eine Bedingung vor der Ausführung der Codezeilen unterhalb des "while"-Zykluskörpers hinzuzufügen.

Ich danke Ihnen.

Beheben Sie die Ursache des Problems, versuchen Sie nicht, die Symptome zu bekämpfen ... Ihre Schleife sollte die USDJPY-Order finden, aber was soll sie tun, wenn es keine gibt ? was soll sie tun, wenn es mehr als eine gibt ?

Ihr Code muss nicht
nur dasbehandeln, was Ihrer Meinung nach passieren sollte, sondern auch das, was passieren kann...
 

Simon,

Ich werde einen Teil meiner Zeit dem Studium dieser Grundlagen widmen, aber ;) Band II MUSS fertiggestellt werden. Ich habe mir sogar eine effektivere Nutzung der gleitenden Durchschnitte für die MF-Codeblöcke ausgedacht. Ich bin sehr stolz auf mich, dass ich eine profitablere Verwendung für diese gleitenden Durchschnitte in Betracht gezogen und entwickelt habe. Anstatt meine Ausstiegs-/Einstiegssignale auf der Grundlage von gleitenden Durchschnitten zu entwerfen, habe ich beschlossen, diese Signale innerhalb dieser gleitenden Durchschnittsperioden auszuführen und geeignete gleitende Durchschnitte für Ausstiege innerhalb gleitender Durchschnittsperioden zu verwenden. Im Grunde genommen gleitende Durchschnitte innerhalb gleitender Durchschnitte. Auch Volume II wird sich besser anpassen, da es nicht jedes Mal 0,5-Lot-Aufträge eröffnet, sondern nur dann, wenn fünf gleitende Durchschnitte in zwei gleitende Durchschnitte (ein Teil des Marktes) passen. Beispiel: gleitender Durchschnitt eins und gleitender Durchschnitt zweihundert bilden einen Abschnitt, innerhalb dessen gespielt werden kann, wenn genügend Unterstützung/Widerstand geschaffen wird. Es ist sehr erfreulich, dass ich heute schon daran gedacht habe :)

Ich danke Ihnen.

 

Simon,

aber was soll es tun, wenn es keine gibt?

Deshalb möchte ich eine Bedingung unter dem 'while'-Zyklus hinzufügen, die vor der Ausführung der Funktion OrderClose() geprüft wird.

Was ist zu tun, wenn es mehr als eine gibt?

Das habe ich nicht bedacht, aber ich überlege es mir jetzt.

Ihr Code muss nicht nur dasbehandeln, was Ihrer Meinung nach passieren sollte, sondern auch das, was passieren kann...

Ja, ich stimme voll und ganz zu.

Ich danke Ihnen.

 
WhooDoo22:

Simon,

Ich werde einen Teil meiner Zeit dem Studium dieser Grundlagen widmen, aber ;) Band II MUSS fertiggestellt werden. Ich habe mir sogar eine effektivere Nutzung der gleitenden Durchschnitte für die MF-Codeblöcke ausgedacht. Ich bin sehr stolz auf mich, dass ich eine profitablere Verwendung für diese gleitenden Durchschnitte in Betracht gezogen und entwickelt habe. Anstatt meine Ausstiegs-/Einstiegssignale auf der Grundlage von gleitenden Durchschnitten zu entwerfen, habe ich beschlossen, diese Signale innerhalb dieser gleitenden Durchschnittsperioden auszuführen und geeignete gleitende Durchschnitte für Ausstiege innerhalb gleitender Durchschnittsperioden zu verwenden. Im Grunde genommen gleitende Durchschnitte innerhalb gleitender Durchschnitte. Auch Volume II wird sich besser anpassen, da es nicht jedes Mal 0,5-Lot-Aufträge eröffnet, sondern nur dann, wenn fünf gleitende Durchschnitte in zwei gleitende Durchschnitte (ein Teil des Marktes) passen. Beispiel: gleitender Durchschnitt eins und gleitender Durchschnitt zweihundert bilden einen Abschnitt, innerhalb dessen gespielt werden kann, wenn genügend Unterstützung/Widerstand geschaffen wird. Es ist sehr erfreulich, dass ich heute schon daran gedacht habe :)

Ich danke Ihnen.

Ich glaube nicht, dass man einen funktionierenden EA fertigstellen kann, ohne die Grundlagen zu verstehen . . . und Sie verschwenden wertvolle Zeit damit, es zu versuchen. Es gibt nur einen schnellsten Weg, etwas zu tun, es beim ersten Mal richtig zu machen.
 

Simon,

Ich glaube nicht, dass man einen funktionierenden EA erstellen kann, ohne die Grundlagen zu verstehen.

Ich verstehe zwar einige Grundlagen, aber nicht alle. Glauben Sie wirklich, dass das Verstehen aller Grundlagen der Codierung der einzige Weg zur Fertigstellung eines Expert Advisors ist?

Ich persönlich bin der festen Überzeugung, dass ich nur ein MetaEditor-Wörterbuch in Verbindung mit MetaEditor benötige, um die Codierung eines Expert Advisors abzuschließen.

Es gibt nur einen schnellsten Weg, etwas zu tun, nämlich es beim ersten Mal richtig zu machen.

Ja, das stimmt natürlich. Einverstanden.

Ich danke Ihnen

 
WhooDoo22:

Simon,

Ich glaube nicht, dass man einen funktionierenden EA erstellen kann, ohne die Grundlagen zu verstehen.

Ich verstehe zwar einige Grundlagen, aber nicht alle. Glauben Sie wirklich, dass das Verstehen aller Codierungsgrundlagen der einzige Weg zur Fertigstellung eines Expert Advisors ist?

Ich persönlich bin der festen Überzeugung, dass ich nur ein MetaEditor-Wörterbuch in Verbindung mit MetaEditor benötige, um die Programmierung eines Expert Advisors abzuschließen.

Ich denke, der Code, den Sie bis jetzt erstellt haben, beweist meinen Standpunkt deutlich. Man kann OrdersTotal() nicht als Teil einer Schleife verwenden, wenn man nicht weiß, dass die erste Position im Pool 0 ist. Dies ist nur ein Beispiel, es gibt viele, viele weitere Situationen, in denen man die Grundlagen kennen muss: Schleifen, bitweise Operatoren usw. usw.
 

Simon,

Ich habe geschrieben, dass ich einen Teil meiner Zeit für das Studium der Grundlagen der Kodierung verwenden werde, und das werde ich auch tun. Band II muss abgeschlossen werden. Ich werde mit dem Studium der Grundlagen beginnen, wobei ich zuerst meine Schwächen ausbessern und dann die bekannteren Grundlagen auffrischen werde, um sicherzustellen, dass ich die meisten Grundlagen der Kodierung verstehe.

Ich danke Ihnen.