A matriz multidimensional ao processar com ArrayFill() aparece como unidimensional, por exemplo, a matriz[2][4] é processada como matriz[8], portanto, ao trabalhar com esta matriz é aceitável especificar um índice de elemento inicial igual a 5. Então, chame ArrayFill(array, 5, 2, 3.14) para array[2][4] irá preencher array[1][1] e array[1][2] com o valor 3.14.
E você é um brincalhão. E o problema realmente é, e há tópicos sobre isso o comando Imprimir imprime duas vezes na aba Especialistas e Allert também vem duas vezes, só que não há resposta, infelizmente não há como consertá-lo. E para o futuro, se você não sabe, você pode simplesmente ficar em silêncio e passar, mas ganhar uma classificação de respostas não profissionais é estúpido. Sim, a propósito, suas respostas são realmente muito fracas.
Você é um brincalhão. Mas o problema é real, e há tópicos sobre isso o comando Imprimir imprime duas vezes na aba Especialistas e Allert também vem duas vezes, só que não há resposta, infelizmente, como consertá-lo. E para o futuro, se você não sabe, você pode simplesmente ficar calado e passar, mas ganhar uma classificação de respostas não-profissionais é estúpido. Sim, a propósito, suas respostas são realmente muito fracas.
Você não entendeu a minha ligação...
A impressão não imprime mais de uma vez, se imprimir, há um erro no código...é por isso que o enviei aos telepatas, pois você não postou o código)
Caros usuários do fórum, preciso de alguma ajuda. Escrevi um roteiro em MQL4 que desenha uma linha por uma fórmula baseada em três pontos dados em um gráfico. São necessárias 130 linhas, incluindo travessões e espaços. Recentemente decidi portar para a MQL5 e percebi que meu fraco conhecimento em programação não me ajudará, preciso estudar novamente.
Ficarei grato se alguém estiver pronto para portar o roteiro para a MQL5. Eu ficaria feliz se alguém quisesse portar este roteiro para a 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);
}}
Leia as regras. A EA deve trabalhar sem restrições tanto nos instrumentos quanto nas TFs.
Obrigado! Houve muitos outros erros no processo)
ArrayInitialize(array,EMPTY_VALUE);
Como este duplo msArr[10][4][500];
Ou pode ser feito somente em loop em MKL4.
ArrayInitialize(array,EMPTY_VALUE);
Como este duplo msArr[10][4][500];
Ou só pode ser feito em loop em MKL4.
Há também o ArrayFill e o ZeroMemory
A matriz multidimensional ao processar com ArrayFill() aparece como unidimensional, por exemplo, a matriz[2][4] é processada como matriz[8], portanto, ao trabalhar com esta matriz é aceitável especificar um índice de elemento inicial igual a 5. Então, chame ArrayFill(array, 5, 2, 3.14) para array[2][4] irá preencher array[1][1] e array[1][2] com o valor 3.14.
Há também o ArrayFill e o ZeroMemory
Por aqui!
E você é um brincalhão. E o problema realmente é, e há tópicos sobre isso o comando Imprimir imprime duas vezes na aba Especialistas e Allert também vem duas vezes, só que não há resposta, infelizmente não há como consertá-lo. E para o futuro, se você não sabe, você pode simplesmente ficar em silêncio e passar, mas ganhar uma classificação de respostas não profissionais é estúpido. Sim, a propósito, suas respostas são realmente muito fracas.
Você é um brincalhão. Mas o problema é real, e há tópicos sobre isso o comando Imprimir imprime duas vezes na aba Especialistas e Allert também vem duas vezes, só que não há resposta, infelizmente, como consertá-lo. E para o futuro, se você não sabe, você pode simplesmente ficar calado e passar, mas ganhar uma classificação de respostas não-profissionais é estúpido. Sim, a propósito, suas respostas são realmente muito fracas.
Você não entendeu a minha ligação...
A impressão não imprime mais de uma vez, se imprimir, há um erro no código...é por isso que o enviei aos telepatas, pois você não postou o código)
Boa noite!
Caros usuários do fórum, preciso de alguma ajuda. Escrevi um roteiro em MQL4 que desenha uma linha por uma fórmula baseada em três pontos dados em um gráfico. São necessárias 130 linhas, incluindo travessões e espaços. Recentemente decidi portar para a MQL5 e percebi que meu fraco conhecimento em programação não me ajudará, preciso estudar novamente.
Ficarei grato se alguém estiver pronto para portar o roteiro para a MQL5. Eu ficaria feliz se alguém quisesse portar este roteiro para a MQL5.
Eu ficaria feliz se alguém o fizesse de graça (c), isso acontece.
Jogue o código aqui, talvez alguém o faça de graça(c), isso acontece