Ich habe es die ganze Zeit hängen, bis ich es selbst entladen, wenn ich den Screenshot nahm, mit MT5 wurde am Samstagmorgen beendet, wenn der Markt in meiner Zeitzone geschlossen, am Sonntag setzte ich mich zu spielen und begann zu töten Prozesse.
Wahrscheinlich liegt das Problem auf meiner Seite, obwohl die Lizenz vor einem Monat neu installiert wurde.
Machen Sie eine Probe des "hängenden" Mittels. Schauen wir uns das mal an.
Liebe Entwickler, bitte fügen Sie die Möglichkeit hinzu, Skripte von anderen Skripten und Diensten im synchronen Modus auszuführen.
Ich danke Ihnen im Voraus.
Ich unterstütze, es ist nicht bequem, mit großen Dateien von EA aus einigen Gründen zu arbeiten, ich benutze Skripte, die Dutzende parallel laufen müssen, um alle Kerne zu laden und die Berechnung zu beschleunigen.
Guten Tag. Bitte um Rat, ich kann eine CSV-Datei nicht über Navigator ME in die Datenbank importieren. Er sagt: Fehler beim Importieren der Datenbank. Ich habe alle CSV-Optionen ausprobiert. Ist es jemandem gelungen, dies zu tun, oder ist dies ein Fehler? Version: 5.0 build 27.15.
Sie sollten die Dokumentation verstehen, nicht ich. Ich habe vorgeschlagen, nach der Liste der Aufträge oder Positionen zu sortieren. Und auch in einem der Themen sagte Slava, dass es ausreicht, das Objekt auszublenden und wieder einzublenden, so dass es über allen anderen steht und das Ereignis "Rattenklick" zuerst erhält. Falls falsch, tut es mir leid. Finde heraus, wie die Liste sortiert ist und sage es allen. Ich werde auch meine Meinung ändern.
Nach langen Kämpfen und Experimenten, glaube ich, dass es einen Fehler in MQL5 mit der Sortierung von Objekten in der Liste der Objekte gibt. Da ich diesen Code in MQL4 ohne besondere Hoffnung auf eine korrekte Verarbeitung ausprobiert habe, habe ich entdeckt, dass 4 sequentiell erstellte Fibo-Ebenen eine korrekte Nummerierung in der Objektliste haben: 0.1.2.3. Die erste ==0, die zweite ==1, usw.., In MQL5 haben jedoch 4 aufeinanderfolgende Symbole, die nacheinander erstellt wurden, eine Nummerierung von oben, und nur wenn ich ihre Namen ändere, reihen sie sich in der Reihenfolge der Namensänderung auf. Überprüfen Sie es selbst, vielleicht funktioniert das Terminal nicht richtig, obwohl ich es auf 3 Computern versucht habe ((((.
//+------------------------------------------------------------------+//| F.mq5 |//| Copyright 2020, MetaQuotes Software Corp. |//| https://www.mql5.com |//+------------------------------------------------------------------+#property copyright"Copyright 2020, MetaQuotes Software Corp."#property link"https://www.mql5.com"#property version"1.00"//+------------------------------------------------------------------+//| Fibo_Massiv.mq5 |//| Copyright 2020, MetaQuotes Software Corp. |//| https://www.mql5.com |//+------------------------------------------------------------------+string NameFiboUp[15]; // Объявление массиваstring NameFiboDown[15]; // Объявление массиваstring NameFibo[9]; // Объявление массива//+------------------------------------------------------------------+intOnInit()
{
//---
NameFiboUp[1]="FiboUp1 ";
NameFiboDown[1]="FiboDown1 ";
NameFiboUp[2]="FiboUp2 ";
NameFiboDown[2]="FiboDown2";
NameFiboUp[3]="FiboUp3";
NameFiboDown[3]="FiboDown3 ";
NameFiboUp[4]="FiboUp4 ";
NameFiboDown[4]="FiboDown4 ";
NameFiboUp[5]="FiboUp5";
NameFiboDown[5]="FiboDown5 ";
NameFiboUp[6]="FiboUp6 ";
NameFiboDown[6]="FiboDown6 ";
NameFiboUp[7]="FiboUp7 ";
NameFiboDown[7]="FiboDown7 ";
NameFiboUp[8]="FiboUp8 ";
NameFiboDown[8]="FiboDown8 ";
NameFiboUp[9]="FiboUp9 ";
NameFiboDown[9]="FiboDown9 ";
NameFiboUp[10]="FiboUp10 ";
NameFiboDown[10]="FiboDown10";
NameFiboUp[11]="FiboUp11 ";
NameFiboDown[11]="FiboDown11 ";
NameFiboUp[12]="FiboUp12 ";
NameFiboDown[12]="FiboDown12 ";
NameFiboUp[13]="FiboUp13 ";
NameFiboDown[13]="FiboDown13";
NameFiboUp[14]="FiboUp14 ";
NameFiboDown[14]= "FiboDown14";
//---------------------------------------------
NameFibo[1]="M1";
NameFibo[2]="M5";
NameFibo[3]="M15";
NameFibo[4]="H1";
NameFibo[5]="H4";
NameFibo[6]="Da";
NameFibo[7]="We";
NameFibo[8]="Mo";
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
//---
}
//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+voidOnTick()
{
int UP=1;
int Down=1;
string nameUP = "FiboUp";
string nameDown = "FiboDown";
double FiboDown[4][10],FiboUp[4][10]; // 2x мерный массив// Alert("ArraySize(FiboDown)= ", ArraySize(FiboDown));int Fibo_Koll = ObjectsTotal(0,0,OBJ_FIBO); //Запрос колличества объектов Fibo//_________________________________________________________if(Fibo_Koll==0) //Если нет не одного фибо выход //return; ////_________________________________________________________//int Koll[]; //Индексация и запись в массив по порядку появления фибо в окне инструментовint Tip[]; //Запись типа Fibo в массив по порядку появления фибо в окне инструментовArrayResize(Koll,Fibo_Koll); // Устанавливает новый размер в первом измерении массива Koll []ArrayResize(Tip,Fibo_Koll); // Устанавливает новый размер в первом измерении массива Tip []for(int i=0; i < Fibo_Koll; i++)
{
string n=ObjectName(0,0,0,OBJ_FIBO);
//--------------------------------------------------------//----------------------------------------------------------------------------------------double Fibo_Level_0= ObjectGetDouble(
0, // идентификатор графика
n, // имя объектаOBJPROP_PRICE, // идентификатор свойства0// модификатор свойства
);
double Fibo_Level_1= ObjectGetDouble(
0, // идентификатор графика
n, // имя объектаOBJPROP_PRICE, // идентификатор свойства1// модификатор свойства
);
//------------------------------------------------------------------------------------------------------if(Fibo_Level_0>Fibo_Level_1)
{
//вызов функции расчёта уровня 78.6double Fibo_78_Up = Function_Up(Fibo_Level_0, Fibo_Level_1);
//Изменение имени объекта/* bool l = StringSetLength( //Устанавливает для строки указанную длину в символах 2
n, // строка
2 // новая длина строки
);
//-----------------------------------------------------------
int N = 1;
string q;
for(int e = 1; N != 0; e++) // пока N не == 0, гоняем функцию StringCompare. сравнивая обрезанную переменную(StringSetLength) с массивом NameFibo[]
{
N= StringCompare(
n, // первая сравниваемая строка
NameFibo[e], // вторая сравниваемая строка
true // режим учета регистра букв при сравнении
);
q= NameFibo[e];
}
n= q+NameFiboUp[1];*///--------------------------------------------------------------------
FiboUp[UP][1]=1; // Тип обектов 1 == FiboUp
FiboUp[UP][2]=UP; // Нумерация обектов FiboUp по типу
FiboUp[UP][3]=Fibo_78_Up; // 78.6%
FiboUp[UP][4]=0; // 61.8%
FiboUp[UP][5]=0; // 50%//----------------------------------------------------------------------------------------------------------bool F =ObjectSetString(0,n,OBJPROP_NAME,NameFiboUp[UP]);
UP++;
}
//----------------------------------------------------------------------------------else
{
//вызов функции расчёта уровня 78.6double Fibo_78_Down = Function_Down(Fibo_Level_0, Fibo_Level_1);
//Изменение имени объекта/* bool l = StringSetLength( //Устанавливает для строки указанную длину в символах 2
n, // строка
2 // новая длина строки
);
//-----------------------------------------------------------
int N = 1;
string q;
for(int e = 1; N != 0; e++) // пока N не == 0, гоняем функцию StringCompare. сравнивая обрезанную переменную(StringSetLength) с массивом NameFibo[]
{
N= StringCompare(
n, // первая сравниваемая строка
NameFibo[e], // вторая сравниваемая строка
true // режим учета регистра букв при сравнении
);
q= NameFibo[e];
}
n= q+NameFiboUp[1];*///-------------------------------------------------------------------
FiboDown[Down][1]=2; // // Тип обектов 2 == FiboDown
FiboDown[Down][2]=Down; // Нумерация обектов по типу
FiboDown[Down][3]=Fibo_78_Down; // 78.6%
FiboDown[Down][4]=0; // 61.8%
FiboDown[Down][5]=0; // 50%//------------------------------------------------------------------//Изменение имени объектаbool F =ObjectSetString(0,n,OBJPROP_NAME,NameFiboDown[Down]);
Down++;
}
}
//+------------------------------------------------------------------+ArrayPrint(
FiboUp, // выводимый массив2, // количество десятичных знаков после запятойNULL, // разделитель между значениями полей структуры0, // индекс первого выводимого элементаWHOLE_ARRAY, // количество выводимых элементовARRAYPRINT_HEADER|ARRAYPRINT_INDEX|ARRAYPRINT_ALIGN
);
ArrayPrint(
FiboDown, // выводимый массив2, // количество десятичных знаков после запятойNULL, // разделитель между значениями полей структуры0, // индекс первого выводимого элементаWHOLE_ARRAY, // количество выводимых элементовARRAYPRINT_HEADER|ARRAYPRINT_INDEX|ARRAYPRINT_ALIGN
);
}
// for(int i=0; i<ArraySize(Koll); i++)// printf("Koll[%d] = %d",i,Koll[i]);//------------------------------------------------------------------------------------------------------//+------------------------------------------------------------------+//+------------------------------------------------------------------+double Function_Up(double a, double b) // имя функции и список параметров
{
double Sum_100 = a - b; //Вычисляем 100% В пунктах от точек построения фибоdouble Sum_78 = Sum_100 * 78.6 / 100; //Вычисляем 78.6% В пунктахreturn (Sum_78 + b); // Вычисляем 78.6% в цене инструмента
}
//+------------------------------------------------------------------+double Function_Down(double a, double b) // имя функции и список параметров
{
double Sum_100 = b - a ; //Вычисляем 100% В пунктах от точек построения фибоdouble Sum_78 = Sum_100 * 21.4 / 100; //Вычисляем 78.6% В пунктахreturn (Sum_78 + a); // Вычисляем 78.6% в цене инструмента
}
//+------------------------------------------------------------------+
Ich habe es die ganze Zeit hängen, bis ich es selbst entladen, wenn ich den Screenshot nahm, mit MT5 wurde am Samstagmorgen beendet, wenn der Markt in meiner Zeitzone geschlossen, am Sonntag setzte ich mich zu spielen und begann zu töten Prozesse.
Wahrscheinlich liegt das Problem auf meiner Seite, obwohl die Lizenz vor einem Monat neu installiert wurde.
Machen Sie eine Probe des "hängenden" Mittels. Schauen wir uns das mal an.
Irgendwelche Vorschläge?
Der ternäre Operator kann nicht implizit auf die Basisklasse übertragen werden
Explizite Übertragung verwenden
Der ternäre Operator überträgt Operanden nicht implizit auf die Basisklasse - verwenden Sie explizites Casting.
Es gibt keine Fehlermeldung:
aber so ist es nun einmal:
Worin besteht der grundlegende Unterschied?
Im ersten Fall hätte es auch eine Fehlermeldung geben müssen - der Funktionsname wird bereits für die Aufzählung verwendet.
Liebe Entwickler, bitte fügen Sie die Möglichkeit hinzu, Skripte von anderen Skripten und Diensten im synchronen Modus auszuführen.
Ich danke Ihnen im Voraus
Liebe Entwickler, bitte fügen Sie die Möglichkeit hinzu, Skripte von anderen Skripten und Diensten im synchronen Modus auszuführen.
Ich danke Ihnen im Voraus.
Ich unterstütze, es ist nicht bequem, mit großen Dateien von EA aus einigen Gründen zu arbeiten, ich benutze Skripte, die Dutzende parallel laufen müssen, um alle Kerne zu laden und die Berechnung zu beschleunigen.
Wenn Sie EX5 ändern, verschwinden die Eingabeparameter der Pässe, wenn Sie zuvor empfangene Opt-Dateien dieses EA öffnen.
Bitte zeigen Sie sie immer vor!
Eine solche Warnung findet sich im Signal.
Womit kann das zusammenhängen? Die Kontozugangsdaten wurden nicht geändert.
Eine solche Warnung findet sich im Signal.
Womit kann das zusammenhängen? Die Kontozugangsdaten wurden nicht geändert.
Das geschieht regelmäßig. Dann wird die Verbindung wiederhergestellt. Es gibt keinen Grund, etwas zu tun.
Sie sollten die Dokumentation verstehen, nicht ich. Ich habe vorgeschlagen, nach der Liste der Aufträge oder Positionen zu sortieren. Und auch in einem der Themen sagte Slava, dass es ausreicht, das Objekt auszublenden und wieder einzublenden, so dass es über allen anderen steht und das Ereignis "Rattenklick" zuerst erhält. Falls falsch, tut es mir leid. Finde heraus, wie die Liste sortiert ist und sage es allen. Ich werde auch meine Meinung ändern.
Nach langen Kämpfen und Experimenten, glaube ich, dass es einen Fehler in MQL5 mit der Sortierung von Objekten in der Liste der Objekte gibt. Da ich diesen Code in MQL4 ohne besondere Hoffnung auf eine korrekte Verarbeitung ausprobiert habe, habe ich entdeckt, dass 4 sequentiell erstellte Fibo-Ebenen eine korrekte Nummerierung in der Objektliste haben: 0.1.2.3. Die erste ==0, die zweite ==1, usw.., In MQL5 haben jedoch 4 aufeinanderfolgende Symbole, die nacheinander erstellt wurden, eine Nummerierung von oben, und nur wenn ich ihre Namen ändere, reihen sie sich in der Reihenfolge der Namensänderung auf. Überprüfen Sie es selbst, vielleicht funktioniert das Terminal nicht richtig, obwohl ich es auf 3 Computern versucht habe ((((.