Valeriy Yastremskiy tableaux multidimensionnels peuvent être initialisés avec la fonction
ArrayInitialize(array,EMPTY_VALUE) ; Comme ceci double msArr[10][4][500] ; Ou cela ne peut être fait qu'en boucle dans MKL4.
Il existe également ArrayFill et ZeroMemory.
Un tableau multidimensionnel, lorsqu'il est traité avec ArrayFill(), apparaît comme un tableau unidimensionnel, par exemple, le tableau [2][4] est traité comme un tableau [8], donc lorsque vous travaillez avec ce tableau, il est acceptable de spécifier l'index de l'élément initial égal à 5. Ainsi, l'appel à ArrayFill(array, 5, 2, 3.14) pour array[2][4] remplira array[1][1] et array[1][2] avec la valeur 3.14.
Vous êtes un plaisantin. Et le problème est vraiment, et il y a des sujets à ce sujet que la commande Print s'imprime deux fois dans l'onglet Experts et Allert vient aussi deux fois, seulement il n'y a pas de réponse hélas comment le résoudre. Et pour l'avenir, si vous ne savez pas, vous pouvez simplement vous taire et passer votre chemin, mais gagner une cote en répondant de manière non professionnelle est stupide. Oui, d'ailleurs, vos réponses sont vraiment très faibles.
Vous êtes un plaisantin. Mais le problème est réel, et il y a des sujets sur le fait que la commande Print s'imprime deux fois dans l'onglet Experts et Allert vient aussi deux fois, mais il n'y a pas de réponse hélas comment le résoudre. Et pour l'avenir, si vous ne savez pas, vous pouvez simplement vous taire et passer votre chemin, mais gagner une cote en répondant de manière non professionnelle est stupide. Oui, d'ailleurs, vos réponses sont vraiment très faibles.
Vous n'avez pas compris mon lien...
Print ne s'imprime pas plus d'une fois, si c'est le cas, c'est qu'il y a une erreur dans le code... c'est pour cela que je vous ai envoyé chez les télépathes, puisque vous n'avez pas posté le code).
Chers utilisateurs du forum, j'ai besoin d'aide. J'ai écrit un script en MQL4 qui trace une ligne par une formule à partir de trois points donnés sur un graphique. Il prend 130 lignes, y compris les retraits et les espaces. J'ai récemment décidé de le porter vers MQL5 et j'ai réalisé que mes faibles connaissances en programmation ne m'aideront pas, je dois étudier à nouveau.
Je serai reconnaissant si quelqu'un est prêt à porter le script vers MQL5. Je serais heureux si quelqu'un voulait bien porter ce script vers MQL5.
#property copyright"ExpoMe"#property link"http://www.metaquotes.net"#property indicator_chart_window#property indicator_buffers1#property indicator_color1 Blue
#property indicator_width12#property indicator_style10double Buffer1[];
//+------------------------------------------------------------------+//| Объявляем внешние переменные |//+------------------------------------------------------------------+datetime point_1;
datetime point_2;
datetime point_3;
datetime LastBarTime;
string line_name[10];
int gg=1;
int x1;
int x2;
int x3;
int xx1; // В эту переменную сохраняется значение номера бара вершины перед прогоном при появлении нового бара.int xx2; // Если линии стоят, значит при поялвении нового бара номер бара вершины должен увеличиться на 1.int xx3; // Если этого не произошло и xx1=x1 после прогона, значит увеличиваем вручную.int max;
int maxx;
double y1;
double y2;
double y3;
double y11;
double y22;
double y33;
double x11;
double x22;
double x33;
double y;
double a1;
double a2;
double a3;
//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+int init()
{SetIndexBuffer(0,Buffer1);
SetIndexStyle(0,DRAW_LINE);
//---- indicators//----return(0);
}
int start()
{
// Пересчитываем инликатор только при появлении нового бараif(LastBarTime == iTime(Symbol(), 0, 0))
return(0);
LastBarTime = iTime(Symbol(), 0, 0);
// Присваиваем значения переменных времениint obj_total=ObjectsTotal();
for(int ii=0;ii<100;ii++)
{string name = ObjectName(ii);
if(ObjectType(name)!=OBJ_VLINE)
continue;
line_name[gg] = ObjectName(ii);
gg=gg+1;
}
point_1=ObjectGet(line_name[1], OBJPROP_TIME1);
point_2=ObjectGet(line_name[2], OBJPROP_TIME1);
point_3=ObjectGet(line_name[3], OBJPROP_TIME1);
// Запоминаем текущий номер бара вершины
xx1=x1;
//Определяем номера баров ключевых точекfor (int j=0;j<Bars; j++)
{ if (Time[j]==point_1) x1=j;}
// Если после прогона сдвиг по вершине не произошел, значит линий нет, добавляем +1 вручную.if (x1==xx1) x1=x1+1;
xx2=x2;
for (int k=0;k<Bars; k++)
{if (Time[k]==point_2) x2=k; }
if (x2==xx2) x2=x2+1;
xx3=x3;
for (int l=0;l<Bars; l++)
{if (Time[l]==point_3) x3=l; }
if (x3==xx3) x3=x3+1;
// Comment ("n1=", j," n2=", k, " n3=", l);//Находим "высоту" вершин
{
y1=High[x1];
y2=High[x2];
y3=High[x3];
//Comment ("y1=", y1," x1=", x1, " y2=", y2, "x2=", x2," y3=", y3, " x3=", x3);//Принимаем первую из них за начало координат
a1=(y3-(x3*(y2-y1)+x2*y1-x1*y2)/(x2-x1))/(x3*(x3-x1-x2)+x1*x2);
a2=((y2-y1)/(x2-x1))-a1*(x1+x2);
a3=((x2*y1-x1*y2)/(x2-x1))+a1*x1*x2;
max=MathMax(x1,x2);
maxx=MathMax(max,x3);
for (int i=maxx; i>=0; i--)
{ y=a1*i*i+a2*i+a3;
Buffer1[i]=y;}
return(0);
}}
Lisez les règles. L'EA doit fonctionner sans restrictions sur les instruments et les TF.
Merci ! Il y a eu beaucoup d'autres erreurs dans le processus).
ArrayInitialize(array,EMPTY_VALUE) ;
Comme ceci double msArr[10][4][500] ;
Ou cela peut être fait seulement en boucle dans MKL4.
ArrayInitialize(array,EMPTY_VALUE) ;
Comme ceci double msArr[10][4][500] ;
Ou cela ne peut être fait qu'en boucle dans MKL4.
Il existe également ArrayFill et ZeroMemory.
Un tableau multidimensionnel, lorsqu'il est traité avec ArrayFill(), apparaît comme un tableau unidimensionnel, par exemple, le tableau [2][4] est traité comme un tableau [8], donc lorsque vous travaillez avec ce tableau, il est acceptable de spécifier l'index de l'élément initial égal à 5. Ainsi, l'appel à ArrayFill(array, 5, 2, 3.14) pour array[2][4] remplira array[1][1] et array[1][2] avec la valeur 3.14.
il y a aussi ArrayFill et ZeroMemory
Par ici !
Vous êtes un plaisantin. Et le problème est vraiment, et il y a des sujets à ce sujet que la commande Print s'imprime deux fois dans l'onglet Experts et Allert vient aussi deux fois, seulement il n'y a pas de réponse hélas comment le résoudre. Et pour l'avenir, si vous ne savez pas, vous pouvez simplement vous taire et passer votre chemin, mais gagner une cote en répondant de manière non professionnelle est stupide. Oui, d'ailleurs, vos réponses sont vraiment très faibles.
Vous êtes un plaisantin. Mais le problème est réel, et il y a des sujets sur le fait que la commande Print s'imprime deux fois dans l'onglet Experts et Allert vient aussi deux fois, mais il n'y a pas de réponse hélas comment le résoudre. Et pour l'avenir, si vous ne savez pas, vous pouvez simplement vous taire et passer votre chemin, mais gagner une cote en répondant de manière non professionnelle est stupide. Oui, d'ailleurs, vos réponses sont vraiment très faibles.
Vous n'avez pas compris mon lien...
Print ne s'imprime pas plus d'une fois, si c'est le cas, c'est qu'il y a une erreur dans le code... c'est pour cela que je vous ai envoyé chez les télépathes, puisque vous n'avez pas posté le code).
Bonne nuit !
Chers utilisateurs du forum, j'ai besoin d'aide. J'ai écrit un script en MQL4 qui trace une ligne par une formule à partir de trois points donnés sur un graphique. Il prend 130 lignes, y compris les retraits et les espaces. J'ai récemment décidé de le porter vers MQL5 et j'ai réalisé que mes faibles connaissances en programmation ne m'aideront pas, je dois étudier à nouveau.
Je serai reconnaissant si quelqu'un est prêt à porter le script vers MQL5. Je serais heureux si quelqu'un voulait bien porter ce script vers MQL5.
Je serais heureux si quelqu'un pouvait le faire gratuitement (avec).
Jetez le code ici, peut-être que quelqu'un le fera gratuitement (c), ça arrive.