Erros, bugs, perguntas - página 1506

 
DV2010:

Por favor, perdoe qualquer informação incompleta.

1. a informação está no separador Registo:

2. o indicador testado para remoção são as Bandas de Bollinger padrão:

- o ficheiro indicador está localizado em C:\Program Files\Alpari Limited MT5\MQL5\Indicators\Examples\BB.ex5;

- O ficheiro compilado é adicionado ao gráfico manualmente;

- ambos os ficheiros são anexados a este post.

3. Código completo do Expert Advisor que remove o indicador e sobre o qual o erro é detectado:

   void OnInit(){
      ChartIndicatorDelete(0,0,"Bollinger Bands");
   } 

Resultado do teste:

Após arrastar tal "Expert Advisor" (na aplicação - DeleteInd.ex5) no gráfico

As Bandas de Bollinger adicionadas manualmente ao gráfico são eliminadas mas o gráfico não é escalado depois disso quando o tamanho do gráfico muda.

Obrigado por uma pergunta tão detalhada e bem formatada (há muito tempo que ninguém escreve assim!).

O que se passa é o seguinte:

  1. Adiciono manualmente o indicador BB do ...MQL5\Indicadores\Exemplos\BB.mq5.
  2. Dirijo o Expert Advisor na mesma tabela. Acrescentei o próprio Expert Advisor:
    //+------------------------------------------------------------------+
    //|                                                      ProjectName |
    //|                                      Copyright 2012, CompanyName |
    //|                                       http://www.companyname.net |
    //+------------------------------------------------------------------+
    void OnInit()
      {
       ResetLastError();
       if(!ChartIndicatorDelete(0,0,"Bollinger Bands"))
          Print("Error delete BB ",GetLastError());
      }
    //+------------------------------------------------------------------+
    Recebo um erro

    ERR_CHART_INDICATOR_CANNOT_DEL

    4115

    Erro ao apagar o indicador do gráfico


Este erro ocorre porque após a eliminação do indicador da EA, a janela do gráfico onde estava BB, embora o possamos ver, mas na realidade já está eliminado. Para verificar isto, depois de executar o Expert Advisor, mude para outro perfil no terminal e depois volte (para o perfil antigo) e descubra que o gráfico se desceu como uma vaca.

A minha configuração:

2016.02.11 18:47:04.915 Terminal        MetaTrader 5 x64 build 1241 started (MetaQuotes Software Corp.)
2016.02.11 18:47:04.915 Terminal        Windows 10 Pro (x64 based PC), IE 11.63, UAC, Intel Core i3-3120 M  @ 2.50 GHz, RAM: 785 / 3981 Mb, HDD: 68822 / 233310 Mb, GMT+02:00
2016.02.11 18:47:04.915 Terminal        C:\Users\KVN\AppData\Roaming\MetaQuotes\Terminal\43 B472C43247368C5B97C7F22A1AE963
Arquivos anexados:
DeleteInd.mq5  1 kb
 
Karputov Vladimir:

Obrigado por uma pergunta tão detalhada e bem escrita (já há muito tempo que ninguém escreve assim!).

Eis o que está a acontecer:

  1. Adiciono manualmente o indicador BB do ...MQL5\Indicadores\Exemplos\BB.mq5.
  2. Estou a gerir o Expert Advisor na mesma tabela. Acrescentei algumas alterações ao Expert Advisor:
    Recebo um erro

    ERR_CHART_INDICATOR_CANNOT_DEL

    4115

    Erro ao apagar o indicador do gráfico


Este erro ocorre porque após a eliminação do indicador da EA, a janela do gráfico onde estava BB, embora o possamos ver, mas na realidade já está eliminado. Para verificar isto, depois de executar o Expert Advisor, mude para outro perfil no terminal e depois volte (para o perfil antigo) e descubra que o gráfico se desceu como uma vaca.

A minha configuração:

Ao executar o seu código no diário de bordo, recebo apenas:

2016.02.11 20:14:01.996    Experts    expert DeleteInd (XAUUSD,M1) loaded successfully

Mas depois de mudar para outro perfil e voltar, a janela está ausente (embora as citações nele estivessem a mudar depois de adicionar um consultor especializado).

Significa que se trata de um insecto? Tanto quanto sei, a função ChartIndicatorDelete() não deve conduzir a tal comportamento anormal de um gráfico. É possível corrigi-lo?

 
DV2010:

Quando executo o vosso código, só o recebo no livro de bordo:

2016.02.11 20:14:01.996    Experts    expert DeleteInd (XAUUSD,M1) loaded successfully

Mas depois de mudar para outro perfil e voltar a janela está ausente (embora as citações nele estivessem a mudar após a adição do Expert Advisor).

Significa que se trata de um insecto? Tanto quanto sei, a função ChartIndicatorDelete() não deve levar a tal comportamento anormal de um gráfico. É possível corrigi-lo?

Já o comuniquei ao Service Desk.
 
Sugeriram que mudássemos o modo do Expert Advisor entre Expert Advisor e Indicator a fim de termos um ficheiro. O mesmo produto será instalado em terminais diferentes.

Fiz uma troca. Mas o que aconteceu é o seguinte: se eu compilar o ficheiro mq4 na pasta Especialistas, o programa funciona apenas como uma EA, como um indicador (quando o copio para a pasta Indicadores) ele nem sequer está definido no gráfico. Mas se eu o recompilar nesta pasta, tudo está bem. O mesmo se aplica à EA, esta não será instalada se tiver sido compilada na pasta Indicadores. Por favor, diga-me qual é a razão para isso? O modo de compilação é rigoroso, não há erros.

 

Na última construção de MT5 1241 ChartIndicatorDelete a função "mexer" no gráfico. A carta não é redesenhada ao redimensionar, a carta não é guardada ao fechar o terminal, etc.

Isto já foi corrigido. Por favor aguarde pela próxima construção

 
Igor Ramensky:
A secretária aconselhou que deveria haver apenas um ficheiro,
Pode pedir um número de candidatura ao servicedesk?
 
Caros programadores, poderiam dizer-me se é permitida a repetição de funções e métodos de classe na MQL? Faço uma chamada recursiva de método e recebo um transbordo de pilha.
 
coderex:
Caros programadores, poderiam aconselhar se é permitida a repetição de funções e métodos de classe na MQL? Estou a fazer uma chamada de método recorrente e a receber um transbordo de pilha.

É claro que é permitido. Caso contrário, não receberia um transbordo de pilha.

E o que esperava?

Controla de alguma forma a profundidade de recorrência?

 
Slawa:

É claro que é permitido. Caso contrário, não receberia um transbordo de pilha.

O que esperava?

Controla de alguma forma a profundidade da recorrência?

Já descobri :) Claro, desculpa ter tropeçado, não uso a recorrência há muito tempo e esqueci-me do controlo de profundidade de recorrência...
 
Com que frequência podem ser efectuadas as activações? Ou após uma activação, quanto tempo até que a próxima activação possa ter lugar?
Razão: