Testador apoiando os scripts e consultores MG4 - página 4

 

Todos podem bater com a cabeça contra a parede, ou inventar a água quente.... Masa Integer está certa.

Inteiro:

Exatamente. Especialmente aproveitando a autoridade de uma posição superior.

Todos os idiomas são os mesmos, exceto os extravagantes. Todos eles podem ser aprendidos em 21 dias por qualquer boneco. Tudo para, embora, se, a troca pode ter uma notação diferente, mas não faz nenhuma diferença em princípio. Não é a forma como os operadores são escritos que é importante, mas a infra-estrutura com a qual o idioma interage. Neste sentido, MT4 e MT5 são dois mundos diferentes.

A diferença em tudo. Começando pelo pequeno - com a numeração das barras no indicador, em MT4 da direita para a esquerda, em MT5 da esquerda para a direita. Continuando com o mais significativo - a posição agregada e a organização dos dados do histórico comercial. A maior diferença no que muitas vezes é necessário - na forma de acessar citações e indicadores de dados, a cópia dos dados requer verificação, depois indexação da esquerda para a direita, depois da direita para a esquerda, o tempo da barra ou está incluído no intervalo, ou não. Tomar sozinho a discussão da função iBarShift() no CodeBase.

No MT4, para garantir o funcionamento estável da EA foi suficiente verificar o valor de retorno da OrderSelect(), mas no MT5 é necessário fazer verificações em cada etapa, mesmo nos dados do último tick. Há também algumas sutilezas da programação do MT5, que você só aprenderá depois de ter sofrido muito, porque há muitas armadilhas.


 
Renat:

O que você não vê neste fórum.

Ora, não há responsabilidade. Você pode dizer qualquer coisa.

Os idiomas ainda são diferentes. O código de um indicador para cinco nem sempre funcionará em quatro. Não há capacidade suficiente
 
Vinin:
Os idiomas ainda são diferentes. O código indicador para cinco nem sempre funcionará em quatro. Não há capacidade suficiente
É melhor que os códigos indicadores para 4 ainda funcionem em 4. E não haverá necessidade de recursos
 
borilunad:
Seria melhor se os códigos indicadores para 4 ainda funcionassem em 4. E não haveria necessidade de recursos.
Eles fazem trabalho. A menos que sejam modificados ou recompilados
 
Vinin:
Eles fazem trabalho. A menos que você os modifique ou recompile.
Não mudei nada em "Tema", mas quando o Terminal foi atualizado da 670ª para a 711ª construção, ele ficou lento com qualquer um deles no testador, é por isso que o relatei, mas comecei a experimentar o MA padrão e encontrei muitas coisas que antes não conseguia por inexperiência. Agora eu trabalho com ele e estou feliz com ele. Apenas insatisfeito com a minha compra de um 8, que é chamado, conseguido e planejado para trabalhar nele apenas, e no Vista todo o resto. Acho que terei que continuar no Vista enquanto ele sobrevive e depois comprá-lo sem confiar em ninguém e deixarei este 8º para sabonetes, web-sites, etc. :)
 
Renat:

MetaTrader 4 tem profundidade limitada da história, prazos separados e acesso direto a suas barras de símbolos via Aberto/Alto/Baixo/Fechado/Tempo[xxx]. Tal acesso direto é muito caro de ser implementado em termos de recursos e custo de CPU. Considere que cada Expert Advisor tem sua própria cópia local desses dados para evitar conflitos com outros Expert Advisors e com o próprio terminal.

Isto não é realmente um problema do usuário, é o seu problema. Ou seja, pode-se dizer que você está transferindo os problemas de acesso aos dados do terminal para o usuário.

Ou seja, ou você eleva a fasquia da capacidade de codificação ou obtém um monte de código inválido que pode ser pior e mais ineficiente do que o acesso direto conveniente no MT4.

Na verdade, algumas de suas soluções são muito controversas.

 
TheXpert:

Isto não é realmente um problema do usuário, é o seu problema. Portanto, pode-se dizer que você está transferindo os problemas de acesso aos dados do terminal para o usuário.

Ou seja, ou você eleva a fasquia das habilidades de codificação ou obtém um monte de código torto que pode funcionar muito pior e ineficaz do que o acesso direto conveniente no MT4.

Em geral, algumas de suas soluções são muito controversas.


Leia o texto completo - há um raciocínio direto para a impossibilidade de utilizá-lo mais.

Para que o usuário não nos culpe mais tarde por freios ou uso excessivo de recursos, temos dado um controle mais eficaz sobre os dados solicitados.

Um exemplo simples: um Expert Advisor on Eurodollar M1 com uma história de 10 anos, o gráfico atual leva cerca de 200 mb. No modelo MT4 teríamos que replicar (mesmo parcimoniosamente) em cada carrapato 200 mb na foto de sombra do especialista e perderíamos 200 mb de memória. No MT5 não há consumo de memória para tal cache, e o Expert Advisor provavelmente solicitará apenas um pequeno pedaço de história, colocá-lo em uma matriz local e trabalhar com ele em velocidade máxima.

 
Renat:

Para evitar que o usuário nos culpe mais tarde por atrasos ou consumo excessivo de recursos, temos dado um controle mais eficaz sobre os dados solicitados.

Eu li o texto completo. Não é impossível. Você coleta cronogramas para os gráficos, poderia coletá-los para Consultores Especialistas da mesma forma, e fazê-lo de forma bastante eficaz.

O que o faz pensar que o usuário estaria te matando por frear?

No modelo MT4, teríamos que replicar (mesmo que parcimoniosamente) a cada tick 200 Mb para sombrear a imagem da EA e desperdiçar 200 Mb de memória. O MT5 não tem despesas de memória para tal cache, e o Expert Advisor provavelmente solicitará apenas um pequeno pedaço de história, armazená-lo em uma matriz local e trabalhar com ele na máxima velocidade.

Faça um cache inteligente (há experiência), não guarde o resto na memória.
 

Escreva seu próprio motor terminal com um ecossistema interno eficiente e uma máquina virtual, e então conversaremos. Escrevemos as últimas quatro plataformas como esta, melhorando a arquitetura vez após vez. Portanto, nossas decisões são justificadas pela experiência prática.

Caso contrário, é impossível responder ao conselho "faça-o, cache inteligente, eles não serão abusados, etc.".

 
Integer:

Exatamente. Especialmente aproveitando a autoridade de uma posição superior.

Todos os idiomas são os mesmos, exceto os particularmente extravagantes. Todos eles podem ser aprendidos em 21 dias por qualquer boneco. Tudo para, embora, se, a troca pode ter uma notação diferente, mas não muda nada fundamentalmente. Não é a forma como os operadores são escritos que é importante, mas a infra-estrutura com a qual o idioma interage. Neste sentido, MT4 e MT5 são dois mundos diferentes.

Há uma diferença em tudo. Começando com uma menor - com a numeração das barras no indicador, em MT4 da direita para a esquerda, em MT5 da esquerda para a direita.

...

A numeração em MT5 é revertida em comparação com MT4 apenas por padrão. Na verdade, as matrizes podem ser invertidas em qualquer direção. Ver documentação: Direção de indexação em arrays, amortecedores e timeseries.

Inteiro:

...

Continuando com o mais essencial - a posição agregada e a organização dos dados do histórico comercial.

...

E no MT4 houve muitos problemas porque tivemos que cobrir posições opostas de instrumentos, enviando um pedido extra para o servidor através do OrderCloseBy() que nem sempre funcionou devido a vários motivos. Portanto, tivemos que verificar e reenviar ordens adicionalmente, caso contrário toda a lógica do sistema comercial foi quebrada.

No MT5, devido à posição agregada, tudo foi simplificado a um nível aceitável. Agora, por exemplo, não temos nem mesmo que nos preocupar com o nível de equilíbrio - esta pergunta estúpida só é relevante no MT4. Afinal, o preço aberto de uma posição agregada é o nível de Breakeven. Tudo se tornou mais simples com posições vencedoras, pois elas são automaticamente fechadas no servidor sem o envio de pedidos adicionais.

Ou seja, às custas da pose agregada, a quantidade de código foi reduzida ao nível necessário e suficiente, bem como a quantidade de ordens e verificações redundantes necessárias para elas.

Inteiro:

No MT4 foi suficiente verificar o valor de retorno do OrderSelect(), enquanto no MT5 é necessário fazer verificações em cada etapa, mesmo nos dados do último tick. Há mais algumas sutilezas na programação do MT5, que você só aprenderá depois de ter sofrido muito, porque há muitas armadilhas.

Ninguém é obrigado a usar verificações adicionais no MT5, você pode esperar o mesmo que no MT4 e tentar processar qualquer coisa sem verificações, que não tenha sido carregada corretamente do servidor ou que não tenha sido carregada de forma alguma, mas que acabou de ser inicializada. Neste caso, o desempenho também corresponderá ao MT4, ou seja, tudo estará bem apenas no testador, e veremos disparates na demonstração e na conta real.

Esse é o aumento do número de verificações adicionais na MT5, que se destina a garantir a qualidade das informações obtidas. No MT4 muitas dessas verificações estão ausentes, portanto, em alguns casos críticos é impossível garantir que as informações recebidas do terminal, que precisam ser processadas para a tomada de uma decisão, sejam confiáveis. Você só pode esperar que o terminal tenha baixado tudo o que é necessário do servidor corretamente, mas não há como ter certeza disso - não há nada para verificar se está correto.


Em geral, um ataque ao MT5 - é apenas uma desculpa podre para aqueles que não querem mudar para um novo terminal ou uma invenção daqueles que só ouviram falar do MT5, mas não sabem onde ele está.

MT4 é o terminal de ontem para criar algoritmos primitivos que são mais ou menos adequados para "negociação" no testador para desenhar curvas de equilíbrio agradável. Se você não estiver interessado em desenhar curvas de equilíbrio agradável, porque não pode colocá-las no bolso e colocá-las no pão, e só pode usá-las para se gabar no fio rústico, você precisa mudar para o MT5.