Errores, fallos, preguntas - página 529

 

Mi pregunta ya ha volado). Lo diré de nuevo.

tol64:
Почему то между 2001 и 2006 годом не тестируются эксперты. Смотрел по евро и фунту. Закрыл терминал, удалил историю. Закачалась заново. Всё равно. До 2001 сделки открываются. А начиная с 2001 по 2006 при наличии сигналов пропуск. Почему?

---
Дополнительная информация. Это происходит только, если в настройках тестера выбран таймфрейм D1. Если выбрать таймфрейм D1 в настройках эксперта, а в настройках тестера меньший ТФ, то пропуска нет. Это баг или есть какое-то этому объяснение? 

¿Alguien se ha encontrado con un problema similar?
 
Yedelkin:
Pues bien, echa un vistazo al código dado por el autor. Y en qué caso se llama a PositionGetDouble :)

Bueno, sí, obtenemos los datos después de haber determinado que no hay posiciones en principio y la selección de una posición particular ha fallado...

Esto es algo extraño.

 
papaklass:

A Vedelkin.

Una vez más. La referencia dice que para garantizar datos de posición frescos, se recomienda llamar a la función PositionSelect( Symbol() ) justo antes de llamarlos. El código que he proporcionado aquí refuta esta afirmación. Lógicamente, el código en sí mismo es absurdo, pero subraya lo incorrecto de la declaración en la ayuda.

Ahora:

Y el error es que la función PositionGetDouble(POSITION_VOLUME) debería devolver cero si no hay posición. Eso es todo. EN MI OPINIÓN.

No, teequivocas....

Devuelve cero si hay(PositionSelect() ) posición con volumen=0.

¿Ocrees que si no hay posición, debe devolver cero y el precio de apertura =0?

 
papaklass:

Y el error es que la función PositionGetDouble(POSITION_VOLUME) debería devolver cero si no hay posición.

:) El "fallo" es que, en ausencia de una posición abierta, no tiene sentido solicitar sus datos y hacer otros cálculos basados en ellos.

Digamos que se sabe con seguridad que no hay posición. Entonces, ¿por qué solicitar sus datos (para hacer pasos adicionales), si ya sabe que no hay posición? Es más fácil reescribir el código un poco.

papaklass:

Una vez más. La referencia dice que para garantizar la adquisición garantizada de datos de posición frescos, se recomienda llamar a la función PositionSelect( Symbol() ) justo antes de llamarla. El código que he proporcionado aquí refuta esta afirmación. Lógicamente, el código en sí mismo es absurdo, pero enfatiza la incorrección de la declaración en la ayuda.

El código anterior sólo dice que el autor "para garantizar datos frescos" llama a la función PositionSelect(), la función informa de su fracaso, pero el autor sigue requiriendo datos de posición frescos. ¿Es correcto?

Pero luego tenemos lo siguiente:

  • (a) el fallo de la función
  • PositionSelect
  • significa que los datos de posición frescos no se han copiado en el entorno del software (como el autor desearía);
  • y (b) las llamadas posteriores a PositionGetDouble, PositionGetInteger y PositionGetString devolverán los datos copiados una vez cuando la función PositionSelect tuvo éxito
  • .

En otras palabras, los desarrolladores recomiendan llamar a la función para seguir trabajando con datos de posición frescos cuando la función se completa con éxito, y no prometen nada en absoluto si la función devuelve false. ...Al recibir false, los desarrolladores recomiendan procedimientos algo diferentes :)

2. Además, consideremos una nueva versión del código:

if(PositionSelect(Symbol()))
   {//---еще одно непосредственное обращение
      //---например, расчитываем объем позиции при доливки
   } 
else 
   {
      //---например, расчитываем объем позиции при отсутствии позиции
   }

Aquí, si la función PositionSelect() falla, nos pide "calcular la cantidad de posición cuando no hay posición". ¿Pero quién dice que el fallo de la función PositionSelect() significa automáticamente que no hay posición? Las razones del fracaso de la función PositionSelect( ) pueden ser diferentes.

 

Me gustaría molestar a los desarrolladores una vez más...

Quiero contar mediante un dibujo que es de vital importancia poder eliminar lasórdenes pendientes cuando se alcanza un determinado precio. Como comerciante de MT4, estoy mucho más interesado sin tal opción. Por favor, dígame cuáles son sus planes futuros en esta dirección. Gracias.

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
Archivos adjuntos:
zhq04b2p01.png  16 kb
 

El terminal se bloquea muy a menudo cuando se trabaja con el probador.

 
tol64:

El terminal se bloquea muy a menudo cuando se trabaja con el probador.

Los fallos del terminal se comunican a los desarrolladores de forma regular en modo automático. Pero si quieres, puedes hacer una solicitud al CD con todos los detalles y adjuntar los registros.
 
tol64:

El terminal se bloquea muy a menudo cuando se trabaja con el probador.

Describa su situación en detalle al Servicio de Atención al Cliente, especificando

  • Parámetros de entrada del Asesor Experto durante la prueba
  • Colocar el indicador (el indicador se retirará después de la fijación).
 
Interesting:
Parece que los informes de fallos del terminal llegan automáticamente a los desarrolladores con regularidad. Pero si quieres, puedes hacer una solicitud a la CA, donde especificas todos los detalles y adjuntas los registros.
Entonces, ¿esa información que está en Detalles>> se envía automáticamente a los desarrolladores si Internet? Si es así, es genial. Todo debería estar automatizado)).
 
ALozovoy:

Describa su situación en detalle al Servicio de Atención al Cliente, especificando

  • Parámetros de entrada del Asesor Experto durante la prueba
  • Colocar el indicador (el indicador se retirará después de la fijación).

Bien, lo haré más tarde.
Razón de la queja: