Errores, fallos, preguntas - página 578

 
Fia:

2) ¿Existe una función en MQL5 para eliminar un elemento (uno en medio del array) de un array dinámico i? Si no es así, ¿cuál es la mejor manera de hacerlo con el idioma?

No hay funciones preparadas para esto en el lenguaje, pero la Biblioteca Estándar contiene Clase de objetos básicos CArrayObj
 

Buenas tardes

Por favor, dígame cómo interpretar el gráfico de balance/patrimonio neto en este ejemplo


¿Por qué los gráficos divergen inmediatamente en un punto y convergen en momentos diferentes (por el mismo nivel en "y")? Parece que en el momento de abrir el gráfico de saldo no se sabe que va a aumentar.

O tal vez no lo entiendo.

Gracias.

 
papaklass:
Bien, su posición es clara. De hecho, terminemos con esa nota. Gracias por el tiempo que ha dedicado a responder a mis preguntas.

Lo explicaré con un ejemplo sencillo.

Una mujer puede tener un bebé en nueve meses. Nueve mujeres no darán a luz a un solo niño en un mes.

Esto es a la pregunta sobre la posibilidad de procesar varios ticks consecutivos en paralelo en varios hilos. La cuestión es que, en la mayoría de los casos, el resultado del procesamiento de un tic tiene un gran impacto en el resultado del procesamiento del siguiente tic. A grandes rasgos, en 4 hilos puedes conseguir 4 operaciones comerciales simultáneas en lugar de una en el primer tick

 
olyakish:

Hola.

Por favor, díganme cómo interpretar el gráfico de balance/patrimonio neto de este ejemplo


Por qué en un punto los gráficos divergen a la vez, y convergen en momentos diferentes (en el mismo nivel de "y"). Parece que en el momento de abrir el gráfico de saldo no se sabe que va a aumentar.

O tal vez no entiendo algo.

Gracias.


en la barra en la que se abrió la operación el precio subió y la operación entró en rojo, pero no se cerró - se produjo un drawdown, en las siguientes barras se "movió a la derecha" y tal vez en la última o penúltima barra bajó el precio de cierre y por lo tanto la equidad se hizo más alta que el resultado final, en la última barra se cerró la operación y la equidad se hizo igual al saldo

Y tenías dos operaciones, una con beneficios y la otra cerrada con cero, pero la equidad seguía oscilando.

 
Rosh:
No hay funciones preparadas para esto en el lenguaje, pero la Biblioteca Estándar tiene La clase base del objeto CArrayObj
Gracias por las respuestas.
 
Lazarev:

en la barra en la que se abrió la operación el precio subió y la operación entró en rojo, pero no se cerró - se produjo un drawdown, en las siguientes barras se "movió a la derecha" y tal vez en la última o penúltima barra bajó el precio de cierre y por eso la equidad se hizo más alta que el resultado final; en la última barra se cerró la operación y la equidad se hizo igual al saldo

Y tenías dos operaciones, una era rentable y la otra se cerraba con cero de patrimonio que seguía oscilando

>En la misma barra en la que se abrió la operación, el precio subió y la operación bajó pero no se cerró: se produjo un drawdown,

detracción de fondos sobre el patrimonio, pero no sobre el saldo. => el saldo debe estar en una sola línea (no cambiar)

>Tiene dos operaciones, una de las cuales resultó ser una ganancia y la otra se cerró con una equidad cero (sin embargo, la equidad seguía oscilando).

En realidad se trata de una operación que consiste en vender (abrir una posición de venta) y comprar(cerrar una posición de venta)

 
papaklass:

2. Deberías ponerte a mi nivel y explicarme a mí y a otros como yo, sin esnobismos, en un lenguaje que pueda entender. ¿Por qué en un probador, en una sola ejecución, no se puede utilizar toda la potencia del ordenador? Creo que la parametrización de los manejadores de eventos también se puede referir al mismo tema.

Acabo de intentar explicártelo. No se pueden procesar ticks consecutivos en paralelo, porque el resultado del procesamiento de un tick afecta al procesamiento del siguiente.

¿Dónde se pueden utilizar los cálculos paralelos en un probador? Sólo en el cálculo de los indicadores. Mientras se procesa un tick, calculamos los valores de los indicadores para los siguientes. Moriremos en la sincronización y el despacho y no obtendremos ningún beneficio. Hemos dedicado (y seguimos dedicando) mucho tiempo a aumentar el rendimiento del sistema, y también hemos considerado esta posibilidad.

La parametrización de los manejadores de eventos es un asunto ligeramente diferente. Y aún no hemos renunciado a los eventos parametrizados

 
Funciones de conversión de tipo int estándar a Ejemplo

doubleMathRound(
valor doble//valor redondeado
);

Devuelve errores dobles pero las advertencias son muy molestas

posible pérdida de datos debido a la conversión de tipo Tester.mqh 192 20

0 error(es), 22 advertencia(s) 1 23

¿Hay algún método de solución?

Документация по MQL5: Основы языка / Типы данных / Приведение типов
Документация по MQL5: Основы языка / Типы данных / Приведение типов
  • www.mql5.com
Основы языка / Типы данных / Приведение типов - Документация по MQL5
 
ivandurak:

¿Hay algún método para evitar el .spz

Indique los tipos de forma explícita. Entonces no habrá avisos.

Es decir

int i = int(MathRound(5.5));
или
int i = (int)MathRound(5.5);
 

papaklass:

2. Deberías ponerte a mi nivel y explicarme a mí y a otros como yo, sin esnobismos, en un lenguaje que pueda entender. ¿Por qué en un probador, en una sola pasada, no se puede utilizar toda la potencia del ordenador? La parametrización de los manejadores de eventos, creo que también se puede referir al mismo tema.

1. Se puede hacer una parametrización. Pero es caro para los desarrolladores y obviamente no es una prioridad.

2. Realmente no se puede implementar threading en esta orquestación. No sólo será costoso en tiempo y otros recursos, sino que en forma de solución estándar causará muchos problemas a la mayoría de los usuarios (que obviamente no son programadores profesionales).

Hay que cambiar la arquitectura de la propia plataforma o crear algo muy engorroso y asociado a recursos y tecnologías adicionales.

Razón de la queja: