expert advisor - verschiedene Fragen - Seite 22

 
Marco vd Heijden:

Bitte benutzen Sie den Styler unter der Registerkarte Tools.
Ich habe keine Ahnung, was Sie erreichen wollen, also muss ich raten, was Sie tun wollen, was nie gut ist.
Aber Sie können sich das Beispiel hier ansehen:
Sie können also sehen, dass Sie ObjectGetDouble direkt verwenden können, es gibt keine Notwendigkeit, den Wert in ein anderes Double zu kopieren, weil das Objekt selbst den Wert hält, und wenn Sie die Zeile ziehen, ändert sich der Wert automatisch, und wird beim nächsten Mal gesehen, wenn Sie es lesen.

Zunächst einmal vielen Dank für Ihre Kommentare, die mir den richtigen Weg zeigen.
Ich habe einen großenFehler gemacht, denn ich habe es in der Datei Test.mq4 versucht. Seitdem ich angefangen habe, es mit der Haupt-MQ4-Datei zu versuchen. Ich bekomme den richtigen Weg. Beide Dateien sind für mich sehr unterschiedlich.

Ja, nachdem ich mehrere Male Ihre Beispiele ausprobiert habe, konnte ich mein Ziel in dieser Angelegenheit erreichen. Aber ich habe herausgefunden, dass ich nur OnChartEvent() für " HLine " (und einige grafische) Objekt-Erstellungen verwenden sollte.
Und dann sollte ich nur OrderModify() für Take Profit Modifikation verwenden, die Take Profit Modifikation sollte dem " HLine " Objekt folgen. ( Erstens: " HLine " erhält den aktuellen Take Profit Preis und Zweitens: Take Profit folgt dem " HLine " Objekt - und OrderModify() sollte nicht aktualisiert werden, während ich das " HLine " Objekt ziehe )
Und jetzt habe ich zuerst angefangen, über OrderModify() zu recherchieren.

Ich glaube, ich könnte Ihr Beispiel noch einmal überprüfen. Ich hoffe, ich schaffe es.

Vielen Dank für all Ihre Hilfe , Mr. Marco.

 

Mr. Marco noch einmal vielen Dank für alles.

So, gerade ist die OM Funktion fertig ( Orders Modification )
Ich habe einige Probleme in meiner OM Funktion gesehen, die ich selbst gelöst habe.
Aber ständig sehe ich, dass die OM Funktion einige Updates braucht, weil ich versuche, die OM Funktion mit Take Profit Modifikationen zu testen.

Deshalb möchte ich erwähnen, dass ich immer noch neue Probleme habe (jetzt ist der Markt geschlossen).

#1 Welchen Teil des Codes kann ich beibehalten?
Ich habe bereits beide unten aufgeführten Teile des Codes ausprobiert. Aber ich habe keinen Unterschied zwischen ihnen gesehen. Es sieht so aus, als ob beide Teile für mich gut laufen.

// I learned this Calculation from thread of @Simon's
for ( i = OrdersTotal() - 1; i >= 0; i-- ){}

// This is from yours Mr. Marco
for ( i = OrdersTotal(); i >= 0; i-- ){}

#2 Ist das falsch?
Ich benutze 7x mal den untenstehenden Teil des Codes in meinem EA-Skript. Nur 2x für die Berechnung der Sell und Buy Funktionen. Und 2x Close von ihnen. Ich rufe sie durch die OnChartEvent() und OnTick()

for ( i = OrdersTotal() - 1; i >= 0; i-- )
  {
   if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
   if(closeothers==false && OrderSymbol()!=Symbol()) continue;
//...
  }



Ich habe auch andere Probleme, aber ich arbeite an ihnen, um sie selbst zu lösen.

Vielen Dank im Voraus.

 

Die Nummerierung beginnt bei 0 und nicht bei 1.

Angenommen, Sie haben 3 Aufträge. Diese sind:

  • 0
  • 1
  • 2

Sie sollten dies also verwenden:

for ( i = OrdersTotal() - 1; i >= 0; i-- ){}

Wenn Sie das nicht tun, ist es keine Katastrophe; der OrderSelect wird beim ersten Durchlauf (i==3) fehlschlagen und zur nächsten Iteration übergehen.

Sorry, ich verstehe Ihre 2. Frage nicht.

 

Zur zweiten Frage.

Ich neige normalerweise dazu, alles in eine Schleife zu packen, aber man kann natürlich auch mehrere verwenden.

 
honest_knave:

Wenn Sie das nicht tun, ist es keine Katastrophe; der OrderSelect wird beim ersten Durchlauf (i==3) fehlschlagen und zur nächsten Iteration übergehen.

Marco vd Heijden:

Ich neige normalerweise dazu, alles in eine Schleife zu packen, aber man kann natürlich auch mehrere verwenden.

Ich danke Ihnen für Ihre Kommentare. Ich weiß das sehr zu schätzen!

 

Ich habe schon ein paar Stunden damit verbracht, herauszufinden, woher das kommt?!
F: Bitte lassen Sie mich wissen, was das ist? (Ich füge eine Bilddatei bei)

Ich verwende Ihr sehr nützliches Beispiel "Stealth 4.mq4" für das Ziehen von Stop Loss und Take Profit, was bis zum letzten Freitag perfekt funktionierte.
Jetzt ist der Markt geschlossen und ich sehe diese Meldungen im Journal-Fenster. Wenn ich die OrderModify()-Codeblöcke entferne, hören die Meldungen auf.

Ich wünsche Ihnen ein schönes Wochenende.

Dateien:
 

Nun können Sie eine Bestellung ändern, wenn Märkte geschlossen, so dass Arten logisch...

Es würde ein bisschen mehr Code benötigen, um es zu stoppen.

 

Max Enrik: Wenn ich OrderModify() Codeblöcke entferne, hört die Meldung auf.
  1. Deshalb empfehle ich
    Handeln Sie nicht mehrere Währungen in einem EA
  2. Wenn Sie nur ein Paar/Chart in OnTick handeln würden, hätten Sie das Problem nicht.
 

Es ist durchaus möglich, alle Währungen in einem EA zu handeln.

 
Marco vd Heijden: Es ist durchaus möglich, alle Währungen in einem EA zu handeln.
Ich habe nie gesagt, dass es nicht möglich ist. Ich habe nur gesagt, dass ich es wegen der vielen Probleme nicht empfehle. Ein Paar/Diagramm vereinfacht alles. Machen Sie die Dinge nicht schwieriger als nötig.
Grund der Beschwerde: