Fragen von einem "Dummy" - Seite 141

 
Yedelkin:

Das Problem scheint ein anderes zu sein.

Der Wert "3" wird auf keinen Fall zurückgegeben :) Schließlich werden die Aufzählungen von Null an durchnummeriert.

Verwenden Sie die Funktion EnumToString zur Ausgabe von Aufzählungswerten
 
In MQL5 werden Werte von Perioden des Typs PERIOD_M1 ... PERIOD_MN1 sind Werte vom Typ Ganzzahl? Ich möchte sie mit dem Switch-Operator vergleichen. Z.B. wenn der Ausdruck richtig ist:
input ENUM_TIMEFRAMES Period_code=PERIOD_H4;
int result; string big;

switch (Period_code)
{
case PERIOD_H4: { result=1; big="data 1"; break; }
case PERIOD_D1: { result=2; big="data 2"; break; }
}
 

Rosh:

Yedelkin:

Das Problem scheint woanders zu liegen.

Der Wert "3" wird auf keinen Fall zurückgegeben :) Denn Aufzählungen werden von Null an nummeriert.

Verwenden Sie die Funktion EnumToString zur Ausgabe von Aufzählungswerten

Das Seltsame ist, dass dieser Vorschlag nicht schon früher aufkam, als der Autor des lokalen Themas seine Ergebnisse als"Returns 3" angab. OK, gehen wir den Weg des Ungeschlagenen weiter.

T-G:

Gibt 3 zurück, d. h. SYMBOL_TRADE_EXECUTION_MARKET.

Dem Rat von Roche folgend, schreiben wir eine einfache Prüfung (mit EnumToString):

//+------------------------------------------------------------------+
//|                                                       class5.mq5 |
//+------------------------------------------------------------------+
void OnStart()
  {
   Print("EnumToString(ENUM_SYMBOL_TRADE_EXECUTION(3))=",EnumToString(ENUM_SYMBOL_TRADE_EXECUTION(3)));
  }
//+------------------------------------------------------------------+

Und was sehen wir? - Wir sehen, dass die Zahl "3" nicht dem SYMBOL_TRADE_EXECUTION_MARKET entspricht. Wir kehren also zu https://www.mql5.com/ru/forum/3775/page143#comment_192116 zurück.

 
Paladin80:
In MQL5 werden Werte von Perioden des Typs PERIOD_M1 ... PERIOD_MN1 sind Werte vom Typ Ganzzahl? Ich möchte sie mit dem Switch-Operator vergleichen. Ein Beispiel dafür ist der Ausdruck:
ENUM_TIMEFRAMES ist ein Enum(MQL5-Referenz / Statusprüfung / Zeitraum). Aufzählungen ist ein Integer-Datentyp(MQL5-Referenz / Sprachgrundlagen / Datentypen / Integer-Typen / Aufzählungen ).
 
Hallo, können Sie mir sagen, wie ich überprüfen kann, ob ein Kauf oder Verkauf heute für ein bestimmtes Instrument abgeschlossen wurde?
 
T-G:
Hallo, können Sie mir sagen, wie ich überprüfen kann, ob Kauf und Verkauf für ein bestimmtes Instrument heute geschlossen wurden?

Wenn niemand den fertigen Code zur Verfügung stellt, dann versuchen Sie, ihn selbst zu schreiben. Der einfachste Ansatz ist wahrscheinlich folgender: Wählen Sie die Historie der Geschäfte für einen bestimmten Tag(HistorySelect) und versuchen Sie, die Historie nach Geschäften zu durchsuchen, die sich auf das ausgewählte Symbol beziehen

DEAL_SYMBOL

Name des Symbols, für das das Geschäft getätigt wurde

String

dann prüfen

DEAL_TIME

Deal-Zeit

datetime

и

DEAL_ENTRY_OUT

Marktaustritt

Wenn es im Laufe des Tages mehrere Schlusspositionen für ein Symbol gab, können Sie auch den Zeitpunkt jedes Abschlusses ermitteln und ihn nach dem Algorithmus des Autors verarbeiten.

 
Yedelkin:

Seltsam ist, dass dieser Vorschlag nicht früher gemacht wurde, als der Autor des lokalen Themas seine Ergebnisse als"Returns 3" angab. OK, gehen wir den Weg des Ungeschlagenen weiter.

Dem Rat von Roche folgend, schreiben wir eine einfache Prüfung (mit EnumToString):

//+------------------------------------------------------------------+
//|                                                       class5.mq5 |
//+------------------------------------------------------------------+
void OnStart()
  {
   Print("EnumToString(ENUM_SYMBOL_TRADE_EXECUTION(3))=",EnumToString(ENUM_SYMBOL_TRADE_EXECUTION(3)));
  }
//+------------------------------------------------------------------+

Und was sehen wir? - Wir sehen, dass die Zahl "3" in keiner Weise mit SYMBOL_TRADE_EXECUTION_MARKET übereinstimmt. Wir gehen also zurück zu https://www.mql5.com/ru/forum/3775/page143#comment_192116.

Wie wäre es damit? :)

Print("SYMBOL_TRADE_EXECUTION_MARKET=",SYMBOL_TRADE_EXECUTION_MARKET);
Print("EnumToString(ENUM_SYMBOL_TRADE_EXECUTION(2))=",EnumToString(ENUM_SYMBOL_TRADE_EXECUTION(2)));
T-G:

Gibt 3 zurück - das ist SYMBOL_TRADE_EXECUTION_MARKET

3 ist logisch SYMBOL_TRADE_EXECUTION_EXCHANGE.

Sagen Sie uns lieber, was und wo wir zu handeln versuchen... :)

 
Interesting:

Wie wäre es damit? :)

Print("SYMBOL_TRADE_EXECUTION_MARKET=",SYMBOL_TRADE_EXECUTION_MARKET);
Print("EnumToString(ENUM_SYMBOL_TRADE_EXECUTION(2))=",EnumToString(ENUM_SYMBOL_TRADE_EXECUTION(2)));

Nun, das ist dasselbe. Nur aus einem anderen Blickwinkel. Die Zahl "3" und der Wert der Aufzählung"SYMBOL_TRADE_EXECUTION_MARKET" stehen in keinem Zusammenhang. Außer vielleicht durch die Vorrangrelation.

Interessant:

3 ist logisch SYMBOL_TRADE_EXECUTION_EXCHANGE.

Das ist zwar nicht "logisch", aber so ist es nun einmal im Moment.

 
Yedelkin:

Nun, das ist dasselbe. Nur aus einem anderen Blickwinkel. Die Zahl "3" und der Wert der Aufzählung"SYMBOL_TRADE_EXECUTION_MARKET" sind in keiner Weisemiteinander verbunden. Der einzige Unterschied besteht in der Rangfolge.

Das ist zwar nicht "logisch", aber so ist es nun einmal im Moment.

Nun, es macht Sinn, dass wir eine Börsenausführung haben(SYMBOL_TRADE_EXECUTION_EXCHANGE) und folglich keine TP/SL
 
Interesting:
Es macht also Sinn, wir haben eine Börsenausführung(SYMBOL_TRADE_EXECUTION_EXCHANGE) und daher keine TP/SL
Ich finde mich nicht zurecht: Wo im Referenzhandbuch steht, dass ein Ersuchen um Ausführung eines Austauschs keine TP/SL enthalten darf?
Grund der Beschwerde: