[ARCHIVO]Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No puedo ir a ningún sitio sin ti - 5. - página 381

 

La sincronización también es un concepto relativo. ¿Sincronización de qué con qué? ¿Sincronización para el acceso atómico? ¿Y quién construirá la cola? Junko, tal vez su biblioteca construye la cola normalmente, si el código se toma de MSDN, porque todo se hace correctamente allí. Y lo has copiado sin entender lo que hace, como las gafas de un mono. O tal vez te lo estás inventando como siempre. Porque no lo entiendes. Confundes la sincronización para el acceso atómico con la puesta en cola.

 
Sepulca:
Compró un montón de núcleos de procesador. Y ahora cuál es el que hay que poner en cola para )))))))))

No, eso también vale para los procesadores de un solo núcleo, la multitarea es una función del sistema operativo.
 
Chiripaha:

Lo he comprobado con el aumento de PauseBar y he obtenido sólo estos palos en las barras de 1 y 5 minutos. Pero no entiendo cómo puentearlas correctamente. Entiendo lo que hay que escribir, probablemente (pero no obviamente) si el valor

в

el valor de las barras anteriores - algo así:

Pero cuando intento hacerlo, todo mi indicador se "mueve" - porque no entiendo la lógica y no puedo entender dónde ponerlo y bajo qué condiciones.


Esta variante funciona adecuadamente en el probador.
He trabajado de esta manera:

        if(FirstChanel) 
        { 
          if(Up[i-2]==0 && Down[i-2]==0)
          {
            Up[i-1]   = high;   
            Down[i-1] = low; 
          } 
          else
          {
            Up[i-1]   = Up[i-2];   
            Down[i-1] = Down[i-2]; 
          }  
        }

Y dondequiera que hubiera [i] desplazado hacia atrás 1 compás

Y aquí:

   Comment("DrawChannel =",DrawChannel,"\n",
           "limit =",limit); // изначально значение было равно 1
  
   limit = Bars-IndicatorCounted()-1; 
   if(limit >= 1)                    limit = Bars-1; // и это условие не выполнялось, поставил >= и начало считать
Archivos adjuntos:
 
Buen día. He vagado por el foro pero no he encontrado una respuesta definitiva, ¿es posible que mi Asesor Experto trabaje con varios pares de divisas a la vez? Creo que algunos sitios que venden EAs tienen esa posibilidad en sus descripciones, pero quiero asegurarme. Ya he empezado a trabajar con algunos pares de divisas y no sé cómo empezar a operar.
 
Trendy:

He vagado por el foro pero no he encontrado una respuesta definitiva, ¿es posible que un EA trabaje con varios pares de divisas a la vez?

Creo que algunos sitios que venden EAs tienen esa posibilidad en sus descripciones, pero quiero estar seguro.

es posible. el asesor sólo está limitado por el número de símbolos de su empresa de corretaje.

Si no has encontrado la respuesta, es porque tu pregunta es estúpida en esencia.

Si puedes, envíanos un enlace sobre cómo hacerlo

https://www.mql5.com/ru/code
 
Integer:


1. Debe tener problemas para entenderlo. Sé de lo que hablas.

2. Gracias, pero no he pedido consejo. Sobre todo porque estamos hablando de la sincronización de lo que ya no está en el mismo hilo.

¿Y qué es la ciencia de la sincronización? ¿Qué ciencia? ¿Su propia ciencia? Algún día lo entenderás, pero no es nada complicado. Los lenguajes de programación y los algoritmos no fueron inventados ni creados por tontos. Pero por alguna razón están provistos de medios de sincronización y cola.

4. Muy mal. Si es correcto....Si hubo sincronización. Pero en ese código que citaste aquí un poco antes no hay sincronización, sólo acceso atómico.

3. Según la ciencia de la programación de sistemas. Lee a Richter. Te ilustrará sobre las colas.

4. ¿Qué es la sincronización? Es el acceso atómico a un recurso. Mi código lo proporciona. La cola la construye el sistema. Los módulos se ejecutan proporcionalmente al tiempo de su ejecución. El orden de ejecución no es importante. Todo lo hace el sistema. Esto no es una invención de los tontos. Intenta demostrar lo contrario con un ejemplo concreto. Analiza el registro. Verá que todo se ejecuta correctamente, sin sus colas especiales.

Por cierto, MQL4, como lenguaje, tiene una función con acceso atómico. No hay ninguno en C++. Tienes que escribirlas tú mismo, como envoltorios de funciones WinAPI. Es mejor implementarlo en una clase.

Entero:

Una vez más, por si acaso, para los que están en un submarino en un tanque y todavía usan un casco. Aquí sólo se muestra el acceso atómico. El orden de las funciones aquí será como el viento sople. Este código no prevé una ejecución uniforme de las funciones. Por eso no hay garantía de que una función no se quede en la estantería durante mucho tiempo. Confiar en la capacidad de servicio en la programación sólo porque la frecuencia del procesador es alta es ridículo, incluso si la frecuencia del procesador es muy alta.

Una vez más para los que no están en el tanque. El sistema proporciona el orden de ejecución. ¿Qué es la ejecución uniforme? ¿Cómo se puede proporcionar una ejecución uniforme de hilos cuyo tiempo de ejecución y número son desconocidos? ¿Por qué molestarse en hacerlo? Ya han pensado por ti y lo han hecho. Puede utilizar objetos de sincronización.
Por supuesto, no excluyo los casos en los que se necesita una cola de hilos especial para ejecutar los hilos. Esto es algo muy complicado :-)) Debería evitar este tipo de código. Porque aquí hay una paradoja. ¿Por qué hay que ejecutar una tarea en varios hilos para tenerlos todos en uno? Utilizar la ejecución de un solo hilo. Entonces no necesitarás la sincronización.

Hay un caso más en el que se necesita una cola. Pero no la cola de ejecución de los hilos, sino el orden de procesamiento de los datos recibidos de los hilos (resultados de los hilos). Esta es la tarea más frecuente de las colas.

Entero:

La sincronización también es una noción relativa. ¿Sincronización de qué con qué? ¿Sincronización para el acceso atómico? ¿Y quién construirá la cola? Junko, tal vez tu cola de biblioteca se construye normalmente, si el código se toma de MSDN, porque todo se hace correctamente allí. Y lo has copiado sin entender lo que hace, como las gafas de un mono. O tal vez te lo estás inventando como siempre. Porque no lo entiendes. Confundes la sincronización para proporcionar acceso atómico y la cola.

Y de nuevo, para aquellos que... :-))

La sincronización consiste en proporcionar acceso atómico a un recurso. La cola la construye el sistema. La ejecución está garantizada, el orden no. En MSDN, el código es probablemente correcto, pero torpe. Escriba su propia clase para una conveniente sincronización. He escrito mi clase siguiendo el principio de la clase de Andrei Postnikov. Me enseñó amablemente a sincronizarlo correctamente. Es cierto que no es una clase. Tengo una clase para cada objeto de sincronización, una clase más de bloqueo para todo y un espacio de nombres para las funciones de espera.
En realidad, ya he respondido a todo lo anterior.

 

Junko, no tienes remedio. Si te cuesta pensar, no lo hagas, escúpelo del todo, no es lo tuyo...

Si algo no estuviera probado ni demostrado, no estarías discutiendo sobre ello. El problema es que tú, Vadim, eres incapaz de mantener una conversación constructiva. Al menos confirmas que la sincronización es sólo para el acceso atómico y no para la cola. Tú, Vadim, estás ahora discutiendo contigo mismo sin darte cuenta.

 
Integer:

Junko, no tienes remedio. Si te cuesta pensar, no lo hagas, escúpelo del todo, no es lo tuyo...

Si algo no estuviera probado ni demostrado, no estarías discutiendo sobre ello. El problema es que tú, Vadim, eres incapaz de mantener una conversación constructiva. Al menos confirmas que la sincronización es sólo para el acceso atómico y no para la cola.

¿Cómo puedo...? No soy programador, como algunos :-))
 
Zhunko:

La sincronización es la provisión de acceso atómico a un recurso.
La cola la construye el sistema.


Un gran aplauso. Sobre el tema del código de la página 378. Aunque el terminal regule el orden de la cola, no puede saber en qué caso se ha ejecutado la función y en qué caso se ha rechazado.
 
También, sobre la regulación por el sistema. Si se crea más de un flujo, sí, el sistema lo regulará. Pero si alguien está en el lado de estas corrientes, tienes que pensar en todo por ti mismo, no habrá ningún milagro del sistema.