[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 377

 
Zhunko:

Todos os roteiros e assessores trabalham em seus próprios tópicos. As ordens comerciais provenientes deles são coletadas em uma fila separada. Depois, elas são distribuídas às correntes de livre comércio. O número de fios de livre comércio pode ser igual a 8.

Imprime() produz o que está disponível para produção no momento da produção. A presença de múltiplos fios pode ser determinada através do tronco. A saída é exibida logo no início da função start() e no final. Coloque um atraso entre eles. Execute vários Expert Advisors em diferentes ferramentas. Olhe para o registro. Você pode ver que entre os resultados de um Expert Advisor haverá os resultados de outros Expert Advisors.

Ou seja, respondendo à pergunta de Arles, se um Expert Advisor tiver registrado ordens e "tirado uma soneca" por um tempo, neste momento outro EA colocará uma ordem (entrar em um negócio no mercado) que não tenha ultrapassado o limite dos fundos alocados (vamos assumir 80% do depósito - ambos os EA terão este tamanho). E quando o primeiro retomar o trabalho (e o terminal de gerenciamento de dinheiro já tiver sido calculado no dia anterior), ele também poderá abrir um negócio que exceda os limites estabelecidos pelo Expert Advisor?

Se este sistema (hipoteticamente) for multiplicado por vários EAs, então poderá haver um em que a Gestão de Risco estará em um sistema crítico?

Eu entendo corretamente esta multi-tarefa? - Se assim for, certamente é uma bagunça do ponto de vista financeiro. Mas, como a probabilidade de isto acontecer é baixa em pequenas contas, isto é apenas hipotético. E em contas maiores, eles provavelmente escreverão algo por conta própria. Mas ainda assim, será que é o caso?

E eu tenho uma pergunta - esta é a posição oficial ou é apenas especulação e experiências como a minha?
 
Chiripaha:

Ou seja, respondendo à pergunta de Arles, se uma EA fez a contabilidade das ordens e "tirou uma soneca" por um tempo, naquele momento outra EA não excedeu o limite de fundos alocados (vamos assumir 80% do depósito - ambas as EA terão esse tamanho) e colocará uma ordem (entre em um negócio no mercado). E quando o primeiro retomar o trabalho (e o terminal de gerenciamento de dinheiro já tiver sido calculado no dia anterior), ele também abrirá um acordo que excederá os limites estabelecidos pelo Expert Advisor?

Se este sistema (hipoteticamente) for multiplicado por vários Expert Advisors, então poderá haver um em que a Gestão de Risco estará em um sistema crítico?

Eu entendo corretamente esta multi-tarefa? - Se assim for, então certamente é uma bagunça do ponto de vista financeiro. Mas como a probabilidade é baixa em pequenas contas, é apenas hipotética. E em contas maiores, eles provavelmente escreverão algo por conta própria. Mas ainda assim, será que é o caso?

E eu tenho uma pergunta - esta é a posição oficial ou é apenas especulação e experiência como a minha?

Você sabe alguma coisa sobre sincronização?

A MQL4 tem uma função de sincronização a nível atômico.

 
Zhunko:

Você sabe alguma coisa sobre sincronização?

A MQL4 tem uma função de sincronização a nível atômico.


Vadim, você já tentou? Ele não sincroniza nada. Tenho brincado com ela recentemente. Você mesmo tem que construir a fila. Infelizmente, tudo o que ele faz é reduzir o código em três linhas. Ou talvez eu não o entenda.
 
Isto é, a simples aplicação desta função garante que apenas uma EA esteja funcionando de cada vez, mas a fila não está alinhada, uma EA pode ser ociosa e a outra pode ser chamada duas vezes.
 
Zhunko:

Você sabe alguma coisa sobre sincronização?

A MQL4 tem uma função de sincronização a nível atômico.

Obrigado pelo link - agora tenho uma idéia de como organizar esta multi-tarefa de forma mais eficiente. Embora seja apenas um palpite - não vejo uma solução até agora (no sentido da resolução da questão atual). E acrescenta a posição de Igor sobre "semáforo".

No entanto - é você quem completou outro modelo. Onde estes processos estão alinhados, alegadamente (tenho dúvidas), de forma coerente.

E eu estou tentando responder a pergunta de Arles e agora a minha - no modelo que descrevi acima. Afinal de contas, você escapou de responder minha pergunta. Neste modelo, você obtém um descompasso na gestão de riscos.

Eu não sei sobre sincronização. Sou novo em programação. Mas, por outro lado, sou bom em contar dinheiro, ou seja, sou bom com finanças. : ))

E minhas habilidades financeiras me dizem que "a música pode parar de tocar...". (de Margin Call) com esta abordagem. : ))
 
Integer:

Vadim, você já tentou aplicá-lo? Não sincroniza nada. Tenho brincado com isso recentemente. Você mesmo tem que construir a fila. Infelizmente, tudo o que ele faz é reduzir o código em três linhas. Ou talvez eu não o entenda.
Em sintonia com minhas dúvidas...
 

Vou lhe dizer (exatamente nesta forma)! (Peço-lhes que tomem isso como uma brincadeira).

Meus experimentos, apesar de todas as sugestões para verificar multithreading, mostram que enquanto eu não trocar os blocos nos gráficos, isso não funciona em nada. Assim que as troquei todas de uma só vez, todas as perguntas desapareceram.

Por enquanto, portanto, procederei em minhas criações com base neste postulado.

E o fato de que a Gestão de Risco pode "falir" não por minha vontade - obrigado, Vadim, por tê-lo mostrado e chamado a atenção para ele. Isso ajudará a evitar tal situação. Bem, para aqueles que sabem sobre isso.

 

Bom dia! A linha e está ok, você pode me dizer como fazer isso?

//Comment("OrdersProfit  ",OrdersProfit(),"AccountBalance  ",AccountBalance(),"Equity  ",AccountEquity());
 
Dimka-novitsek:

Bom dia! A linha e está ok, você pode me dizer como fazer isso?


Comentário("OrderProfit ",OrderProfit(), "AccountBalance ",AccountBalance(), "Equity ",AccountEquity()));

Tais erros são facilmente vistos no editor quando da compilação.

 
Obrigado!!!!!! Referia-se a uma função em geral. Não sei como o escrevi dessa maneira!