Errores, fallos, preguntas - página 1400

 

Después de actualizar a la nueva compilación(1178), al cargar el EA en el gráfico, me aparece el siguiente error en el registro con la descarga del programa del gráfico:

2015.10.14 21:04:50.571 TestLibrary (EURUSD,M30)        
2015.10.14 21:04:50.571 TestLibrary (EURUSD,M30)        00: 0x00000000028E1F21
2015.10.14 21:04:50.571 TestLibrary (EURUSD,M30)        
2015.10.14 21:04:50.571 TestLibrary (EURUSD,M30)                      00000000028 E1F37 C6467000          mov        byte [rsi+0x70], 0x0
2015.10.14 21:04:50.571 TestLibrary (EURUSD,M30)                      00000000028 E1F30 C686AD02000000    mov        byte [rsi+0x2ad], 0x0
2015.10.14 21:04:50.571 TestLibrary (EURUSD,M30)        
2015.10.14 21:04:50.571 TestLibrary (EURUSD,M30)                      00000000028 E1F2E 7 CA0              jl         0x28e1ed0
2015.10.14 21:04:50.571 TestLibrary (EURUSD,M30)                      00000000028 E1F2C 39 C3              cmp        ebx, eax
2015.10.14 21:04:50.571 TestLibrary (EURUSD,M30)                      00000000028 E1F26 8 B868B000000      mov        eax, [rsi+0x8b]
2015.10.14 21:04:50.571 TestLibrary (EURUSD,M30)                      00000000028 E1F24 FFC3              inc        ebx
2015.10.14 21:04:50.571 TestLibrary (EURUSD,M30)           crash -->  00000000028 E1F21 FF5728            call       qword near [rdi+0x28]
2015.10.14 21:04:50.571 TestLibrary (EURUSD,M30)        Access violation at 0x00000000028E1F21 read to 0x0000000D5D01E928 in 'D:\#MetaTrader\MetaTrader 5 Test\MQL5\Experts\#TestLibrary\Article02\TestLibrary.ex5'

//---

Por lo que he entendido, esta situación se produce al intentar ocultar objetos gráficos mediante el métodoCChartObject::Timeframes(OBJ_NO_PERIODS).

P.D . Aunque no, lo más probable es que el problema se deba a algún otro motivo. Tratando de localizar, continuará en servicedesk, abrió una aplicación.

 
transcendreamer:
el autor ya es consciente de esto y está pensando mucho en cómo podría haber sucedido

el autor ha pensado mucho y ha arreglado este punto, aparecerá en la próxima actualización

el fallo era una característica no registrada del corredor

 
construir 1178. Error de compilación:'B' - falta de coincidencia de plantilla
class A { template<typename T> A( T ) {} };
class B;
class B {};
Todo estaba bien antes
 
A100:
construir 1178. Error de compilación:'B' - falta de coincidencia de plantilla
pero antes estaba bien
Gracias, lo comprobaremos.
 
¿Por qué no se activa el evento OnTimer en los indicadores llamados a través de iCustom?
 
Ilya Malev:
¿Por qué el evento OnTimer no se dispara en los indicadores, llamados a través de iCustom?
Arquitectónicamente el evento del temporizador es un evento del gráfico, por lo que en este caso los indicadores no pueden recibirlo.
 
Anton:
Arquitectónicamente el evento del temporizador es un evento del gráfico, por lo que en este caso los indicadores no pueden recibirlo.
¿Cómo puedo hacer que el indicador, llamado a través de iCustom, se dibuje (es decir, provocar la llamada OnCalculate), en caso de ausencia de ticks (por ejemplo, en fin de semana)?
 
Si este indicador llama a su vez a otros indicadores, entonces en la primera llamada automática de OnCalculate justo después de salir de OnInit no se calcularán los datos de estos indicadores, y además, el indicador no puede "esperar" a su cálculo sin salir de OnCalculate. Y no habrá una próxima llamada de OnCalculate hasta el final del fin de semana, cuando comiencen los primeros ticks. En este caso ni OnTimer, ni OnChartEvent funcionan en este indicador para llamar a repintar cuando se reciben los datos. Al final, la única manera que puedo ver - a través de DLL para llamar a "Refresh" en el gráfico desde el menú contextual de la ventana - No creo que los desarrolladores planeado este método para el trabajo normal de los indicadores en MT5. De lo contrario, el usuario tendrá que pulsar este botón hasta que el indicador se muestre, lo que difícilmente le hará feliz.
 
Ilya Malev:
Si este indicador a su vez llama a otros indicadores, entonces en la primera llamada automática de OnCalculate justo después de salir de OnInit, los datos de estos indicadores no se calcularán, y además, el indicador no podrá "esperar" a su cálculo sin salir de OnCalculate. Y no habrá una próxima llamada de OnCalculate hasta el final del fin de semana, cuando comiencen los primeros ticks. En este caso ni OnTimer, ni OnChartEvent funcionan en este indicador para llamar a repintar cuando se reciben los datos. Al final, la única manera que puedo ver - a través de DLL para llamar a "Actualizar" en el gráfico desde el menú contextual de la ventana - No creo que los desarrolladores planeado este método para el trabajo normal de los indicadores en MT5. De lo contrario, el usuario tendrá que esperar frente al gráfico pulsando este botón hasta que el indicador se renderice, lo que difícilmente le hará feliz.

Si para MT4:

¿esto no funcionará? https://www.mql5.com/ru/code/11678

ChartRefresh
ChartRefresh
  • votos: 11
  • 2014.08.13
  • Alexandr Bryzgalov
  • www.mql5.com
Скрипт для принудительно обновления текущего графика.
 
Alexandr Bryzgalov:
¿No funciona así? https://www.mql5.com/ru/code/11678

Este script es para MetaTrader 4 :)

En MT4 sólo todos los datos son calculados por el terminal antes de ser recibidos en los programas mql4