Errores, fallos, preguntas - página 131

 
Dmitriy2:

el código se inserta, el archivo no se adjunta


Se han hecho correcciones.

Por favor, inténtalo de nuevo.

 
alexvd:

Se cuelga por el bucle infinito.

Tienes la única manera de salir del bucle: por ruptura. Pero la ruptura que tienes se produce cuando se cumple una determinada condición. Uno de los componentes

Se obtiene el mango del indicador dentro de la función cada vez y se copia sin comprobar si los datos están listos.

Sugerencia.

1. Lleva la variable del mango al nivel global.

2. Recibir el mango del indicador en OnInit (de todas formas no se cambian los parámetros de la parábola).

3. Antes de copiar los datos del buffer del indicador, compruebe su disponibilidad (calculabilidad) - la función BarsCalculated (Parabolic) le ayudará.

4) Organizar la salida del ciclo, si no se hace el punto 3. 3 no se cumple.

2. no está cambiando en el ejemplo de prueba, de hecho esta función se utiliza todo el tiempo con diferentes parámetros, es por eso que tengo el mango no en OnInit

3. lo comprobaré, es que no entiendo muy bien para qué lo necesito, la condición es tal que no puede fallar, una serie de puntos parabólicos son las barras más cercanas, definitivamente deben ser subidas (y en general, entiendo que el historial se sube al probador un año antes de la fecha especificada de inicio de la prueba). Realmente funciona bien. Funciona en MQL4 tanto en real como en el tester (aunque no hay una función parabólica separada, sino que está incorporada...).

 
alexvd:

Se han hecho correcciones.

Inténtalo de nuevo.

Sí, ha funcionado, gracias.
 
Dmitriy2:

2. no cambia en el ejemplo de prueba, y de hecho esta función se utiliza todo el tiempo con diferentes parámetros, por lo que obtengo el mango no en OnInit

3. Ok, voy a hacer una comprobación, es que no entiendo muy bien el punto, la condición es tal que no puede fallar, una serie de puntos parabólicos son las barras más cercanas, definitivamente deben ser subidas (y en general, entiendo que el historial se sube al probador un año antes de la fecha de inicio de la prueba especificada). Realmente funciona bien. Funciona en MQL4 tanto en real como en el probador (aunque hay una función parabólica incorporada, no una separada).

3. Ya se discutió y describió en la referencia(https://www.mql5.com/ru/docs/series/barscalculated), por qué es necesario.

Nota

Esta función es útil cuando se desea obtener los datos del indicador justo después de su creación (para obtener un asa del indicador).

Este es su caso.

El indicador se calcula a partir de los datos de la barra. Las barras están ahí, pero los datos calculados pueden estar ausentes.

Документация по MQL5: Доступ к таймсериям и индикаторам / BarsCalculated
Документация по MQL5: Доступ к таймсериям и индикаторам / BarsCalculated
  • www.mql5.com
Доступ к таймсериям и индикаторам / BarsCalculated - Документация по MQL5
 
Rosh:
Esto significa que esta posición es el resultado de varias operaciones en este instrumento. En consecuencia, se ve el precio medio ponderado de la posición.
Pensaba queel precio medio ponderado sólo se refería a los indicadores técnicos... creo que no siempre puedo conseguir que llegue a 0 en el probador durante las ejecuciones... a veces todavía sobresalen algunos céntimos
 
alexvd:

3. El motivo por el que se necesita ya se ha discutido muchas veces y se describe en la ayuda(https://www.mql5.com/ru/docs/series/barscalculated).

Este es su caso.

El indicador se calcula sobre los datos de la barra. Las barras están ahí, pero los datos calculados pueden no estarlo.

Sí, lo tengo con BarsCalculated, gracias.

Pero de todos modos es lógicamente incorrecto que funcione y no funcione en el probador. Es necesario tener todas las comprobaciones ya construidas en el probador, y si la petición va a algún dato y no está ahí, entonces aparecerá el error. Pero el probador tiene barras, pero por alguna razón no puede calcular los datos y se queda callado...

 
maryan.dirtyn:
Creía queel precio medio ponderado era sólo un indicador técnico... No siempre me sale el 0 cuando lo ejecuto en el Probador de Estrategias... A veces pueden aparecer algunos céntimos.

Media ponderada por volumen. Por ejemplo, hubo tres operaciones en el EURUSD:

Oferta
Volumen
Precio
Comprar EURUSD
0,1 lote
1.2800
Comprar EURUSD0,2 lotes
1.3400
Comprar EURUSD0,3 lotes
1.2000
Total: Posición larga en EURUSD
0,6 lote
?


Como resultado, tenemos una posición en el EURUSD con un volumen de 0,6 lotes, pero ¿a qué precio?

 
Rosh:

Media ponderada por volumen. Por ejemplo, hubo tres operaciones en el EURUSD:

Oferta
Volumen
Precio
Comprar EURUSD
0,1 lote
1.2800
Comprar EURUSD0,2 lotes
1.3400
Comprar EURUSD0,3 lotes
1.2000
Total: Posición larga en EURUSD
0,6 lote
?


Terminamos con una posición en el EURUSD de 0,6 lotes, pero ¿a qué precio?

¿No sería más fácil redondear el precio al nivel de precisión de la moneda a nivel del servidor? Después de todo, el Asesor Experto tendrá que ocuparse del ajuste de la precisión y del precio por punto...
 
Interesting:
¿No sería más fácil redondear el precio al nivel de precisión de la moneda a nivel del servidor? Después de todo, cualquier EA tendría que sufrir con el ajuste en la precisión y el precio por punto...
¿Por qué iba a molestarse el EA? Este precio medio ponderado será necesario para calcular el cierre de posiciones. El Asesor Experto no lo necesitará. Todavía tiene que cerrar la posición a un precio normal con el número necesario de dígitos para este símbolo.
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы - Документация по MQL5
 
Rosh:
¿Por qué debe sufrir el Asesor Experto? Este precio medio ponderado es necesario para calcular el cierre de las posiciones. No tiene ninguna utilidad para el Asesor Experto. Tendrá que cerrar la posición a un precio normal con el número de signos necesario para este símbolo.

En algunos casos, hay que tener un valor de precio normalizado, independientemente de cómo se reciba el precio.

Es más fácil hacer la normalización del lado del servidor mientras el servidor recalcule el precio de apertura de todos modos (al menos en mi opinión).


Por cierto, ya que hablamos de precio medio ponderado y plataforma de compensación.

Según tengo entendido, hay dos modelos de recorte (cierre parcial) de una posición perdedora que se cerró previamente:

1. No fijar la pérdida en el cierre parcial, sino simplemente recalcular el precio de apertura (si no me equivoco, eso es lo que hace el FC);

2. dejar el precio de apertura sin modificar, fijando la pérdida.

Lo mismo ocurre con la inversión de posiciones perdedoras


Quiero saber la opinión de los desarrolladores sobre qué método se estandarizará finalmente en MT5, si es posible por qué...

Razón de la queja: