Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 643

 
Alexey Viktorov:

Não último na lista, mas o "mais jovem" no tempo.

Embora eu seja igualmente irreflectido. A questão é sobre modificação, e estou a escrever perto... E se simplesmente o modificar, não haverá buracos na lista de encomendas... Poderá apenas precisar de adicionar variáveis e atribuir-lhes valores, e DEVE verificar os parâmetros para evitar o erro #1. Bem, Mila pode fazê-lo ela própria.

Artyom Trishkin:

Como pode ter a certeza de que não haverá uma dependência de classificação, e de que não falhará de todo a ordem errada?

Mais uma vez, para encontrar de forma fiável a última encomenda, é necessário identificá-la pelo seu tempo de abertura, e não pela sua posição na lista.

Tanto quanto sei, as encomendas da lista são organizadas apenas desde a mais antiga (OrdersTotal()-1) até à mais recente (0). Se não for este o caso (a lista não está ordenada por tempo) e se tiver provas, queira fornecê-las.

Se estiver a dizer que no momento em que o histórico foi solicitado utilizando a função OrdersTotal(), outra EA fez uma encomenda, então ou ela seria ignorada (em qualquer caso, porque não tinha tempo para estar no histórico de encomendas), ou tornar-se-ia também a mais recente na lista de encomendas.

É claro que nos podemos ressegurar fortemente e comparar o tempo de abertura de todas as ordens de total-1 a 0, mas dificilmente seria uma solução óptima quando temos um grande número de ordens e símbolos negociados.

 
Alexey Kozitsyn:

Tanto quanto sei, as encomendas da lista são classificadas apenas desde a mais antiga (OrdersTotal()-1) até à mais recente (0). Se não for este o caso (a lista não está ordenada por tempo) e se tiver provas, queira fornecê-las.

Se estiver a dizer que no momento em que o histórico foi pedido utilizando a função OrdersTotal(), outra EA fez uma encomenda, então ou seria ignorado (em qualquer caso, não teria tempo de estar no histórico de encomendas), ou tornar-se-ia também o mais recente na lista de encomendas.

É claro que nos podemos ressegurar fortemente e comparar o tempo de abertura de todas as ordens do total 1 a 0, mas dificilmente seria uma solução óptima quando temos um grande número de ordens e símbolos negociados.

Jesus... Provas para eles...

Acho que não se lembra bem de tais situações serem discutidas em mql4.com durante muito tempo. Foi então que chegámos à conclusão de que seria melhor procurar uma ordem pelo tempo para determinar inequivocamente o seu tempo de abertura/fecho. Já me cansei de repetir que havia uma dependência da triagem. Depois fizemos de modo a que não fosse. As pessoas relaxaram e começaram a fazer o que lhe foi sugerido. E depois pimba... e houve novamente uma dependência da triagem. As pessoas uivavam - os robôs enlouqueceram. E depois a dependência de ordenação desapareceu novamente.

Se um dia tiver o desejo de que a suposta optimização volte a cair sob a paixoneta, então faça-o da forma como o está a fazer. Mas não sugira tais soluções a outras pessoas. Ou, ao oferecer, avisá-los da possibilidade de alguma vez perderem dinheiro devido a falhas na procura da ordem necessária, que (a procura) depende dos símbolos de ordenação na lista, que, por sua vez, não depende de si e do seu algoritmo. Pelo contrário - o seu algoritmo depende de outra pessoa...

Não lhes diga que o concessionário pode fazer batota com o tempo de abertura/fecho, essa é outra questão.

Boa sorte.

 
Artyom Trishkin:

Jesus... Provas que eles querem...

Aparentemente, não se lembra bem de tais situações terem sido discutidas em mql4.com há muito tempo atrás. É quando se chega à conclusão de que é ainda melhor procurar a tempo uma ordem para determinar sem ambiguidade o seu tempo de abertura/fecho. Já me cansei de repetir que havia uma dependência da triagem. Depois fizemos de modo a que não fosse. As pessoas relaxaram e começaram a fazer o que lhe foi sugerido. E depois pimba... e houve novamente uma dependência da triagem. As pessoas uivavam - os robôs enlouqueceram. E depois a dependência de ordenação desapareceu novamente.

Se um dia tiver o desejo de que a suposta optimização volte a cair sob a paixoneta, então faça-o da forma como o está a fazer. Mas não sugira tais soluções a outras pessoas. Ou, ao oferecer, avisá-los da possibilidade de alguma vez perderem dinheiro devido a falhas na procura da ordem necessária, que (a procura) depende dos símbolos de ordenação na lista, que, por sua vez, não depende de si e do seu algoritmo. Pelo contrário - o seu algoritmo depende de outra pessoa...

Não me diga que o concessionário pode fazer batota com o tempo de abertura/fecho - isso é outra questão.

Boa sorte.

Sim, não me lembro de discussões como essa, não leio frequentemente o fórum de quatro pessoas. Talvez, em tempos, tenha havido algo do género. Mas se se construir sobre tudo o que foi "era uma vez", nenhum recurso será suficiente.

Se um dia tiver o desejo de uma suposta optimização para cair de novo debaixo da mira, então faça como se faz. Mas não sugira tais soluções a outras pessoas. Ou, ao oferecer, avisá-los da possibilidade de alguma vez perderem dinheiro devido a falhas na procura da ordem necessária, que (a procura) depende dos símbolos de ordenação na lista, que, por sua vez, não depende de si e do seu algoritmo. Pelo contrário - o seu algoritmo depende inteiramente de outra pessoa...

Como se diz, é possível "ser apanhado na mira" de várias outras maneiras. Se precisar de determinar rapidamente a última ordem, não é racional pesquisar todas elas a tempo.

Cada um deve decidir por si próprio se aceita ou não o meu método. A melhor solução é abrir muitas encomendas e ver como funciona a triagem AGORA.

Boa sorte para si também.

 
Artyom Trishkin:

Tem a certeza de ter mostrado uma forma fiável de falhar a última posição na lista?

Se negociar de forma realista, não está preocupado que a classificação se possa tornar repentinamente viciante?

Ainda assim, IMHO, precisamos aqui de dois ciclos - no primeiro procuramos a posição mais fresca ao abrir a hora, no segundo modificamos todos excepto aquele cujo bilhete foi encontrado no primeiro ciclo.

Não, não tenho a certeza, mas logicamente correcto.

Leia abaixo sobre a insidiosidade dos MQs - surgiu a ansiedade. Obrigado pela atenção.

 
Alexey Kozitsyn:

Sempre que é necessário identificar rapidamente a última ordem, não é racional passar por todas elas a tempo, e eu já disse porquê.

Porque é que deveríamos ter de os analisar sempre? Esta é exactamente a irracionalidade.

Podemos pesquisar apenas uma vez por tick para posições de mercado e para ordens fechadas e preencher todos os campos da estrutura com todos os dados necessários das duas últimas ordens - abertas e fechadas.

E utilizar os dados obtidos durante este tick. Depois de os alterar neste tick, obterá novos dados e novos campos das duas estruturas no tick seguinte. Parece-me - isto é um equilíbrio normal entre fiabilidade e velocidade. É disto que se trata a optimização. E aquilo a que chama optimalidade, IMHO, é um trabalho de machadinha;)

 
Artyom Trishkin:

Porquê rever sempre? Este é exactamente o ponto em que não é racional.

Pode pesquisar uma vez por tick as posições de mercado e as ordens fechadas, e preencher todos os campos da estrutura com todos os dados necessários das duas últimas ordens - abertas e fechadas.

E utilizar os dados desse carrapato. Depois de os alterar neste tick, obterá novos dados e novos campos de duas estruturas no tick seguinte. Parece-me - isto é um equilíbrio normal entre fiabilidade e velocidade. É disto que se trata a optimização. E aquilo a que chama optimalidade, IMHO, é um trabalho de machadinha;)

Está a entrar em nuances, ninguém estava sempre a falar de todas as vezes. Eu, tal como vós, sou a favor da racionalidade, apenas temos opiniões diferentes sobre ela.

 
Alexey Kozitsyn:

Está a entrar em nuances, ninguém estava sempre a falar de todas as vezes. Eu, tal como você, sou a favor da racionalidade, é que você e eu temos uma visão diferente da mesma.

As suas próprias palavras:

Onde quer que seja necessário determinar rapidamente a última ordem, não é racional passar por todas elas a tempo, imho...

"Em todo o lado" não é sinónimo de "sempre" neste contexto?

Foi por isso que eu disse "passar por ela uma vez por carrapato", preencher os campos da estrutura com os dados correctos e utilizá-la em todos os lugares onde seja necessário obter dados sobre a última encomenda, em vez de passar por ela em todos os lugares de cada vez.

Talvez eu o tenha entendido mal? Mas a sua expressão citada, IMHO, exclui a ambiguidade de entendimento.

 
Artyom Trishkin:

As suas próprias palavras:

"Em todo o lado" não é sinónimo de "sempre" neste contexto?

É por isso que respondi - é para passar uma vez por tique, preencher os campos da estrutura com os dados certos e usá-los onde quer que seja necessário para obter dados sobre a última encomenda, em vez de passar sempre por eles.

Talvez eu tenha entendido mal? Mas a sua expressão citada, IMHO, exclui a ambiguidade de entendimento.

Não se considera que possa haver pausas/imples cálculos longos no programa, após os quais o ambiente comercial deve ser actualizado. Arrastar uma série de encomendas nem sempre é conveniente, e uma série global nem sempre é uma boa solução.

De qualquer modo, como já disse, ninguém o desencoraja, mas há casos em que a sua opção será menos preferível (sistemas multi-moeda/multi-ordem). E para se ter a certeza de que o MQ irá alterar novamente a ordem de classificação (dado que é a mesma em mql4, e em mql5), penso eu, não é necessário.

 
Alexey Kozitsyn:

Não está a ter em conta que pode haver pausas/já cálculos longos no programa, após os quais necessita de actualizar o ambiente comercial. Arrastar uma série de ordens atrás de si nem sempre é conveniente, e uma série global nem sempre é uma boa solução.

De qualquer modo, como já disse, ninguém o desencoraja, mas há casos em que a sua opção será menos preferível (sistemas multi-moeda/multi-ordem). E para ser ressegurada que a MQ irá alterar novamente a ordem de classificação (dado que é assim em mql4, e em mql5), penso que não há necessidade.

Uma classe que lhe permite ter facilmente e sem esforço dados para quaisquer personagens e quaisquer mágicos foi feita há muito tempo. E não há necessidade de transportar nada, especialmente todo o conjunto, mas apenas DOIS ordens - a última aberta e a última fechada. Sempre que, após longos cálculos ou espera, tem de voltar a preencher os campos da estrutura, o que, a propósito, tem de fazer, ou não actualiza o seu ambiente?

OK. É um não-cérebro... Faça-o à sua maneira. Não se preocupe com a fiabilidade - esqueça...

 
Artyom Trishkin:

Há muito que foi criada uma classe que lhe permite ter facilmente e sem esforço dados sobre quaisquer símbolos e quaisquer mágicos. E não há necessidade de arrastar nada, especialmente todo o conjunto, mas apenas DOIS ordens - última aberta e última fechada. Sempre que, após longos cálculos ou espera, tem de voltar a preencher os campos da estrutura, o que, a propósito, tem de fazer, ou não actualiza o ambiente?

OK. É um não-cérebro... Faça-o à sua maneira. Não se preocupe com a fiabilidade - esqueça...

E eu actualizo o ambiente, só que o seu método de pesquisa demorará muito mais tempo, só isso, e sobre o tema da fiabilidade, isso é discutível.
Razão: