Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 273

 

Buenos días a todos. ¿Alguien se ha ocupado de la visualización de los indicadores durante las pruebas en modo visual? ¿Es posible ocultarlos durante las pruebas? Realmente quiero ver cómo funciona el arrastre, pero debido a la gran cantidad de indicadores el gráfico de visualización es muy pequeño y tengo que parar y minimizar manualmente todas las ventanas de los indicadores durante cada prueba. La documentación de https://www.mql5.com/ru/docs/runtime/testing#indicatorrelease dice que

Для того чтобы запретить показ индикатора на графике после завершения одиночного тестирования, используйте функцию IndicatorRelease() в обработчике OnDeinit().

No encuentro información sobre cómo ocultar los indicadores durante las pruebas.

Документация по MQL5: Программы MQL5 / Тестирование торговых стратегий
Документация по MQL5: Программы MQL5 / Тестирование торговых стратегий
  • www.mql5.com
Программы MQL5 / Тестирование торговых стратегий - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
jommerbot:


Pero no he encontrado ninguna información sobre qué hacer si quieres ocultar los indicadores durante las pruebas.

Esto se debe a que no hay ninguno.

https://www.mql5.com/ru/search#!keyword=HideTestIndicators

 

¿Pueden decirme si un broker puede saber si un trader o un robot está operando (MT4)? Antes parecía que no podía, pero ahora... Sólo hay una condición en uno de los concursos de comerciantes:

1.4 La competencia es una competencia entre comerciantes. Por lo tanto, en particular, no se permiten las estrategias automatizadas que no implican a un humano (operador) para tomar una decisión basada en la situación actual del mercado.


Si utilizo un Asesor Experto, ¿me quemará o no?)

Le pregunté a su gerente, y evitó responder, cómo pueden determinar quién está comerciando.

 
Crucian:

¿Pueden decirme si un broker puede saber si un trader o un robot está operando (MT4)? Antes parecía que no podía, pero ahora... Sólo hay una condición en uno de los concursos de comerciantes:

Si utilizo un Asesor Experto, ¿me quemará o no?)

Al preguntarle a su gerente, evita responder cómo pueden saber quién está comerciando.

He visto esas condiciones en los concursos. El broker puede bloquear la función de auto-trading en la plataforma y el EA puede no iniciarse para usted.
 
papaklass:

Por supuesto que sí.

Si no pudiera, no estaría escribiendo. :)

Sólo hay una manera de saber si una orden es colocada por un EA: un número mágico distinto de cero.
 
stringo:
Sólo hay una manera de saber si una orden es colocada por un EA: un número mágico distinto de cero.

Y si tengo un mago en el EA:

int mag=NULL;

¿nadie en el DC podrá determinar que es un EA?

 
rosomah:

Y si tengo un mago en mis EAs:

int mag=NULL;

¿nadie en la empresa de corretaje lo reconocerá como un EA?

Probablemente se debería establecer int mag != NULL; (no igual a 0).

¿Y qué magnetismo debe asignarse a la orden?

¿Alguno? Eso también sería un lío.

 
Crucian:

Probablemente haya que poner int mag != NULL; (no igual a 0).

¿Y qué magnetismo debe asignarse a la orden?

¿Alguno? Eso también sería un disparate.

int mag != NULL; -este modo no compilará en el probador.

int mag = NULL; -este camino va fácilmente. Si lo comprobamos a través de la alerta devolverá "0".

int mag = EMPTY_VALUE; -esto también funciona. Aquí devuelve"-2147483648".

Alert("mag=",mag);

Ahora lo he probado en el probador en MQL4 y MQL5. Funciona en el probador.

En cuanto al código real, me queda abierta la pregunta de qué debemos hacer para que una empresa de corretaje no sienta el Asesor Experto, al menos según los parámetros de entrada. Por supuesto, podemos hacerlo sin pedidos parciales.

 
rosomah:

int mag != NULL; -no compila en el probador.

int mag = NULL; -funciona fácilmente. Si lo compruebas con las alertas devolverá "0".

int mag = EMPTY_VALUE; -esto también funciona. Aquí devuelve"-2147483648".

Alert("mag=",mag);

Ahora lo he probado en el probador en MQL4 y MQL5. En el probador va.

En cuanto al código real, me queda abierta la pregunta de qué debemos hacer para que una empresa de corretaje no sienta el Asesor Experto, al menos según los parámetros de entrada. Por supuesto, podemos hacerlo sin usar órdenes.

NULL es un identificador especial que se utiliza cuando se trabaja con tipos de referencia (punteros a objetos). El entero (int) es un tipo significativo. Los tipos significativos no pueden referirse a nada, en particular al identificador NULL, sólo pueden pasarse por referencia. Por lo tanto, la comparación de un tipo significativo con un tipo de referencia es incorrecta. Además, es imposible equiparar un tipo significativo con un tipo de referencia. La razón por la que este código es compilable es porque el compilador convierte implícitamente NULL a un tipo significativo "0" y luego equipara la variable mag a él. La única solución verdadera es simplemente comparar el número mágico de una orden u operación con cero. Si este valor es diferente de cero, podemos concluir que esta orden ha sido colocada por el EA:

ulong magic = HistoryOrderGetInteger(order_id, ORDER_MAGIC);

if(magic != 0)

   printf("Ордер выставлен экспертом");

else

   printf(Ордер выставлен вручную); 

 

¡¿Por dónde empiezo?! Acabo de inscribirme

Razón de la queja: