Errores, fallos, preguntas - página 3132

 
Yury Lemeshev #:

Hay un problema, aparece de forma aleatoria y ocasional.

Aparece cuando se trabaja en el probador con varias monedas.

En cada ciclo solicito los precios reales de los símbolos. Si por alguna razón el comprobador no recibe cotizaciones para un símbolo concreto, utiliza las cotizaciones obtenidas anteriormente para otro símbolo.

Debería abrir una posición si el precio es superior al especificado. Debería abrir la posición si tengo datos erróneos de otro símbolo.

El símbolo EURCAD se abre si el precio está por encima de 1,45117. 1,74425>1,45117? Sí, es más alto pero es el precio de otro símbolo.

Hemos detectado 7 órdenes de error de un total de 500.

Sólo puedo especular que la solicitud de precio del símbolo, la respuesta se lanza en una misma variable de entorno. Sólo una comprobación rápida para ver si es igual al valor anterior. Si es otro símbolo es igual a muy pocas veces.

 
Yury Lemeshev #:

No hay ningún error en el código, el código fue reescrito para eliminar el error, y el error no aparece regularmente, es completamente caótico

Los milagros no ocurren en este mundo... Aquí está uno de los telépatas que aún no está de juerga y que también habla de un error.

 
Yury Lemeshev #:

Hay un problema, aparece de forma aleatoria y ocasional.

Aparece cuando se trabaja en el probador con varias monedas.

En cada ciclo solicito los precios reales de los símbolos. Si por alguna razón el comprobador no recibe cotizaciones para un símbolo concreto, utiliza las cotizaciones obtenidas anteriormente para otro símbolo.

Debería abrir una posición si el precio es superior al especificado. Debería abrir la posición si tengo datos erróneos de otro símbolo.

El símbolo EURCAD se abre si el precio está por encima de 1,45117. 1,74425>1,45117? Sí, es más alto pero es el precio de otro símbolo.

Hemos detectado 7 pedidos erróneos de un total de 500.

La respuesta está en la propia pregunta. El robot puede utilizar citas irrelevantes o datos erróneos de otro símbolo. No sé de qué se trata exactamente. Pero es obvio que algo está mal en el código...

 
Mihail Matkovskij #:

La respuesta está en la propia pregunta. El robot puede utilizar citas irrelevantes o datos incorrectos de otro símbolo. No sé cuál es la idea, por supuesto. Pero es evidente que algo no funciona en el código.

Hay algo mal en el código. Hay lagunas en la lógica. Las jambas parpadeantes en general son difíciles de prever y rechazar.

 
2021.12.31 22:14:19.911 2019.01.24 18:50:09 -2117- EURGBP 0.86993
2021.12.31 22:14:19.912 2019.01.24 18:50:10 -2117- EURGBP 0.86994
2021.12.31 22:14:19.912 2019.01.24 18:50:10-2117- EURGBP 1.5969
2021.12.31 22:14:19.912 2019.01.24 18:50:10 compra instantánea 0.01 EURGBP a 0.86993 (0.86985 / 0.86993 / 0.86985)
2021.12.31 22:14:19.912 2019.01.24 18:50:10 operación #13 comprar 0.01 EURGBP a 0.86993 hecho (basado en la orden #13)
2021.12.31 22:14:19.912 2019.01.24 18:50:10 trato hecho [#13 comprar 0.01 EURGBP a 0.86993]
2021.12.31 22:14:19.912 2019.01.24 18:50:10 orden realizada comprar 0.01 a 0.86993 [#13 comprar 0.01 EURGBP a 0.86993]

Cada ciclo está bien, pero en el momento en que se sustituyen los datos de otro símbolo. 1,5969>0,88506 sí, la posición se abre. No se trata de un error de código. Se trata de un error en el probador.

euSY01b=0;euSY01a=0;
   if(SymbolInfoDouble(euSY01,SYMBOL_BID,euSY01b)==true && SymbolInfoDouble(euSY01,SYMBOL_ASK,euSY01a)==true && euSY01b>0 && euSY01a>0)
      {
      GlobalVariableSet("["+MAGICs+"] "+euSY01+" LAST BID",euSY01b);GlobalVariableSet("["+MAGICs+"] "+euSY01+" LAST ASK",euSY01a);
      }
 
Valeriy Yastremskiy #:

En el código todo es así. Hay lagunas en la lógica. Las articulaciones parpadeantes en general son difíciles de prever y evitar.

¿qué crees que es la lógica sin código?

 
Yury Lemeshev #:
2021.12.31 22:14:19.911 2019.01.24 18:50:09 -2117- EURGBP 0.86993
2021.12.31 22:14:19.912 2019.01.24 18:50:10 -2117- EURGBP 0.86994
2021.12.31 22:14:19.912 2019.01.24 18:50:10-2117- EURGBP 1.5969
2021.12.31 22:14:19.912 2019.01.24 18:50:10 compra instantánea 0.01 EURGBP a 0.86993 (0.86985 / 0.86993 / 0.86985)
2021.12.31 22:14:19.912 2019.01.24 18:50:10 operación #13 comprar 0.01 EURGBP a 0.86993 hecho (basado en la orden #13)
2021.12.31 22:14:19.912 2019.01.24 18:50:10 trato hecho [#13 comprar 0.01 EURGBP a 0.86993]
2021.12.31 22:14:19.912 2019.01.24 18:50:10 orden realizada comprar 0.01 a 0.86993 [#13 comprar 0.01 EURGBP a 0.86993]

Cada ciclo está bien, pero los datos de otro símbolo se sustituyen en el momento. 1,5969>0,88506 sí, la posición se abre. No se trata de un error de código. Se trata de un error en el probador.

A continuación, compruebe la sincronización del símbolo antes de entrar en la búsqueda de señales.

 
Mihail Matkovskij #:

¿Qué crees que es la lógica sin código?

Enunciado del problema/localización - algoritmo de solución o lógica de solución - código. Desgraciadamente, esto no suele entenderse aquí en el modo "uno para todos". La codificación comienza antes de que se formule claramente el problema, ni siquiera el algoritmo de solución. Por supuesto, la lógica de que cualquier consulta se ejecuta siempre es incorrecta no sólo en el probador, sino también en la realidad. Por lo tanto, necesitamos las acciones correctas para evitar las consecuencias tóxicas de los eventos parpadeantes)) ¡¡¡¡Felices fiestas!!!!

 
Valeriy Yastremskiy #:

¡¡¡¡Felices fiestas!!!!

Gracias. Lo mismo digo.

En la esencia de la pregunta, arriba escribí lo que hay que hacer. Y entonces la lógica funcionará.

 
Mihail Matkovskij #:

entonces, compruebe la sincronización del símbolo antes de entrar en la búsqueda de la señal.

   if(SymbolIsSynchronized(euSY01)==true && SymbolInfoDouble(euSY01,SYMBOL_BID,euSY01b)==true && SymbolInfoDouble(euSY01,SYMBOL_ASK,euSY01a)==true && euSY01b>0 && euSY01a>0)

Si lo hace, y hay 7 líneas de este tipo en el código para siete pares, entonces el resumen del mercado sólo tendrá cotizaciones para una divisa.