Aprender e escrever juntos em MQL5 - página 36

 

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á a atribuiçã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.
 
Profi_R:

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.
 
MetaDriver:

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.
Документация по MQL5: Операции с графиками / ChartOpen
Документация по MQL5: Операции с графиками / ChartOpen
  • www.mql5.com
Операции с графиками / ChartOpen - Документация по MQL5
 

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

 
Rosh:

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

))))) feliz por o ver de boa saúde, que me perdoe o meu ardor. Obrigado, vou tê-lo em conta )
 
Também é bom vê-lo no 5 :)
 
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?

uint re= result.retcode;
         Print( "Код результата операции");
         Print( re);  

Em relação aos zeros: Que tipo de zeros causam distúrbios?

 
Obrigado! O preço actual da oferta e oferta é zero. Bilhete de Negócio . Encomenda de bilhetes. Certo, aqui está o papá.
Документация по MQL5: Торговые функции / OrderGetTicket
Документация по MQL5: Торговые функции / OrderGetTicket
  • www.mql5.com
Торговые функции / OrderGetTicket - Документация по MQL5