Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Espero que se le oriente más.
Quark
admite que entre(GlobalVariableGet(strTradeSemaphore) == 0.0) y GlobalVariableSet(strTradeSemaphore, 1.0); otro EA entrará. Necesitamos una función que capture e inhiba el hilo de ejecución (es decir, que espere el recurso) y luego devuelva el control al Asesor Experto. Algo así como WaitForExclusive()
. Aunque, tal vez, no sea la cuestión. Pero los errores siguen apareciendo, por desgracia.
Espero recibir ayuda.
Por cierto, ahora que se ha iniciado esta conversación, ¿cómo puedo determinar automáticamente cuántos dígitos dejar para el precio utilizando NormalizeDouble, es decir, 4 para EURUSD, 2 para EURJPY...? ?
Error 138. Varias veces por minuto (es decir, varios de los 12 Asesores Expertos lo generan).
Error 129. Estaba racionando los precios y haciendo muchas otras cosas...
y su Asesor Experto con mi 5 me dio un error - 6.
mi Asesor de Expertos no funciona en mi corrección - que se echó a perder en esta construcción =)
oh sí... mi 5 tampoco funciona =)))) aquí vamos...
y su Asesor Experto con mi 5 dio un error - 6.
mi Asesor de Expertos no funciona en mi corrección - que se echó a perder en esta construcción =)
oh sí... mi 5 tampoco funciona =)))) oh man...
Gracias por el código, me habría llevado mucho tiempo encontrarlo yo mismo.
El experto sugerido por Slava y mejorado :) por mí se da a continuación. Puedes hacerlo como yo: en 12 ventanas, con 12 monedas. Funciona para cualquier plazo, pero es más rápido en los minutos). Sigo recibiendo errores, maldita sea. Me gustaría saber por qué.
. Aunque, tal vez, no sea la cuestión. Pero, por desgracia, los errores siguen apareciendo.
esto es exactamente lo que quería decir sobre la hipotética función GlobalVariableSetOnCondition, que podría establecer la variable global como primer parámetro, siempre que su valor sea igual al valor del segundo parámetro. como el acceso a las variables globales está bloqueado, dará "atomicidad"
ahora sobre la función IsStopped. comprueba la bandera de parada, por lo que el EA podría parar normalmente (tiene 2,5 segundos para ello). se recomienda utilizar esta función como una de las condiciones de bucle, especialmente infinito
Slava, por mi vida, no entiendo este texto. Por favor, explíquelo con otras palabras, o muéstreme lo que quiere decir. Si puedes.
Por cierto, ¿qué hay de malo en el código que he reescrito? Es decir, está claro que algo falla porque no funciona, pero no veo el error. Según mi corazonada, esto es lo que debería haber proporcionado el acceso exclusivo...
именно так. я поэтому и говорил про гипотетическую функцию GlobalVariableSetOnCondition, которая могла бы устанавливать глобальную переменную первым параметром при условии, что значение её равно значению второго параметра. так как доступ к глобальным переменным блокируется, то это даст "атомарность"
Slava, por mi vida, no entiendo este texto. O lo explicas con otras palabras, o me muestras lo que quieres decir. Si puedes.
Estamos hablando de prevenir la posibilidad de calce entre las llamadas de las funciones GlobalVariableGet y GlobalVariableSet. el calce por parte de otro Asesor Experto es real ya que se siguen observando errores. por eso hablo de acceso atómico. usted y yo estamos hablando de resolver un mismo problema pero con palabras diferentes
.
Por cierto, ¿qué es lo que falla en el trozo de código que he rehecho? Es decir, está claro que algo falla ya que no funciona, pero no veo el error. Según mi corazonada, esto es lo que debería haber proporcionado el acceso exclusivo...
Su ejemplo es mejor