Obrigado por tão completas respostas e peço desculpa pela minha pressa e desatenção ao estudar a documentação; as respostas estavam de facto contidas na descrição da função OnCalculate.
Aparentemente, fui demasiado rápido para forçar o processo de aprendizagem e faltei ao estudo das descrições OnInit e OnCalculate.
Yedelkin:
Será que estas linhas respondem à sua pergunta?
MetaDriver:
Neste caso, estes valores não podem ser calculados correctamente (não há historial suficiente para os calcular), pelo que lhes são estupidamente atribuídos valores zero.
// Eu teria preferido atribuir-lhes os dados de entrada correspondentes, mas isso não faz muita diferença.
Colocar incorrectamente a questão (é óbvio, escrevi o mesmo no comentário à linha, e compreendi que a atribuição de valor nulo está presente). Para parafrasear
Profi_R:
Coloco na impressão e vejo que valores diferentes de 0 no ExtLineBuffer são atribuídos do limite-1 de índicepara as taxas de índice_total-1, mas no gráfico o indicador é desenhado em todo o espaço, hmm, então onde está aatribuição de valores(diferentes de zero) ao buffer do indicador no espaço de 0 para o limite-1?
Que eles não podem ser calculados e não fazem sentido é claro desde o início. Olhei, na barra 0 o valor de uma média simples (indicador) é igual ao valor máximo do preço (nem sempre), no início pensei que se tratava do número de barras mostradas no gráfico e armazenadas no histórico, mudei esta opção de configuração para desimpedir, o resultado não mudou, o indicador na primeira barra de limite (esquerda) é desenhado, e o seu valor é diferente de 0.
Obrigado por tão completas respostas e peço desculpa pela minha pressa e desatenção ao estudar a documentação, as respostas estavam de facto contidas na descrição da função OnCalculate.
Aparentemente, fui demasiado rápido para forçar o processo de aprendizagem e faltei ao estudo das descrições OnInit e OnCalculate.
ok.
Parafraseando
O facto de não poderem ser calculados e de não fazerem sentido é claro desde o início. Olhei, a 0 barra o valor de uma média simples (indicador), igualado ao valor máximo do preço (nem sempre), no início pensei que se tratava do número de barras apresentadas no gráfico e armazenadas no histórico, mudei esta definição para "ilimitado", o resultado não mudou, o indicador na primeira barra (esquerda) desenhada, e o seu valor é diferente de 0.
Verifiquei-o e parece o mesmo. O histórico nas definições é de 100000 barras, não quero verificar se há nenhum vazio, acredito).
Não tenho resposta para "como é possível", a melhor maneira de perguntar aos criadores (por exemplo, no tópico "bugs, bugs, perguntas", os criadores visitam-no muito regularmente).
Tenho a certeza que não aparecerão aqui milagres, muito provavelmente o terminal não mostra todo o histórico solicitado e as barras (programáticas) mais à esquerda disponíveis são simplesmente deixadas de fora. :)
Profi_R: O facto de não poderem ser calculados e de não fazerem sentido é claro desde o início. Olhei, a 0 barra, o valor de uma média simples (o indicador), igualado ao valor máximo do preço (nem sempre), no início pensei que se tratava do número de barras apresentadas no gráfico e armazenadas no histórico, mudei esta opção para um ilimitado, o resultado não mudou, o indicador na primeira barra (esquerda) é desenhado, e o seu valor é diferente de 0.
Fê-lo cientificamente: na linha para(i=0;i<limit-1;i++) ExtLineBuffer[i]=0.0; substituir zero por um e ver onde aparece. Comparar com resultados obtidos anteriormente.
Tenho a certeza que não aparecerão aqui milagres, muito provavelmente o terminal não mostra bem toda a história solicitada e as barras (programáticas) mais à esquerda disponíveis são simplesmente deixadas de fora. :)
Sim, como se verificou, toda a profundidade do histórico foi calculada (sem a ligar a um gráfico), apenas não é suficiente para permitir a profundidade, mostrada no gráfico, tem de reiniciar o terminal ou abrir novamente o gráfico e só então esta opção será eficaz. Este pedaço de código é agora completamente claro.
Boa noite, estou a investigar a estruturado resultado do pedido de comércio (MqlTradeResult). Escreveu assim Imprime respectivamente para esta estrutura entre Print(99999999999999999999999999);
OrderSend(request,result);
int Error=GetLastError(); ResetLastError();
printf("Error %i ",Error);
Print(i);
Print(999999999999999999);
uint re= result.retcode;
Print( "Код результата операции");
Print( re);
// int re=ulong ru= result. deal;
Print( "Тикет сделки, если она совершена");
Print( ru);
ru= result. order;
Print( "Тикет ордера, если он выставлен");
Print( ru);
double rd= result. volume;
Print( "Объем сделки, подтверждённый брокером");
Print( rd);
rd= result. price;
Print( "Цена в сделке, подтверждённая брокером");
Print( rd);
rd= result. bid;
Print( "Текущая рыночная цена предложения (цены реквота)");
Print( rd);
rd= result. ask;
Print( "Текущая рыночная цена спроса (цены реквота)");
Print( rd);
string rs= result. comment;
Print( "Комментарий брокера к операции (по умолчанию заполняется расшифровкой)");
Print( re);
// re= result. request_id; // Print( "Идентификатор запроса, устанавливается терминалом при отправке "); // Print( re);Print(999999999999999999);
Para muitos valores a impressão é escrita a zero, o que é isso!
Dimka-novitsek: Boa noite, estou a investigar a estruturado resultado do pedido comercial (MqlTradeResult). Escrevi Print(9999999999999999999999) para esta estrutura respectivamente; para muitos valores Print escreveu zero, o que é isso!
Porque é que escrevemos estas linhas? Porque não analisamos o resultado?
Obrigado por tão completas respostas e peço desculpa pela minha pressa e desatenção ao estudar a documentação; as respostas estavam de facto contidas na descrição da função OnCalculate.
Aparentemente, fui demasiado rápido para forçar o processo de aprendizagem e faltei ao estudo das descrições OnInit e OnCalculate.
Yedelkin:
Será que estas linhas respondem à sua pergunta?
Neste caso, estes valores não podem ser calculados correctamente (não há historial suficiente para os calcular), pelo que lhes são estupidamente atribuídos valores zero.
// Eu teria preferido atribuir-lhes os dados de entrada correspondentes, mas isso não faz muita diferença.
Colocar incorrectamente a questão (é óbvio, escrevi o mesmo no comentário à linha, e compreendi que a atribuição de valor nulo está presente). Para parafrasear
Coloco na impressão e vejo que valores diferentes de 0 no ExtLineBuffer são atribuídos do limite-1 de índicepara as taxas de índice_total-1, mas no gráfico o indicador é desenhado em todo o espaço, hmm, então onde está a atribuição de valores(diferentes de zero) ao buffer do indicador no espaço de 0 para o limite-1?
Obrigado por tão completas respostas e peço desculpa pela minha pressa e desatenção ao estudar a documentação, as respostas estavam de facto contidas na descrição da função OnCalculate.
Aparentemente, fui demasiado rápido para forçar o processo de aprendizagem e faltei ao estudo das descrições OnInit e OnCalculate.
Parafraseando
O facto de não poderem ser calculados e de não fazerem sentido é claro desde o início. Olhei, a 0 barra o valor de uma média simples (indicador), igualado ao valor máximo do preço (nem sempre), no início pensei que se tratava do número de barras apresentadas no gráfico e armazenadas no histórico, mudei esta definição para "ilimitado", o resultado não mudou, o indicador na primeira barra (esquerda) desenhada, e o seu valor é diferente de 0.Verifiquei-o e parece o mesmo. O histórico nas definições é de 100000 barras, não quero verificar se há nenhum vazio, acredito).
Não tenho resposta para "como é possível", a melhor maneira de perguntar aos criadores (por exemplo, no tópico "bugs, bugs, perguntas", os criadores visitam-no muito regularmente).
Tenho a certeza que não aparecerão aqui milagres, muito provavelmente o terminal não mostra todo o histórico solicitado e as barras (programáticas) mais à esquerda disponíveis são simplesmente deixadas de fora. :)
O facto de não poderem ser calculados e de não fazerem sentido é claro desde o início. Olhei, a 0 barra, o valor de uma média simples (o indicador), igualado ao valor máximo do preço (nem sempre), no início pensei que se tratava do número de barras apresentadas no gráfico e armazenadas no histórico, mudei esta opção para um ilimitado, o resultado não mudou, o indicador na primeira barra (esquerda) é desenhado, e o seu valor é diferente de 0.
Tenho a certeza que não aparecerão aqui milagres, muito provavelmente o terminal não mostra bem toda a história solicitada e as barras (programáticas) mais à esquerda disponíveis são simplesmente deixadas de fora. :)
Em geral, deve começar com os artigos Como escrever um indicador em MQL5 e Indicador por indicador em MQL5.
Além disso, existe um tópico especial na secção apropriada do fórum, que se destina a responder a tais perguntas - O que precisa de saber sobre indicadores
Em geral, deve começar com os artigos Como escrever um indicador em MQL5 e Indicador por indicador em MQL5.
Além disso, existe um tópico especial na secção apropriada do fórum, que se destina a responder a tais perguntas - O que precisa de saber sobre indicadores
Boa noite, estou a investigar a estruturado resultado do pedido comercial (MqlTradeResult). Escrevi Print(9999999999999999999999) para esta estrutura respectivamente; para muitos valores Print escreveu zero, o que é isso!
Porque é que escrevemos estas linhas? Porque não analisamos o resultado?
Em relação aos zeros: Que tipo de zeros causam distúrbios?