Hallo!!! Können Sie mir sagen, wie ich einen Enum-Datentyp an Klassenmethoden übergeben kann? Nehmen wir an, ich möchte einen Zeitrahmen übergeben. Ich erstelle ein Enum in der Kopfzeile eines Beraters
public:
Signal_Line();
~Signal_Line();
double Time_Frame(double &Trend_Line_Down[][], int Frame, int Down);
int Short_Proboy(double &Trend_Line_Down[][], string Name_Static, int Down, ENUM_TIMEFRAMES);
Und beim Aufrufen einer Methode aus einem EA, wenn ich den dritten Wert aus der Aufzählung übergeben müssen - Frame - PERIOD_M30, was sollte ich in den Code Fragen unten schreiben?
Trend_Line_Down[Timer_Down][1]=Signal.Short_Proboy(Trend_Line_Down, Name_Static, ???); // Флаг пробоя трендовой нулевой свечой
Kira27: Hallo!!! Können Sie mir sagen, wie man Aufzählung Datentyp in Klasse Methoden übergeben? Nehmen wir an, ich möchte einen Zeitrahmen übergeben. Ich erstellen in der Kopfzeile des EA der Aufzählung Dann deklariere ich Methode in der Klasse. Und beim Aufrufen einer Methode von einem EA, wenn ich den dritten Wert aus der Aufzählung übergeben müssen - Frame - PERIOD_M30, was sollte ich in den Code Fragen unten schreiben?
Frage 1: Warum sollte man eine eigene Aufzählung erstellen, wenn es die StandardaufzählungENUM_TIMEFRAMES gibt?
Für welche Kontraktgröße (Losgröße) wird dieser Wert berechnet?
Für das Währungspaar EURUSD beispielsweise liefert dieses Skript die gleichen Werte, aber für Metalle beträgt der Unterschied das Zehnfache. Wie, warum, und woher weiß ich das?
intOnStart()
{
//---// цена тика для символаdouble symb_tick_price = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE);
// рассчитаная цена символа (для Forex, CFD - формула из справки)// Profit = (close_price - open_price) * Contract_Size * Lots// т.е. берем размер тика и считаем по этой формуле// -> TickPrice = TickSize * Contract_Size * Lotsdouble symb_lot_size = 1.0;
double symb_tick_size = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE);
double symb_contract_size = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_CONTRACT_SIZE);
double calc_symb_tick_price = symb_tick_size * symb_contract_size * symb_lot_size;
PrintFormat("Цена тика SYMBOL_TRADE_TICK_VALUE=%f, Цена тика ВЫЧИСЛЕННАЯ=%f", symb_tick_price, calc_symb_tick_price);
//---return(INIT_SUCCEEDED);
}
... und einen Monat später werden Sie versuchen zu verstehen, was es bedeutet ))))
Wenn Sie einen solchen Code schreiben wollen, dann schreiben Sie ihn wenigstens in int
damit Sie zumindest verstehen können, was der Autor als Ergebnis erhält
...Obwohl es eine Perversion ist ))))
Warum sollte man sie in int umwandeln? Denn in mql5, beginnend mit H1, ist der Aufzählungswert nicht gleich der Anzahl der Minuten. Im Gegenteil, ich glaube, es wird viel Verwirrung stiften.
Warum in int konvertieren? Denn in mql5, beginnend mit H1, ist der Aufzählungswert nicht gleich der Anzahl der Minuten. Meiner Meinung nach wird dies im Gegenteil zu großer Verwirrung führen.
Weil enum eine benannte 4-Byte-Konstante ist = int
Frage 1: Warum sollte man eine eigene Aufzählung erstellen, wenn es den StandardENUM_TIMEFRAMES gibt?
Antwort)) Zeichnen eines grafischen Objekts in den Namen des Objekts gibt es eine Teilzeichenkette M30 sagen, wo dieses Objekt erstellt wurde, und beim Schreiben der Objektdaten zu Array double, mit der Aufteilung des Namens in Teilzeichenketten, vergleiche ich den 0-Index des Arrays mit einem gebrochenen Namen, durch Brute-Force-Aufzählung mit einem Array
Ich schreibe den Wert in das Array double, in dem die Eigenschaften der Diagrammobjekte gespeichert werden. Um die Breakdown-, Fixing- und Test-Linie zu verfolgen, verwende ich dann eine Methode, bei der ich den Parameter timeframe aus dem geschriebenen Array double übergebe; da die Linien in verschiedenen Zeitrahmen erstellt werden, sollten die Breakdown-Berechnung, das Fixing und der Test entsprechend dem Zeitrahmen der erstellten Objekte berechnet werden, unabhängig davon, welche Periode gerade auf dem Diagramm zu sehen ist. Ich habe geplant, den Wert des Arrays zu verknüpfen
TimeFrame
in das Array der Merkmale der grafischen Objekte geschrieben, die mit dem Index aus dem Array gezogen werden sollen
weil enum eine benannte 4-Byte-Konstante ist = int
nicht die Anzahl der Minuten.
Und? Haben sie etwas anderes in der ENUM_TIMEFRAMES-Enum? Oder haben Sie Angst , dass Ihnen der Speicherplatz ausge ht? Ich weiß nicht, wie man so etwas macht...
ps; Ach wie langsam ich tippe...)))) Während ich eine einzige Zeile tippte, tippte Kira27 eine Menge......... und etwas, von dem ich vermute, dass es in mql4 verwendet werden wird.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Erlauben Sie die Verwendung von Cookies, um sich auf der Website MQL5.com anzumelden.
Bitte aktivieren Sie die notwendige Einstellung in Ihrem Browser, da Sie sich sonst nicht einloggen können.
Sie sind angemeldet. Die Zwei-Faktor-Authentifizierung wurde deaktiviert. Richten Sie sie erneut ein und scannen Sie einen neuen QR-Code oder fahren Sie mit deaktivierter Zwei-Faktor-Authentifizierung fort.
Dann deklariere ich eine Methode in einer Klasse.
Und beim Aufrufen einer Methode aus einem EA, wenn ich den dritten Wert aus der Aufzählung übergeben müssen - Frame - PERIOD_M30, was sollte ich in den Code Fragen unten schreiben?
Aber beim Kompilieren wird ein Fehler geschrieben. Wo könnte der Haken sein?
Hallo!!! Können Sie mir sagen, wie man Aufzählung Datentyp in Klasse Methoden übergeben? Nehmen wir an, ich möchte einen Zeitrahmen übergeben. Ich erstellen in der Kopfzeile des EA der Aufzählung
Dann deklariere ich Methode in der Klasse.
Und beim Aufrufen einer Methode von einem EA, wenn ich den dritten Wert aus der Aufzählung übergeben müssen - Frame - PERIOD_M30, was sollte ich in den Code Fragen unten schreiben?
Frage 1: Warum sollte man eine eigene Aufzählung erstellen, wenn es die StandardaufzählungENUM_TIMEFRAMES gibt?
Frage nach den Kosten für eine Zecke.
Für welche Kontraktgröße (Losgröße) wird dieser Wert berechnet?
Für das Währungspaar EURUSD beispielsweise liefert dieses Skript die gleichen Werte, aber für Metalle beträgt der Unterschied das Zehnfache. Wie, warum, und woher weiß ich das?
Wenn man darüber nachdenkt, scheint es eine Aufforderung zu sein, zu schreiben
Aber beim Kompilieren wird ein Fehler geschrieben. Wo könnte der Haken sein?
Wenn Sie diese Aufzählung vornehmen
dann könnten Sie versuchen, es so zu schreiben
Wenn Sie diese Aufzählung vornehmen
Sie könnten versuchen, es so zu schreiben
... und in einem Monat werden Sie versuchen zu verstehen, was es bedeutet ))))
Wenn Sie einen solchen Code schreiben müssen, dann schreiben Sie ihn wenigstens in int
damit Sie zumindest verstehen können, was der Autor als Ergebnis erhält
...Obwohl es eine Perversion ist ))))
... und einen Monat später werden Sie versuchen zu verstehen, was es bedeutet ))))
Wenn Sie einen solchen Code schreiben wollen, dann schreiben Sie ihn wenigstens in int
damit Sie zumindest verstehen können, was der Autor als Ergebnis erhält
...Obwohl es eine Perversion ist ))))
Warum sollte man sie in int umwandeln? Denn in mql5, beginnend mit H1, ist der Aufzählungswert nicht gleich der Anzahl der Minuten. Im Gegenteil, ich glaube, es wird viel Verwirrung stiften.
Warum in int konvertieren? Denn in mql5, beginnend mit H1, ist der Aufzählungswert nicht gleich der Anzahl der Minuten. Meiner Meinung nach wird dies im Gegenteil zu großer Verwirrung führen.
Weil enum eine benannte 4-Byte-Konstante ist = int
nicht die Anzahl der Minuten
Frage 1: Warum sollte man eine eigene Aufzählung erstellen, wenn es den StandardENUM_TIMEFRAMES gibt?
Antwort)) Zeichnen eines grafischen Objekts in den Namen des Objekts gibt es eine Teilzeichenkette M30 sagen, wo dieses Objekt erstellt wurde, und beim Schreiben der Objektdaten zu Array double, mit der Aufteilung des Namens in Teilzeichenketten, vergleiche ich den 0-Index des Arrays mit einem gebrochenen Namen, durch Brute-Force-Aufzählung mit einem Array
Suche nach dem Index der gleichen Zeichenfolge im Array
den Index mit dem int-Array verknüpfen
Ich schreibe den Wert in das Array double, in dem die Eigenschaften der Diagrammobjekte gespeichert werden. Um die Breakdown-, Fixing- und Test-Linie zu verfolgen, verwende ich dann eine Methode, bei der ich den Parameter timeframe aus dem geschriebenen Array double übergebe; da die Linien in verschiedenen Zeitrahmen erstellt werden, sollten die Breakdown-Berechnung, das Fixing und der Test entsprechend dem Zeitrahmen der erstellten Objekte berechnet werden, unabhängig davon, welche Periode gerade auf dem Diagramm zu sehen ist. Ich habe geplant, den Wert des Arrays zu verknüpfen
in das Array der Merkmale der grafischen Objekte geschrieben, die mit dem Index aus dem Array gezogen werden sollen
und Übertragung auf die Methode der Aufschlüsselung, Verankerung und Testberechnung.weil enum eine benannte 4-Byte-Konstante ist = int
nicht die Anzahl der Minuten.
Und? Haben sie etwas anderes in der ENUM_TIMEFRAMES-Enum? Oder haben Sie Angst , dass Ihnen der Speicherplatz ausge ht? Ich weiß nicht, wie man so etwas macht...
ps; Ach wie langsam ich tippe...)))) Während ich eine einzige Zeile tippte, tippte Kira27 eine Menge......... und etwas, von dem ich vermute, dass es in mql4 verwendet werden wird.