Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 74

 
ilnur17021992:

gibt es eine Variable

int Level = 0;

Während das Programm läuft, ändert es sich ständig. Helfen Sie mir, eine Bedingung zu schreiben: Wenn sich der Pegel NICHT geändert hat, dann tun Sie nichts. Wenn sich der Pegel geändert hat (egal ob nach oben oder unten), dann führen Sie eine Aktion aus { operator }

eine andere Variable eingeben

int Level1 = 0;

int Level = 0;

wenn (Level !=Level1)

{};

und dann Level1 =Level

aber ich verstehe wirklich nicht, warum wir ein Array auf jedem Tick ziehen müssen, wenn wir es nach jeder Handelsoperation tun können

 
trader781:

eine andere Variable eingeben

int Level1 = 0;

int Level = 0;

wenn (Level !=Level1)

{};

und dann Level1 =Level

Ich verstehe nicht wirklich, warum ich bei jedem Tick ein Array abrufen muss, wenn ich es nach jeder Handelsoperation tun kann

      if(SELL_Lvl>0)
      {
         ObjectCreate("Sell no loss level", OBJ_HLINE, 0, 0, SELL_NoLossLevel);
      }          

Außerdem muss es passieren, wenn SELL_Lvl steigt:

         ObjectDelete( "Sell no loss level");

Da aber die BedingungSELL_Lvl>0 erfüllt ist, wird die Linie erneut gezeichnet, aber mit einem neuen Wert vonSELL_NoLossLevel. Gibt es eine einfachere und offensichtlichere Möglichkeit, die Linie in Abhängigkeit vonSELL_Lvl neu zu zeichnen?

 
ilnur17021992:
      if(SELL_Lvl>0)
      {
         ObjectCreate("Sell no loss level", OBJ_HLINE, 0, 0, SELL_NoLossLevel);
      }          

Dann muss ich SELL_Lvl erhöhen, um neu gezeichnet zu werden:

         ObjectDelete( "Sell no loss level");

Da aber die BedingungSELL_L_Lvl>0 erfüllt ist, sollte die Linie erneut gezeichnet werden, aber mit einem neuen Wert vonSELL_NoLossLevel. Gibt es eine einfachere und offensichtlichere Möglichkeit, die Linie in Abhängigkeit vom Wert vonSELL_Lvl neu zu zeichnen?

Übertragen Sie das Objekt auf den neuen Wert, ohne es zu löschen oder neu zu erstellen:

ObjectSetDouble(chart_ID, "Sell no loss level", OBJPROP_PRICE1, NewPrice);
 
Vitaly Muzichenko:

Übertragen Sie das Objekt auf den neuen Wert, ohne es zu löschen oder neu zu erstellen:

ObjectSetDouble(chart_ID, "Sell no loss level", OBJPROP_PRICE1, NewPrice);

Dies ist sicherlich eine Option, aber ich möchte, dass die Linie nach dem Wert vonSELL_NoLossLevel neu gezeichnet wird, je nachdem, ob sichSELL_Lvlgeändert hat

wie folgt if(ObjectGet("Sell no loss level", 1) !=SELL_NoLossLevel{ObjectDelete("Sell no loss level");}

Die Linie wird bei jedem Tick neu gezeichnet, während sie nur neu gezeichnet werden muss, wenn sichSELL_Lvl ändert.

 
ilnur17021992:

Natürlich ist es eine Variante, aber ich möchte, dass die Linie vonSELL_NoLossLevel neu gezeichnet wird, je nachdem ob sichSELL_Lvl geändert hat

wie folgt if(ObjectGet("Sell no loss level", 1) !=SELL_NoLossLevel{ObjectDelete("Sell no loss level");}

Die Linie wird bei jedem Tick neu gezeichnet, während sie nur neu gezeichnet werden soll, wenn sichSELL_Lvl ändert.

Erläutern Sie die Bedingung für die Neuziehung von Linien klar und deutlich, mit realen Preiswerten.

Für die hervorgehobene Zeile: Wie stark hat sie sich verändert? Was deutet darauf hin, dass sich SELL_Lvl geändert hat?

 
Jungs beraten Funktion für die Schließung schwebende Aufträge in mcl5 gibt es fünf Kauf-Limit Aufträge zu schließen, die niedrigste ein
 
TYRBO:
Ich möchte wissen, mit welcher Funktion ich eine Pending Order in MCL5 schließen kann.

Es ist besser, eine Schleife zu durchlaufen, die richtige zu bestimmen und durch Dokumentation

Ausstehende Bestellung löschen

Handelsauftrag zum Löschen eines schwebenden Auftrags. Es müssen 2 Felder angegeben werden:

  • Aktion
  • Bestellung
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexey Viktorov:

Es ist besser, sich durchzuarbeiten, die richtige Lösung zu finden und die Dokumentation zu befolgen.

Ich benötige ein unteres Auftragsticket, um es zu schließen. Ich weiß, wie ich den unteren Auftragspreis finde, und wäre Ihnen dankbar, wenn Sie mir sagen könnten, wie ich ein unteres Auftragsticket finde.
 
Alexey Viktorov:

Schreiben Sie die Bedingung für das Umzeichnen der Linien klar auf, mit realen Preiswerten, und dann werden Sie verstehen, was Sie tun müssen.

Auf der hervorgehobenen: um wie viel verändert? Was deutet darauf hin, dass sich SELL_Lvl geändert hat?

SELL_Lvl ist die Anzahl der Knies (Aufträge) des Verkaufsrasters.SELL_NoLossLevel ist das Gesamtniveau (Preis) dieser Aufträge. Die Idee ist die folgende: Wir brauchen eine Linie, die auf der Ebene einer Kauflinie gezeichnet wird und die jeweils neu gezeichnet wird, wenn neue Linien geöffnet werden. Ich weiß nicht, wie man das macht.
 
TYRBO:
Ich weiß, wie man den Preis für eine Mindestbestellung ermittelt. Ich wäre Ihnen dankbar, wenn Sie mir sagen könnten, wie man einen Mindestbestellschein ermittelt.

In der Dokumentation finden Sie ein Beispiel.

Es wäre wahrscheinlich besser, die Aufträge in der Schleife durchzugehen und, sofern der nächste Auftrag niedriger ist als der vorherige, diesen für die weitere Arbeit mit ihm auszuwählen. Wenn wir die Schleife verlassen, wird also der zu löschende Auftrag ausgewählt.

Oder Sie können zunächst seine Position in der Auftragsliste in der Schleife speichern und ihn nach dem Verlassen der Schleife über den gespeicherten Index auswählen.

Документация по MQL5: Торговые функции / OrderGetTicket
Документация по MQL5: Торговые функции / OrderGetTicket
  • www.mql5.com
Торговые функции / OrderGetTicket - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5