Erros, bugs, perguntas - página 2391

 
Kisolen:
Ao entrar em standby no Windows 10 (não me lembro qual deles, mas é moderno e interempresarial ltsb 1607 (bastante antigo)) no MT5, a EA deixa de estar ligada ao gráfico, as negociações deixam de ser executadas, mas algumas funções ainda estão a funcionar (saída da janela gráfica auto-escrita, que é funcional). Isto é um bug de MT ou um problema com a EA? Obrigado.

O modo standby é quando o computador está praticamente desligado. Todos os programas são interrompidos.

 
Obrigado pela sua resposta ao último comentário. Há mais uma questão. MT5. Faço um modelo de interface, sem "grelha" no gráfico, chamo a este modelo "Default", por isso é activado por defeito, tudo funciona no próprio MT, mas não funciona na janela de visualização da EA. Obrigado.
 
Kisolen:
Obrigado pela sua resposta ao comentário anterior. Há mais uma questão. MT5. Estou a fazer um modelo de interface, sem a "grelha" no gráfico, chamo a este modelo "Default", por isso é activado por defeito, no próprio MT tudo funciona, mas não funciona na janela de visualização da EA. Obrigado.

O modelo de gráfico "default.tpl" aplica-se quando se abre um novo gráfico no terminal, enquanto que o modelo de gráfico "tester.tpl" se aplica quando se executa um testador de estratégia em modo visual.

Clique aqui para mais informações: Modelos e Perfis - Características Avançadas - Citações, Gráficos de Análise Técnica e Fundamental

 

Olá a todos.

Gostaria de chamar a atenção dos programadores para o seguinte bug em MT5 (build 2006). Ao chamar a funçãoChartGetInteger com identificadores de propriedadeCHART_WIDTH_IN_BARS ouCHART_VISIBLE_BARS, se outra janela estiver activa com o mesmo símbolo mas um TF mais pequeno, a função retorna valores incorrectos. Se o gráfico tiver a escala máxima (5), o valor devolvido é inferior ao valor real em 5. Se a escala for 4, o valor devolvido é menor em 10. Se a escala for 3, então, respectivamente por 20, etc. O código para o indicador de teste, para reproduzir a falha, está abaixo. Esta falha é reproduzida de forma estável na TF D1 e no instrumento RTS-3.19. Também gravei um vídeo com demonstração de erros para maior clareza. Na construção 274(a julgar pela história) um bug semelhante já tinha sido corrigido, mas aparentemente não até ao fim. :)

//+------------------------------------------------------------------+
//|                                                     DBS_Bug2.mq5 |
//|                                            Copyright © 2019, DBS |
//+------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_buffers 1                                         //количество индикаторных буферов
#property indicator_plots   1                                         //количество графических построений
//+------------------------------------------------------------------+ 
//| Функция инициализации индикатора                                 | 
//+------------------------------------------------------------------+
int OnInit()
  {
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+ 
//| Функция расчёта индикатора                                       | 
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,                                //количество истории в барах на текущем тике
                const int prev_calculated,                            //количество истории в барах на предыдущем тике
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---Debug
   int chart_bars=int(ChartGetInteger(0,CHART_WIDTH_IN_BARS));     //к-во баров на экране
   int vis_bars=int(ChartGetInteger(0,CHART_VISIBLE_BARS));        //к-во баров видимых на экране
   PrintFormat("%s: Debug #2! rates_total=%i chart_bars=%i vis_bars=%i",__FUNCTION__,rates_total,chart_bars,vis_bars);
   return(rates_total);
  }
//+------------------------------------------------------------------+

Eu costumava obter um valor de retorno ainda mais engraçado desta função (especialmente quando carregava o terminal). Na escala máxima do gráfico (5) o valor de retorno =5 (independentemente do número real de barras no gráfico). Se o zoom for 4, então devolver valor =10. Se a escala for 3, então respectivamente =20, etc. Infelizmente, não consegui captar esta falha em vídeo. No entanto, matei o dia inteiro para compreender porque é que o meu indicador funciona incorrectamente em D1, enquanto que em outras TF está bem.


P.S. Log a partir do mesmo gráfico (RTS-3.19, D1) após um par de horas (após uma pausa na ligação). Realisticamente, 55 barras são mostradas no gráfico. E MT5 no registo diz, que apenas 5 cabem no ecrã, e não há nenhuma barra visível:)Imagem do ecrã

2019.02.24 21:27:09.692 DBS_Volume (RTS-3.19,D1)        DBS Volume (VOLUME_REAL): SetVolScale: Debug #1!  max_vol_idx=3 max_vol=402550 time=2019.02.19 00:00 rates_total=220 chart_bars=5 vis_bars=0
MetaTrader 5 Client Terminal build 274
MetaTrader 5 Client Terminal build 274
  • 2010.05.15
  • MetaQuotes Software Corp.
  • www.metatrader5.com
Terminal: Исправлено отображение истории торговли на чарте. Terminal: Исправлена ошибка в навигации чарта (при отключеном сдвиге и автоскроле). Terminal: Исправления по сообщениям на форуме и крешлогам. Terminal: В файл помощи добавлено описание Тестера Стратегий MetaTester: Исправлена ошибка в загрузке параметров тестирования при смене...
 
Dmitriy Burlachenko:

Olá, desenvolvedores.

A MQL5 Standard Library Help tem a função WindowHandle, mas quando a utiliza, o compilador diz 'WindowHandle' - função não definida'. Pergunta: Quem está a cometer uma falha no código ou no compilador? :)

É SB.

int CChart::WindowHandle(void) const;
 
Dmitriy Burlachenko:

Olá, desenvolvedores.

A MQL5 Standard Library Help tem a função WindowHandle, mas quando a utiliza, o compilador diz 'WindowHandle' - função não definida'. Pergunta: Quem está a cometer uma falha no código ou no compilador? :)


Está a utilizar a Ajuda incorrectamente.

Veja com atenção:Referência MQL5Biblioteca StandardGráficos de PreçosWindowHandle

Volte um passo atrás e leia a secção deGráficos de Preços


Adicionado:

Exemplo de caso de utilização (nota - é necessário executar primeiro o métodoAnexar) e só depois trabalhar com o objecto

//+------------------------------------------------------------------+
//|                       Gets window handle of the chart (HWND).mq5 |
//|                              Copyright © 2019, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2019, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.00"
#property description "Gets window handle of the chart (HWND)"
//---
#include <Charts\Chart.mqh>
CChart   m_chart;                      // CChart object
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {

   m_chart.Attach(); // assigns the current chart to the class instance

   Print("CChart.WindowHandle: ",m_chart.WindowHandle());
   Print("CChart.ChartId: ",m_chart.ChartId());
  }
//+------------------------------------------------------------------+

Resultado:

2019.02.25 16:01:32.165 Gets window handle of the chart (HWND) (GBPUSD,H1)      CChart.WindowHandle: 13830128
2019.02.25 16:01:32.165 Gets window handle of the chart (HWND) (GBPUSD,H1)      CChart.ChartId: 131571247244850547
Arquivos anexados:
 
Dmitriy Burlachenko:

Olá, desenvolvedores.

A MQL5 Standard Library Help tem a funçãoWindowHandle, mas quando a utiliza, o compilador diz 'WindowHandle' - função não definida'. Pergunta: Quem está a cometer uma falha no código ou no compilador? :)

utilização:

ChartGetInteger(0,CHART_WINDOW_HANDLE,0);
 
Vladimir Karputov:

Está a utilizar a ajuda errada.

Veja com atenção:Referência MQL5Biblioteca StandardGráficos de PreçosWindowHandle

Voltar um passo atrás e lerGráficos de Preços


Adicionado:

Exemplo de caso de utilização (nota - é necessário executar primeiro o métodoAnexar) e só depois trabalhar com o objecto

Resultado:

Obrigado.

 
Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2019.02.21
  • www.mql5.com
Общее обсуждение: Ошибки, баги, вопросы
 

MQL5 ME 2006

#property strict

class A
 { 
public:
  int f();
 };

void OnStart()
  {
   A a;
   a.f();
  }

O mesmo código em MQL4 como deve ser,"a função 'f' deve ter um corpo".

Razão: