Discusión sobre el artículo "Qué comprobaciones debe superar un robot comercial antes de ser publicado en el Mercado" - página 13

 
Sergei Stakhanov:
¡Buenas tardes compañeros traders! Quiero añadir un Asesor Experto al mercado, lo escribió mi amigo, lo tengo en código abierto. Cuando lo añado me da este error. ¿Alguien me puede decir si es realista arreglarlo para una persona que no tiene muchos conocimientos de programación y lo difícil que es quitarlo? ¡Gracias de antemano, beneficios a todos!

Este error se puede arreglar en tres minutos. Si tuvieras al menos un poco de conocimiento, lo dirías con palabras. En tu caso, necesitas ver el código para añadir lo que necesitas en el lugar correcto.
Sin embargo, intentaré darte una pista sin el código.
1. 1. Busca en tu código dónde se encuentra la función de modificación.
2. Busca la línea que especifica el nivel de TP o SL para la modificación
3. Añade (aproximadamente) lo siguiente:

if(OrderTakeProfit()>0 && tp==OrderTakeProfit()) return(true);

// y/o

if(sl==OrderStopLoss()) return(true);

/*
Las variables que se comparan deben estar normalizadas. 
He eliminado la normalización aquí para no saturar el código.
*/
Puede utilizar sólo una idea de estos fragmentos de código, es probable que tenga una estructura de código diferente y otros nombres de variables.
La esencia de la comprobación es simple:
- compare los niveles TP o SL con los existentes. Si los niveles son los mismos - salir sin modificar.
El error desaparecerá.


En lugar de normalizar las variables, es mejor utilizar esta construcción:
.
if(MathAbs(tp-OrderTakeProfit())<1*Point) return(true);
Traducido al ruso significa:
"Si la diferencia entre el precio TP (o SL) fijado para la modificación y el existente en la operación es menor de 1 pip - salir sin hacer nada"
.
 
test on EURUSD,H1 (netting)
strategy tester report 13 total trades
test on XAUUSD,D1 (netting)
 2020.02.20 17:00:37   failed cancel order #260  sell stop 0.6 XAUUSD at 1616.33 [Invalid stops]
 2020.02.20 18:03:40   failed cancel order #332  sell stop 0.6 XAUUSD at 1618.98 [Invalid stops]
 2020.02.25 13:57:55   failed cancel order #847  sell stop 0.6 XAUUSD at 1644.53 [Invalid stops]
 2020.02.25 14:11:30   failed cancel order #881  sell stop 0.6 XAUUSD at 1646.65 [Invalid stops]
 2020.02.25 16:03:15   failed cancel order #972  sell stop 0.6 XAUUSD at 1651.10 [Invalid stops]
 2020.02.25 17:22:41   failed cancel order #1007  sell stop 0.6 XAUUSD at 1652.99 [Invalid stops]
 2020.02.25 17:52:40   failed cancel order #1070  sell stop 0.6 XAUUSD at 1655.53 [Invalid stops]
strategy tester report 458 total trades

Buenas tardes compañeros, ¿cómo se sortean estos errores?

El aplazamiento está configurado, entiendo que surgen problemas al intentar anularlo. No puedo reproducirlo en el tester.

 
Alexandr Gavrilin:

Buenas tardes compañeros, ¿cómo se sortean estos errores?

El aplazamiento está configurado, entiendo que surgen problemas al intentar anularlo. No puedo reproducirlo en el tester.

En el tester se puede hacer de todo. Para ello es necesario utilizar el botón mágico y editar el símbolo: Detiene el nivel, Congelar el nivel....

 
Vladimir Karputov:

¡Puedes hacer cualquier cosa en el probador! Para ello es necesario utilizar el botón mágico y editar el símbolo: Paradas de nivel, Congelar nivel ....

vive y aprende, yo sabré.

 
Mi indicador es el mapa de calor para deriv syntethic índice como el índice de volatilidad y el accidente de auge y el informe de prueba que muestra la prueba faild en eurusd mi indicador es sólo para mostrar la fuerza de la tendencia de la tendencia no sé por qué la prueba en eurusd adjunto el discrption y captura de pantalla, pero todavía no
 

Hola.

¿Qué tipo de error es este?

¿alguien se lo ha encontrado?

Añadido

Ahora esto es así

¿Hay alguna función para comprobarlo?

Añadido

Ahora es así

Añadido

prohibido el comercio de oro

if(_Symbol=="XAUUSD")return;

y puenteado el autovalidador


 
Denis Nikolaev:

Hola.

¿Qué tipo de error es este?

¿alguien se lo ha encontrado?

¿operaste con oro en el primer tick del día a un precio torcido? ¿el robot olvidó que hay un stop y volvió a cerrar?

Enciende el terminal y opera con las manos, ayuda mucho.

 
Maxim Kuznetsov:

¿operó con oro en el primer tick del día a un precio torcido? ¿el robot olvidó que había un stop y volvió a cerrar?

enciende el terminal y opera con las manos, ayuda mucho.

gracias, pero ¿cómo lidiar con los errores?

añadir modo especial "only_autovalidation"?

 
Denis Nikolaev:

Gracias, pero ¿cómo se solucionan los errores?

¿añadir modo especial "only_autovalidation"?

El "comprobar el espacio en disco" obviamente se soluciona aumentando el disco o disminuyendo el rango comprobado. Lo dice ahí mismo...

 
Maxim Kuznetsov:

Lo de "comprobar espacio en disco" obviamente se soluciona aumentando el disco o disminuyendo el rango comprobado. Lo dice ahí mismo....

Lo siento, es comprensible, por eso necesitamos un modo especial sólo para la autovalidación.