Der Typ int hat eine Größe von 4 Byte (32 Bit). Der Minimalwert ist -2 147 483 648, der Maximalwert ist 2 147 483 647.
MeiniBarShift will keinen Wert größer als 99999 angeben
Ich zeichne eine Trendlinie in den Chart, das folgende Skript ermittelt den Startzeitpunkt der Linie und gibt die Taktnummer dieses Zeitpunkts aus.
Wenn die Zeile irgendwann in der Historie zurückgeschoben wird, bleibt der Ausgabewert bei 99999 stehen, und wenn
boolexact=false// Modus
auf true ändern, wird -1 gedruckt und GetLastError = 0
voidOnStart()
{
int total = ObjectsTotal(0, 0, -1); // Общее кол-во объектов на: /текущий график/главное окно/все типы объектовdatetime time0 = 0; // Время соответствующее началу трендовой линииstring objname = ""; // Имя объекта (трендовой линии)int shift = 0; // Номер бара, соответствующего времени начала трендовой линии time0for(int i = total - 1; i >= 0; i--)
{
objname = (string)ObjectName(0, i, 0, OBJ_TREND);
time0 = ObjectGetInteger(0, objname, OBJPROP_TIME, 0);
shift = iBarShift(NULL, PERIOD_M1, time0, false);
Comment("shift: ", shift, " Error: ", GetLastError());
Sleep(2000);
}
}
Was ist los?
Ich habe versucht, verschiedene Charts von verschiedenen Brokern, die Zeit von der Linie ist richtig lesen, wenn ich PERIOD_M1 zu M5, zum Beispiel, dann muss ich weiter in der Geschichte zu erreichen 99999 bewegen
Целый тип char занимает в памяти 1 байт (8 бит) и позволяет выразить в двоичной системе счисления 2^8 значений=256. Тип char может содержать как положительные, так и отрицательные значения. Диапазон изменения значений составляет от -128 до 127. uchar # Целый тип uchar также занимает в памяти 1 байт, как и тип char, но в отличие от него, uchar...
Der Typ int hat eine Größe von 4 Byte (32 Bit). Der Minimalwert ist -2 147 483 648, der Maximalwert ist 2 147 483 647.
MeiniBarShift will keinen Wert größer als 99999 angeben
Ich zeichne eine Trendlinie in den Chart, das folgende Skript ermittelt den Startzeitpunkt der Linie und gibt die Taktnummer dieses Zeitpunkts aus.
Wenn die Zeile irgendwann in der Historie zurückgeschoben wird, bleibt der Ausgabewert bei 99999 stehen, und wenn
boolexact=false// Modus
auf true ändern, wird -1 gedruckt und GetLastError = 0
Was ist los?
Ich habe versucht, verschiedene Charts von verschiedenen Brokern, die Zeit von der Linie ist richtig zu lesen, wenn ich PERIOD_M1 zu M5, zum Beispiel, ich brauche, um weiter in der Geschichte zu erreichen 99999.
Überprüfen Sie zunächst die maximale Anzahl der Balken in den Terminaleinstellungen.
intOnInit()
{
//-создадим хэндл индикатораhandle=iAO(name,period);
//-если не удалось создать хэндлif(handle==INVALID_HANDLE)
{
...
return(INIT_FAILED);
}
Frage: Aus welchen Parametern wird die Nummer (Ziffern) eines Griffs ermittelt? Kann es nach einem Neustart des Terminals anders sein? Kann es nach einer Neuinitialisierung des Diagramms anders sein? In welchen Fällen kann sie sich ändern?
Frage: Aus welchen Parametern wird die Nummer (Ziffern) eines Griffs ermittelt? Kann es nach einem Neustart des Terminals anders sein? Kann es nach einer Neuinitialisierung des Diagramms anders sein? In welchen Fällen kann sie sich ändern?
Wenn es nur einen Indikator gibt, hat dieser immer einen Griff von 10. Jede aufeinanderfolgende ist gleich der vorhergehenden+1, und es hängt alles von der Reihenfolge ab, in der die Griffe erstellt wurden. Sie kann sich nur ändern, wenn bei einer der vorherigen ein Fehler auftritt.
Wenn Sie einen Indikator haben, hat dieser immer einen Griff von 10. Jeder nächste ist gleich dem vorherigen+1 und es hängt alles von der Reihenfolge ab, in der die Griffe erstellt wurden. Sie kann sich nur ändern, wenn bei einer der vorherigen ein Fehler auftritt.
Ich verstehe, das ist mehr oder weniger klar. Ich danke Ihnen!
Frage: Aus welchen Parametern wird die Nummer (Ziffern) eines Griffs ermittelt? Kann es nach einem Neustart des Terminals anders sein? Kann es nach einer Neuinitialisierung der Karte anders sein? In welchen Fällen kann sie sich ändern?
Предположим, что нам вдруг наскучил классический MQL5-доступ к индикаторам и захотелось сравнить скорость доступа в сравнении с альтернативными вариантами. Например, сравним его с доступом к индикаторам в стиле MQL4 без кэширования и с кэшированием. Идеи с доступом в MQL4-стиле были взяты из статьи LifeHack для трейдера: готовим фастфуд из...
Стандартная библиотека MQL5 написана на языке MQL5 и предназначена для облегчения написания программ (индикаторов, скриптов, экспертов) конечным пользователям. Библиотека обеспечивает удобный доступ к большинству внутренних функций MQL5.
Wenn ich einfach MyFun( &Mas[][] ) in der Kopfzeile angebe, erzeugt der Compiler einen Fehler beim Zugriff auf ein Array-Element Mas[j][k] im Funktionskörper... Aber wie?
Es scheint kein Problem mit eindimensionalen zu geben.
Wenn ich einfach MyFun( &Mas[][] ) in der Kopfzeile angebe, erzeugt der Compiler einen Fehler beim Zugriff auf ein Array-Element Mas[j][k] im Funktionskörper... Aber wie?
Bei eindimensionalen Arrays scheint es keine Probleme zu geben.
Die Dimensionen des zweiten und des nächsten Arrays können nicht dynamisch sein. Folglich muss MyFun(int &Mas[][7]) als Array deklariert werden, z. B. int Mas[][7]; so sollte es empfangen werden.
MQL5 iBarShift
Laut der mql5-Dokumentation gibt die Funktion iBarShift einen Wert vom Typ int zurück.
int#
Der Typ int hat eine Größe von 4 Byte (32 Bit). Der Minimalwert ist -2 147 483 648, der Maximalwert ist 2 147 483 647.
MeiniBarShift will keinen Wert größer als 99999 angeben
Ich zeichne eine Trendlinie in den Chart, das folgende Skript ermittelt den Startzeitpunkt der Linie und gibt die Taktnummer dieses Zeitpunkts aus.
Wenn die Zeile irgendwann in der Historie zurückgeschoben wird, bleibt der Ausgabewert bei 99999 stehen, und wenn
boolexact=false// Modus
auf true ändern, wird -1 gedruckt und GetLastError = 0
Was ist los?
Ich habe versucht, verschiedene Charts von verschiedenen Brokern, die Zeit von der Linie ist richtig lesen, wenn ich PERIOD_M1 zu M5, zum Beispiel, dann muss ich weiter in der Geschichte zu erreichen 99999 bewegen
MQL5 iBarShift
Laut der mql5-Dokumentation gibt die Funktion iBarShift einen Wert vom Typ int zurück.
int#
Der Typ int hat eine Größe von 4 Byte (32 Bit). Der Minimalwert ist -2 147 483 648, der Maximalwert ist 2 147 483 647.
MeiniBarShift will keinen Wert größer als 99999 angeben
Ich zeichne eine Trendlinie in den Chart, das folgende Skript ermittelt den Startzeitpunkt der Linie und gibt die Taktnummer dieses Zeitpunkts aus.
Wenn die Zeile irgendwann in der Historie zurückgeschoben wird, bleibt der Ausgabewert bei 99999 stehen, und wenn
boolexact=false// Modus
auf true ändern, wird -1 gedruckt und GetLastError = 0
Was ist los?
Ich habe versucht, verschiedene Charts von verschiedenen Brokern, die Zeit von der Linie ist richtig zu lesen, wenn ich PERIOD_M1 zu M5, zum Beispiel, ich brauche, um weiter in der Geschichte zu erreichen 99999.
Überprüfen Sie zunächst die maximale Anzahl der Balken in den Terminaleinstellungen.
Überprüfen Sie zunächst die maximale Anzahl der Balken in den Terminaleinstellungen.
Ich danke Ihnen!
Es waren 10000, ich habe es auf unbegrenzt geändert und es hat funktioniert.
Das ist allerdings nicht so offensichtlich...
Hilfe bei der Erstellung von Griffen
Die Sache ist die
Frage: Aus welchen Parametern wird die Nummer (Ziffern) eines Griffs ermittelt?
Kann es nach einem Neustart des Terminals anders sein?
Kann es nach einer Neuinitialisierung des Diagramms anders sein?
In welchen Fällen kann sie sich ändern?
Hilfe bei der Erstellung von Griffen
Die Sache ist die
Frage: Aus welchen Parametern wird die Nummer (Ziffern) eines Griffs ermittelt?
Kann es nach einem Neustart des Terminals anders sein?
Kann es nach einer Neuinitialisierung des Diagramms anders sein?
In welchen Fällen kann sie sich ändern?
Wenn es nur einen Indikator gibt, hat dieser immer einen Griff von 10. Jede aufeinanderfolgende ist gleich der vorhergehenden+1, und es hängt alles von der Reihenfolge ab, in der die Griffe erstellt wurden. Sie kann sich nur ändern, wenn bei einer der vorherigen ein Fehler auftritt.
Wenn Sie einen Indikator haben, hat dieser immer einen Griff von 10. Jeder nächste ist gleich dem vorherigen+1 und es hängt alles von der Reihenfolge ab, in der die Griffe erstellt wurden. Sie kann sich nur ändern, wenn bei einer der vorherigen ein Fehler auftritt.
Ich verstehe, das ist mehr oder weniger klar. Ich danke Ihnen!
Hilfe bei der Erstellung von Griffen
Es gibt so etwas wie das hier
Frage: Aus welchen Parametern wird die Nummer (Ziffern) eines Griffs ermittelt?
Kann es nach einem Neustart des Terminals anders sein?
Kann es nach einer Neuinitialisierung der Karte anders sein?
In welchen Fällen kann sie sich ändern?
Gefundene Antworten
Bitte teilen Sie mir mit, wie ich ein mehrdimensionales Array korrekt an eine Funktion übergeben kann.
Wenn ich einfach MyFun( &Mas[][] ) in der Kopfzeile angebe, erzeugt der Compiler einen Fehler beim Zugriff auf ein Array-Element Mas[j][k] im Funktionskörper... Aber wie?
Es scheint kein Problem mit eindimensionalen zu geben.
Bitte teilen Sie mir mit, wie ich ein mehrdimensionales Array korrekt an eine Funktion übergeben kann.
Wenn ich einfach MyFun( &Mas[][] ) in der Kopfzeile angebe, erzeugt der Compiler einen Fehler beim Zugriff auf ein Array-Element Mas[j][k] im Funktionskörper... Aber wie?
Bei eindimensionalen Arrays scheint es keine Probleme zu geben.
Die Dimensionen des zweiten und des nächsten Arrays können nicht dynamisch sein. Folglich muss MyFun(int &Mas[][7]) als Array deklariert werden, z. B. int Mas[][7]; so sollte es empfangen werden.