Errores, fallos, preguntas - página 2391

 
Kisolen:
Al entrar en reposo en Windows 10 (no recuerdo cuál, pero es moderno e interprise ltsb 1607 (bastante antiguo)) en MT5, el EA deja de estar unido al gráfico, las operaciones dejan de ejecutarse, pero algunas funciones (salida de la ventana gráfica autoescrita, que es funcional) permanecen activas. ¿Es un error de MT o un problema con el EA? Gracias.

El modo de espera es cuando el ordenador está prácticamente apagado. Todos los programas están detenidos.

 
Gracias por su respuesta al último comentario. Hay una pregunta más. MT5. Hago una plantilla de interfaz , sin "rejilla" en el gráfico, llamo a esta plantilla "Default" para que esté habilitada por defecto, todo funciona en la propia MT, pero no funciona en la ventana de visualización del EA. Gracias.
 
Kisolen:
Gracias por su respuesta al comentario anterior. Hay una pregunta más. MT5. Estoy haciendo una plantilla de interfaz , sin la "rejilla" en el gráfico, llamo a esta plantilla "Default" para que esté habilitada por defecto, en la propia MT todo funciona, pero no funciona en la ventana de visualización del EA. Gracias.

La plantilla de gráfico "default.tpl" se aplica cuando se abre un nuevo gráfico en el terminal, mientras que la plantilla de gráfico "tester.tpl" se aplica cuando se ejecuta un probador de estrategias en modo visual.

Haga clic aquí para obtener más información: Plantillas y perfiles - Funciones avanzadas - Cotizaciones, gráficos de análisis técnico y fundamental

 

Hola a todos.

Me gustaría llamar la atención de los desarrolladores sobre el siguiente error en MT5 (build 2006). Al llamar a la funciónChartGetInteger con los identificadores de propiedadCHART_WIDTH_IN_BARS oCHART_VISIBLE_BARS, si hay otra ventana activa con el mismo símbolo pero con una TF menor, la función devuelve valores incorrectos. Si el gráfico tiene la escala máxima (5), el valor devuelto es menor que el valor real en 5. Si la escala es 4, el valor devuelto es menor en 10. Si la escala es 3, entonces respectivamente por 20, etc. El código del indicador de prueba, para reproducir el fallo, está abajo. Este fallo se reproduce de forma estable en el TF D1 y en el instrumento RTS-3.19. También he grabado un vídeo con la demostración del fallo para mayor claridad. En la compilación 274(a juzgar por el historial) ya se había corregido un error similar, pero aparentemente no hasta el final. :)

//+------------------------------------------------------------------+
//|                                                     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);
  }
//+------------------------------------------------------------------+

Solía obtener un valor de retorno más divertido de esta función (especialmente al cargar el terminal). En la escala máxima del gráfico (5) el valor de retorno =5 (independientemente del número real de barras en el gráfico). Si el zoom es 4, entonces el valor de retorno es =10. Si la escala es 3, entonces respectivamente =20, etc. Lamentablemente, no conseguí captar este fallo en vídeo. Sin embargo, maté todo el día para entender por qué mi indicador funciona incorrectamente en D1, mientras que está bien en otros TFs.


P.D. Registro del mismo gráfico (RTS-3.19, D1) después de un par de horas (tras la interrupción de la conexión). En realidad, en el gráfico aparecen 55 barras. Y MT5 en el registro dice, que sólo 5 caben en la pantalla, y no hay barras visibles en absoluto:)Captura de pantalla

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:

Desarrolladores hola.

La ayuda de la Biblioteca Estándar MQL5 tiene la función WindowHandle, pero al usarla, el compilador dice 'WindowHandle' - función no definida'. Pregunta: ¿Quién está fallando el código o el compilador? :)

Es SB.

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

Desarrolladores hola.

La ayuda de la Biblioteca Estándar MQL5 tiene la función WindowHandle, pero al usarla, el compilador dice 'WindowHandle' - función no definida'. Pregunta: ¿Quién está fallando el código o el compilador? :)


Está utilizando la Ayuda de forma incorrecta.

Mire con atención:MQL5 ReferenceStandard LibraryPrice ChartsWindowHandle

Retroceda un paso y lea la sección degráficos de precios


Añadido:

Ejemplo de caso de uso (nota - es necesario ejecutar el métodoAttach primero) y sólo entonces trabajar con el objeto

//+------------------------------------------------------------------+
//|                       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
Archivos adjuntos:
 
Dmitriy Burlachenko:

Desarrolladores hola.

La ayuda de la Biblioteca Estándar MQL5 tiene la funciónWindowHandle, pero al usarla, el compilador dice 'WindowHandle' - función no definida'. Pregunta: ¿Quién está fallando el código o el compilador? :)

uso:

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

Estás usando la ayuda equivocada.

Mire con atención:MQL5 ReferenceStandard LibraryPrice ChartsWindowHandle

Retroceda un paso y lealos gráficos de precios


Añadido:

Ejemplo de caso de uso (nota - es necesario ejecutar el métodoAttach primero) y sólo entonces trabajar con el objeto

Resultado:

Gracias.

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

MQL5 ME 2006

#property strict

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

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

El mismo código en MQL4 como debería ser,"la función 'f' debe tener un cuerpo"