[ARQUIVO]Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por ela. Não posso ir a lugar nenhum sem você - 5. - página 381

 

A sincronização também é um conceito relativo. Sincronização de quê com o quê? Sincronização para acesso atômico? E quem vai construir a fila? Junko, talvez sua biblioteca construa a fila normalmente, se o código for tirado do MSDN, porque tudo é feito corretamente lá. E você simplesmente copiou sem entender o que faz - como os óculos de um macaco. Ou talvez você esteja apenas inventando, como sempre faz. Porque você não entende. Você confunde sincronização para acesso atômico com enfileiramento.

 
Sepulca:
Comprou um monte de núcleos de processador. E agora, qual deles deve fazer fila para )))))))))

Não, isso também vale para processadores de núcleo único, o multitarefa é uma função do sistema operacional.
 
Chiripaha:

Verifiquei com o PauseBar crescente e consegui apenas estes paus nas barras de 1 e 5 minutos. Mas eu não entendo como contorná-las corretamente. Entendo o que precisa ser escrito, provavelmente (mas não obviamente) se o valor

в

o valor das barras anteriores - algo como isto:

Mas quando tento fazer isso, todo meu indicador "se move" - porque não entendo a lógica e não entendo onde colocá-lo e sob quais condições.


Esta variante funciona adequadamente no testador.
Já trabalhei em torno disso desta maneira:

        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]; 
          }  
        }

E onde quer que houvesse [i] recuou 1 barra

E aqui:

   Comment("DrawChannel =",DrawChannel,"\n",
           "limit =",limit); // изначально значение было равно 1
  
   limit = Bars-IndicatorCounted()-1; 
   if(limit >= 1)                    limit = Bars-1; // и это условие не выполнялось, поставил >= и начало считать
Arquivos anexados:
 
Bom dia. Eu vaguei pelo fórum mas não encontrei uma resposta definitiva, é possível para meu consultor especializado trabalhar com vários pares de moedas ao mesmo tempo? Acho que alguns sites que vendem EAs têm essa possibilidade em suas descrições, mas eu quero ter certeza. Eu já comecei a trabalhar com alguns pares de moedas e não sei como começar a negociar.
 
Trendy:

Eu vaguei pelo fórum mas não encontrei uma resposta definitiva, é possível para um EA trabalhar com vários pares de moedas ao mesmo tempo?

Acho que alguns sites que vendem EAs têm essa possibilidade em suas descrições, mas quero ter certeza.

é possível. o consultor é limitado apenas pelo número de símbolos de sua corretora.

Se você não encontrou a resposta, porque sua pergunta é estúpida em essência.

Se você puder, envie-nos um link sobre como fazer isso

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


1. Você deve estar tendo problemas para compreendê-lo. Eu sei do que você está falando.

2. Obrigado, mas eu não pedi conselhos. Especialmente porque estamos falando de sincronização do que não está mais na mesma linha.

E qual é a ciência da sincronização? Que ciência? Sua própria ciência? Algum dia você vai entender, mas não há nada de complicado nisso. As linguagens e algoritmos de programação não foram inventados e criados por tolos. Mas, por alguma razão, eles recebem meios de sincronização e enfileiramento.

4. Muito errado. Se correto....Se houvesse sincronicidade. Mas nesse código que você citou aqui um pouco antes não há sincronicidade, apenas acesso atômico.

3. De acordo com a ciência da programação de sistemas. Leia Richter. Ele o esclarecerá sobre as filas de espera.

4. O que é sincronização? É o acesso atômico a um recurso. Meu código o fornece. A fila é construída pelo sistema. Os módulos são executados proporcionalmente ao tempo de sua execução. A ordem de execução não é importante. Tudo é feito pelo sistema. Isto não é uma invenção de tolos. Tente provar o contrário usando um exemplo concreto. Analisar o registro. Você verá que tudo é executado corretamente, sem suas filas especiais.

A propósito, a MQL4, como idioma, tem uma função com acesso atômico. Não há nenhum deles em C++. Você mesmo deve escrevê-los, como invólucros das funções WinAPI. É melhor implementá-lo em uma classe.

Número inteiro:

Mais uma vez, por precaução, para aqueles que estão em um submarino em um tanque e ainda usam um capacete. Somente o acesso atômico é mostrado aqui. A ordem das funções aqui será conforme o vento sopra. Este código não prevê a execução uniforme de funções. É por isso que não há garantia de que uma função não permaneça na prateleira por muito tempo. Confiar na capacidade de manutenção na programação apenas porque a freqüência do processador é alta é ridículo, mesmo que a freqüência do processador seja muito alta.

Mais uma vez para aqueles que não estão no tanque. O sistema fornece a ordem de execução. O que é execução uniforme? Como você pode fornecer execução uniforme de fios cujo tempo e número de execução são desconhecidos? Por que se preocupar com isso? Eles já pensaram nisso para você e já o fizeram. Você pode usar objetos de sincronização.
Naturalmente, não excluo casos em que você precisa de uma fila especial de fios para executar os fios. Isto é uma coisa muito complicada :-)) Você deve evitar tal código. Pois aqui há um paradoxo. Por que você deve executar uma tarefa em vários fios para colocá-los todos em um só fio? Utilizar execução com uma única rosca. Você não precisará de sincronização então.

Há mais um caso quando você precisa de uma fila. Mas não a fila de execução dos threads, mas a ordem de processamento dos dados recebidos dos threads (resultados dos threads). Esta é a tarefa mais freqüente para as filas de espera.

Número inteiro:

A sincronização também é uma noção relativa. Sincronização de quê com o quê? Sincronização para acesso atômico? E quem vai construir a fila? Junko, talvez sua fila de biblioteca seja construída normalmente, se o código for tirado do MSDN, porque tudo é feito corretamente lá. E você simplesmente copiou sem entender o que faz - como os óculos de um macaco. Ou talvez você esteja apenas inventando, como sempre faz. Porque você não entende. Você confunde sincronização para fornecer acesso atômico e enfileiramento.

E novamente, para aqueles que... :-))

A sincronização está fornecendo acesso atômico a um recurso. A fila é construída pelo sistema. A execução é garantida, a ordem não é. No MSDN, o código é provavelmente correto, mas incômodo. Escreva sua própria classe para uma sincronização conveniente. Eu escrevi minha aula pelo princípio da aula de Andrei Postnikov. Ele gentilmente me mostrou como sincronizá-lo corretamente. É verdade, não se trata de uma classe. Eu tenho uma classe para cada objeto de sincronização, mais uma classe de bloqueio para tudo e um espaço de nomes para funções de espera.
Na verdade, eu já respondi tudo acima.

 

Junko, você está sem esperança. Se é difícil para você pensar, não pense, cuspa tudo, não é o seu forte...

Se algo não estivesse comprovado e não comprovado, você não estaria discutindo sobre isso. O problema é que você, Vadim, é incapaz de ter uma conversa construtiva. Ao menos você confirma que a sincronização é apenas para acesso atômico e não para fila de espera. Você, Vadim, agora está discutindo consigo mesmo sem se dar conta.

 
Integer:

Junko, você está sem esperança. Se é difícil para você pensar, não pense, cuspa tudo, não é o seu forte...

Se algo não estivesse comprovado e não comprovado, você não estaria discutindo sobre isso. O problema é que você, Vadim, é incapaz de ter uma conversa construtiva. Ao menos você confirma que a sincronização é apenas para acesso atômico e não para fila de espera.

Como eu posso... Eu não sou um programador, como algumas pessoas :-))
 
Zhunko:

A sincronização é o fornecimento de acesso atômico a um recurso.
A fila é construída pelo sistema.


Uma grande salva de palmas! Sobre o assunto do código da página 378. Mesmo que o terminal regule a ordem da fila, ele não pode saber em que caso a função foi executada e em que caso ela foi rejeitada.
 
Também, sobre a regulamentação pelo sistema. Se for criado mais de um fluxo, sim, o sistema irá regular. Mas se alguém do lado está envolvido nestas correntes, então você mesmo tem que pensar em tudo, não haverá milagre do sistema.