Chers développeurs, veuillez ajouter la possibilité d'exécuter des scripts à partir d'autres scripts et services en mode synchrone.
Merci d'avance.
Je soutiens, il n'est pas pratique de travailler avec de gros fichiers d'EA pour certaines raisons, j'utilise des scripts qui doivent être exécutés des dizaines en parallèle pour charger tous les cœurs et accélérer les calculs.
Bon après-midi. Veuillez me conseiller, je ne peux pas importer un fichier CSV dans la base de données via le navigateur ME. Le message est le suivant : erreur d'importation de la base de données. J'ai essayé toutes les options CSV. Quelqu'un a-t-il réussi à le faire ou s'agit-il d'un bug ? Version : 5.0 build 27.15.
Vous n'avez pas besoin de me comprendre, vous avez besoin de comprendre la documentation. J'ai suggéré un tri basé sur la liste des ordres ou des positions. Et dans l'un des sujets, Slava a dit qu'il suffisait de cacher l'objet et de le réafficher, de sorte qu'il soit au-dessus de tous les autres et reçoive l'événement "clic du rat" en premier. Si c'est faux, désolé. Découvrez comment la liste est triée et dites-le à tout le monde. Je vais aussi changer d'avis.
Après de longues luttes et expériences, je crois qu'il y a un bug dans MQL5 avec le tri des objets dans la liste des objets. Pour avoir essayé ce code dans MQL4 sans espoir particulier de traitement correct, j'ai découvert que 4 niveaux de Fibo créés séquentiellement ont une numérotation correcte dans la liste des objets : 0.1.2.3. Le premier ==0, le second ==1, etc.., Dans MQL5, cependant, 4 symboles consécutifs créés l'un après l'autre ont une numérotation à partir du plafond, et seulement si je change leurs noms, ils s'alignent dans l'ordre du changement de nom. Que dois-je faire ? Vérifier mon terminal, peut-être que mon terminal ne fonctionne pas correctement, bien que je l'ai essayé sur 3 ordinateurs (((()).
//+------------------------------------------------------------------+//| 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% в цене инструмента
}
//+------------------------------------------------------------------+
Bonjour ! Une situation un peu étrange ici, sur l'un des abonnements aux signaux, les transactions sont copiées avec un retard de 2-5 minutes, mais elles se ferment clairement en synchronisation comme elles le devraient. Mon compte est sur VPS. Tout va bien sur les autres comptes. J'ai décidé de vérifier, peut-être que c'est à cause de l'hébergement, j'ai ouvert un terminal sur mon PC, respectivement, 2 mêmes trades sont ouverts sur le trade d'un fournisseur (signal), un depuis le VPS et un depuis le terminal en même temps avec le même délai, cela signifie que le VPS fonctionne bien. En conséquence, le signal est bénéficiaire, mais sur mon terminal, les transactions sont fermées avec perte ou avec un petit bénéfice. Le signal est copié du courtier Global Premier vers Alpari. Pouvez-vous nous indiquer comment résoudre ce problème ?
Si vous n'avez pas de compte, veuillez vous inscrire
Autorisez l'utilisation de cookies pour vous connecter au site Web MQL5.com.
Veuillez activer les paramètres nécessaires dans votre navigateur, sinon vous ne pourrez pas vous connecter.
Vous êtes connecté. L'authentification à deux facteurs a été désactivée. Configurez-la à nouveau et scannez un nouveau code QR, ou continuez avec l'authentification à deux facteurs désactivée.
Des suggestions ?
L'opérateur ternaire n'effectue pas de cast vers la classe de base implicitement
Utiliser un casting explicite
L'opérateur ternaire ne transfère pas implicitement les opérandes vers la classe de base - utilisez le transfert explicite.
Il n'y a pas de message d'erreur:
mais c'est comme ça :
Quelle est la différence fondamentale ?
Dans le premier cas, il aurait dû y avoir un message d'erreur également - le nom de la fonction est déjà utilisé pour l'énumération.
Chers développeurs, veuillez ajouter la possibilité d'exécuter des scripts à partir d'autres scripts et services en mode synchrone.
Merci d'avance
Chers développeurs, veuillez ajouter la possibilité d'exécuter des scripts à partir d'autres scripts et services en mode synchrone.
Merci d'avance.
Je soutiens, il n'est pas pratique de travailler avec de gros fichiers d'EA pour certaines raisons, j'utilise des scripts qui doivent être exécutés des dizaines en parallèle pour charger tous les cœurs et accélérer les calculs.
Si vous modifiez l'EX5, lorsque vous ouvrez des fichiers opt-files de cette EA reçus précédemment, les paramètres d'entrée des passes disparaissent.
Veuillez les montrer à tout moment !
Il y a un tel avertissement dans le Signal.
A quoi cela peut-il être relié ? Les détails d'accès au compte n'ont pas été modifiés.
Il y a un tel avertissement dans le Signal.
A quoi cela peut-il être relié ? Les détails d'accès au compte n'ont pas été modifiés.
Cela arrive périodiquement. Ensuite, il se reconnectera. Il n'y a pas besoin de faire quoi que ce soit.
Vous n'avez pas besoin de me comprendre, vous avez besoin de comprendre la documentation. J'ai suggéré un tri basé sur la liste des ordres ou des positions. Et dans l'un des sujets, Slava a dit qu'il suffisait de cacher l'objet et de le réafficher, de sorte qu'il soit au-dessus de tous les autres et reçoive l'événement "clic du rat" en premier. Si c'est faux, désolé. Découvrez comment la liste est triée et dites-le à tout le monde. Je vais aussi changer d'avis.
Après de longues luttes et expériences, je crois qu'il y a un bug dans MQL5 avec le tri des objets dans la liste des objets. Pour avoir essayé ce code dans MQL4 sans espoir particulier de traitement correct, j'ai découvert que 4 niveaux de Fibo créés séquentiellement ont une numérotation correcte dans la liste des objets : 0.1.2.3. Le premier ==0, le second ==1, etc.., Dans MQL5, cependant, 4 symboles consécutifs créés l'un après l'autre ont une numérotation à partir du plafond, et seulement si je change leurs noms, ils s'alignent dans l'ordre du changement de nom. Que dois-je faire ? Vérifier mon terminal, peut-être que mon terminal ne fonctionne pas correctement, bien que je l'ai essayé sur 3 ordinateurs (((()).