Erros, bugs, perguntas - página 1494

 
zaskok3:

Uma explicação sobre a falta do OnMarketwatch também seria apreciada.

Seria melhor não exigir uma explicação sobre a razão pela qual este evento não se realiza em MT.

Deve escrever ao Service Desk com uma explicação detalhada de como pensa que deve funcionar e porque é que 99% dos comerciantes precisam dele.

 
Maxim Khrolenko:
Na minha opinião, pode usar OnTimer() aqui, para chamar um evento a cada X milissegundos.
Esta solução há muito que apresenta uma variante mais precisa - colocar indicadores nos símbolos necessários e enviar o evento do utilizador ao Expert Advisor.
 
zaskok3:
Novo evento de chegada do tick no Marketwatch. Semelhante ao OnTick, apenas reage a novos carrapatos não de um só símbolo, mas a todos os que são assinados no Marketwatch.

Com o presente fluxo de cotações até os seus próprios carrapatos podem chegar em lotes, enquanto processam outro OnTick.

Por alguma razão, muitas pessoas pensam que quando algum evento ocorre, o manipulador deste evento é instantaneamente activado, mesmo que outro evento seja processado pelo mesmo Expert Advisor (ou seja, em paralelo). Não é este o caso.

Todos os eventos estão alinhados numa fila geral para o mesmo Conselheiro Especialista. O Conselheiro Especialista irá processá-los um a um. E tudo depende do programador - o quão eficazmente ele/ela implementa o processamento de um determinado evento. Mas mesmo que o programador seja um super programador e tenha um super carro, ele/ela ainda vai inchar a fila se houver muitos eventos (e mais ainda se houver carraças de personagens estrangeiras).

Quais são os argumentos para querer carraças de personagens de outras pessoas? "Não quero rodar o temporizador para manter o registo dos caracteres certos, porque posso chegar tarde demais para a distribuição". E uma vez que o evento de um símbolo de outra pessoa (especialmente se vários símbolos estiverem a ser monitorizados) pode ser atrasado na fila pelo seu próprio processamento de outro evento, há uma probabilidade muito maior de se atrasar para a entrega.

Acreditem em mim, na verdade já discutimos eventos sobre os carrapatos de outras pessoas. É por isso que chegámos à conclusão "é muito melhor usar um temporizador".

 
zaskok3:

Em MQL4++ não posso prescindir do exterior quando preciso de alterar programticamente os parâmetros de entrada.

Não há absolutamente nada que o impeça de trabalhar com variáveis regulares. Para indicadores interactivos essencialmente não há necessidade nos parâmetros constantes externos, que são controlados não pela sua interactividade.

É apenas preguiçoso e exige uma redundância irracional, que não vai utilizar porque existe uma alternativa de trabalho.

 
Joo Zepper:
Que conselho daria aos proprietários de vários monitores? Como se pode organizar um trabalho eficiente com o terminal?

Todos os separadores e janelas de serviço (caixa de ferramentas, testador, visão geral do mercado, navegador, janela de dados, barras de ferramentas) devem ser colocados num monitor separado.

Deixar apenas os gráficos na janela terminal. Esticar a janela terminal em vários monitores que têm o mesmo tamanho e resolução

 
o_O:

Seria melhor não exigir uma explicação sobre a razão pela qual este evento não se realiza em MT.

Deve escrever ao Service Desk com uma explicação detalhada de como pensa que deve funcionar e porque é que 99% dos comerciantes precisam dele.

o_O:

Não há nada que o impeça de trabalhar com variáveis normais. Para indicadores interactivos essencialmente não há necessidade em parâmetros externos que não são controlados pela sua interactividade.

Está apenas a ser preguiçoso e a exigir uma redundância irracional que você mesmo não vai usar, uma vez que já existe uma alternativa viável.

Não compreendo uma percepção tão agressiva do raciocínio calmo. Algo lhe pareceu errado... Não há nenhum, tudo está bem, acalme-se. Você não é R...

Maxim Khrolenko:
Penso que se pode usar OnTimer() aqui, chamar o evento a cada X milissegundos.
o_O:
Esta solução já foi desenvolvida com maior precisão - colocar indicadores nos símbolos necessários e enviar o evento personalizado ao Expert Advisor.

Eu sei, foi por isso que escrevi logo de seguida:

zaskok3:

Por alguma razão oferecem soluções de muleta através de um temporizador ou de uma perversão ainda maior - OnChartEvent.

Slawa, não compreendo bem a sua lógica:

Slawa:

Quais são os argumentos para querer carraças de personagens de outras pessoas? "Não quero rodar o temporizador para manter o registo das personagens certas porque posso estar atrasado para a entrega". E uma vez que o evento de um símbolo de outra pessoa (especialmente se vários símbolos estiverem a ser monitorizados) pode ser atrasado na fila pelo seu próprio processamento de outro evento, há uma probabilidade muito maior de se atrasar para a entrega.

Acreditem, discutimos eventos sobre os tiques das outras pessoas. É por isso que chegámos à conclusão: "é muito melhor usar um temporizador".

Então qual é o propósito de ter o OnTick, se um temporizador também é suficiente para os seus próprios carrapatos? A minha lógica pode não funcionar correctamente. Mas o meu raciocínio é o seguinte: uma vez que há OnTick, também deve haver OnMarketWatch. Uma vez que o OnMarketWatch pode ser implementado através do OnTimer, a mesma coisa pode ser feita com o OnTick. Portanto, a existência da OnTick tem o mesmo raciocínio que a existência da OnMarketWatch. Mas um existe e o outro não.

A fila OnTick é reposta a zero para as carraças que estavam lá quando o OnTick actual foi executado (em EAs é assim). O excesso de fila de que estamos a falar não é claro. Não é razoável deixar o temporizador inactivo nos fins-de-semana. E EAs não activam OnTick em cada tick. Esta é a razão pela qual é impossível recolher carraças sem as saltar na EA. A fila está livre, e isso é normal. Não há transbordos.

 

zaskok3:

Slawa, não compreendo bem a sua lógica:

Então qual é o objectivo de ter o OnTick, se um temporizador também é suficiente para as suas próprias carraças? A minha lógica, talvez, não funciona correctamente. Mas o meu raciocínio é o seguinte: se há OnTick, também deve haver OnMarketWatch. Uma vez que o OnMarketWatch pode ser implementado através do OnTimer, a mesma coisa pode ser feita com o OnTick. Portanto, a existência da OnTick tem o mesmo raciocínio que a existência da OnMarketWatch. Mas uma existe e a outra não.

A fila OnTick é reposta a zero para carraças que estavam no momento em que o actual OnTick foi executado (em EAs este é o caso). O que é o transbordo de fila não é claro. Não é razoável deixar o temporizador inactivo nos fins-de-semana. E EAs não activam OnTick em cada tick. Esta é a razão pela qual é impossível recolher carraças sem as saltar na EA. A fila está livre, e isso é normal. Não há transbordos.

OnTick moveu-se sem problemas a partir da função de arranque quádruplo

OnTick cobre 99% das necessidades e permite-lhe escrever programas simples.

Não se trata de sobrecarregar a fila. Trata-se de aumentar o volume - os eventos não se perdem.

Não há filas separadas para eventos individuais (fila OnTick). Há uma fila comum para todos os eventos do mesmo Conselheiro Especialista.

Mas a fila é preenchida com eventos de forma bastante inteligente - se houver um evento NewTick em bruto na fila, outros eventos NewTick não lhe são acrescentados. Se houver um evento Temporizador em bruto na fila, outros eventos Temporizadores não são acrescentados à fila. Etc.

Sobre a razoabilidade - irracionalidade do temporizador. De facto, o temporizador não requer tantos recursos como se pensa. A propósito, o terminal do cliente tem vários temporizadores a trabalhar simultaneamente para as suas próprias necessidades. Trabalham o tempo todo e a carga do processador é 0

 
Slawa:

OnTick cobre 99% das suas necessidades e permite-lhe escrever programas simples.

Em 99%, se renomear OnTick para OnTimer no código fonte fazendo a inicialização do temporizador outra (uma linha), o resultado não mudará - funcionará como antes e o programa continuará a ser tão simples.

OnTick transição sem problemas da função de arranque quádruplo

Isso é um sim. A maioria das pessoas está mais habituada a ela. Essa é a principal razão.

Obrigado por dedicar tanta atenção aos esclarecimentos. Tenho um pedido para acrescentar o código fonte da implementação artificial OnMarketWatch via temporizador. Na minha implementação tenho de recordar os tiquetaques anteriores de todos os símbolos e comparar com os valores actuais em cada passo do temporizador. Em caso de diferença, gerar evento para chamar a OnMarketWatch. E exactamente esta acção parece irrazoável. Por outras palavras, não podemos rodar o OnTimer inactivo nos outputs. Temos de continuar a comparar. Talvez haja uma solução melhor. É por isso que lhe peço que me mostre a sua variante. Como o faria.


Ainda considero as bicicletas com OnChartEvent uma perversão. Uma vez que requer a abertura de tantos gráficos como personagens no Market Watch.

 
Meus amigos, existe provavelmente uma situação realmente paradoxal.
Em teoria, se bem entendi, se um assinante de sinal aumentar a alavancagem da sua conta de 1:200 para 1:500, deverá resultar em pelo menos o dobro dos volumes de abertura.
A mesma situação aplica-se à carga do depósito; se esta for aumentada, os volumes devem aumentar.
Um dos meus assinantes escreve que aumentou a alavancagem de 1:200 para 1:500 e a carga de 50% para 90%. Mas depois disso, o volume de posições abertas não mudou em nenhuma direcção. E o saldo da sua conta deveria ter mais do que o permitido.
Talvez eu não compreenda o sistema de cópia correctamente?
 
Artem Prischepa:
...
Parar de fazer perguntas em nome de assinantes imaginários (ou fictícios). Se um assinante tem uma pergunta, que a faça ele próprio. Caso contrário, considerá-lo-ei como publicidade do sinal.
Razão: