A desaceleração linear é um erro de programação ou uma característica do MT4? - página 11

 
Urain:

Gostaria realmente de saber quem é a MetaQuotes, posso levar uma mensagem?


Qualquer um. É a nossa anedota da sala de reuniões. É uma delas.
 

Dei uma olhadela rápida ao código. Uma passagem do poema de Lermontov veio-me imediatamente à mente:

Земля тряслась - как наши груди,
Cavalos e homens misturados numa pilha,
E as voltas de mil armas
Caiu em. e o uivar de mil armas...

Agora à sua pergunta:

-Aleks-:

Na fase de aperfeiçoamento da estratégia, e especialmente das tácticas, é necessário encomendar todo o tipo de adições para testar a ideia, nesta fase é bastante possível tolerar a lentidão do Expert Advisor.

Mas fiquei surpreendido com uma velocidade 6 vezes mais lenta em comparação com a versão principal da EA. A optimização doajuste da EA é necessária, pelo menos, para a recolha de dados analíticos.

Tenho razão em compreender que é impossível ler o código de outras pessoas e é melhor encomendar outra versão da EA depois de termos uma versão bem sucedida, mas deve ser escrita do zero, e só neste caso, podemos ter a certeza de alta velocidade e fiabilidade? Pessoalmente, penso que a parte do compilador é cortar operações duplicadas, por exemplo...

Não estou a falar deste código, mas globalmente em geral. Então, refuta esta afirmação?

Se encomendar um programador que escreva ao estilo de "cavalos e pessoas misturadas" - tem de reescrever não duas ou três vezes, mas a toda a hora e sempre a 100%, para todo o aumento do orçamento. Se encomendar a profissionais, a alteração dos requisitos em 20%, 40% ou mesmo 80% não exigirá uma reescrita do código não só completamente, mas mesmo na mesma percentagem das alterações. Mas com um orçamento de "<$50", esqueça-o.

 
-Aleks-:

Estou correcto ao assumir que deve haver um atraso artificial no envio de ordens para abrir ordens, mas sem esperar pela confirmação de que elas abriram?

Percebeu mal. Não deve haver qualquer atraso artificial. O MT5 tem um modelo de evento simples que deve ser utilizado em vez de atrasos por sono().
 
micle:
Naturalmente, o Consultor Especialista deve tratar de qualquer erro de envio de encomendas. No caso mais simples - para exibir uma mensagem sobre a abertura falhada da encomenda. Na versão mais avançada, decidirá sobre outras acções.

Portanto, preciso de um EA para me substituir, e outras acções são muito relevantes aqui... Mas não é certo que sejam oportunos (por exemplo, o preço já foi muito longe do ponto de entrada calculado).

sergeev:

Não o deixou enviar. Peça ao programador para utilizar IsTradeContextBusy para verificar.

Obrigado pela dica, mas eu estava a falar destas mesmas nuances no próximo fio. Como é que eu saberia disso?

sergeev:

Se estiver a utilizar a construção 509, existem 8 fios. A situação com IsTradeContextBusy não deve ocorrer.

Se o fizer, ver o ponto acima.

Também se pode utilizar mais do que um terminal.

Não compreendo, o número de terminais afecta a forma como uma ordem é passada? Podemos lançar vários terminais para uma mesma conta e enviar uma ordem para abrir uma ordem de cada terminal e se metade deles cair, a outra metade executará a ordem com sucesso? Pensei que a ordem deve ser processada pelo CD e só depois aceitar a próxima...

C-4:

Dei uma olhadela rápida ao código. Uma passagem do poema de Lermontov veio-me imediatamente à mente:

Agora à sua pergunta:

Se encomendar um programador que escreve no estilo "pessoas e cavalos misturados", tem de reescrevê-lo não duas ou três vezes, mas sempre e sempre a 100%, para o orçamento cada vez maior. Se encomendar a profissionais, a alteração dos requisitos em 20%, 40% ou mesmo 80% não exigirá uma reescrita do código não só completamente, mas mesmo na mesma percentagem das alterações. Mas com um orçamento de "<$50", esqueça-o.

Neste momento está a custar-me mais de 100 dólares e sei que lhe vou acrescentar mais. A matemática funciona desta forma:

10 revisões a $30 dá-lhe um custo de $300, enquanto 10 a $50 dá-lhe um custo de $500. Poupar cerca de 200 dólares é significativo para mim. Mas quando estiver satisfeito com ela, poderei encomendar uma EA do zero (removendo coisas desnecessárias) e custará cerca de 80 dólares. Esta abordagem justifica-se, especialmente quando o desenvolvimento está em curso. Excepto que tem de desgastar os nervos... mas isso é como a sorte o teria.

C-4:
Percebeu mal. Não deve haver qualquer atraso artificial. MT5 tem um modelo de evento simples que deve ser utilizado em vez de atrasos no sono()
Estou a falar do MT4, por isso confirma que podemos "bombardear" a corretora que processará as encomendas a partir do seu "tampão" e as rejeitará se o preço se mover fortemente?
 
-Aleks-:

Obrigado pela dica, mas estas são as nuances que discuti no próximo tópico. Como devo saber sobre eles?

Não preciso de ir a eles e procurar algo.
Se alguém insinuou como deveria ser, e se encontrar uma falta dele no seu código, é melhor mudar o codificador silenciosamente. Não criar filiais.

Não compreendo, o número de terminais afecta a forma como uma ordem é passada? Ou seja, pode iniciar vários terminais na mesma conta e enviar uma ordem para abrir uma ordem de cada um deles, e se metade deles for estrangulada, a outra metade executará a ordem com sucesso?

O número de terminais será igual ao número de fios a serem enviados. 10 terminais irão enviar 1 encomenda - haverá 10 encomendas.

 
-Aleks-:

Por isso, preciso de um EA para me substituir, por isso outras acções são muito relevantes... mas não é certo que sejam oportunos (por exemplo, o preço já foi muito longe do ponto de entrada calculado).

Neste momento, o consultor especializado custa-me mais de 100 dólares e sei que vou acrescentar mais. Assim, esta é a matemática:

10 revisões a $30 dá uma despesa de $300, enquanto 10 a $50 dá uma despesa de $500. Poupar cerca de 200 dólares é significativo para mim. Mas quando estiver satisfeito com ela, poderei encomendar o meu Conselheiro Especialista a partir do zero (removendo coisas desnecessárias) e isso custará $80. Esta abordagem justifica-se, especialmente quando o desenvolvimento está em curso. Excepto que tem de desgastar os nervos... mas é uma questão de sorte.

Esta é a abordagem errada da sua parte.

Encomenda o código para o testador, avisa sobre a importância da velocidade de optimização, faz as melhorias necessárias no mesmo. E só depois de a versão de teste estar pronta é que se encomenda a versão real com lógica completamente testada e todas as modificações/recomendações.

Poupará muito mais dinheiro. Não?

 
sergeev:

Não é preciso olhar para eles e descobrir o que é o quê.
Se alguém insinuou como deveria ser, e se encontrar uma falta no código - mude silenciosamente o codificador. Não criar filiais.

o número de terminais - a mesma multiplicidade de fios a enviar. 10 terminais irão enviar 1 encomenda - haverá 10 encomendas.

E quanto à empresa de corretagem? Afinal de contas, é o terminal que tem uma ordem de encravamento! Qual é então a razão para enviar uma multidão de encomendas?

artmedia70:

Esta é uma abordagem errada do seu lado.

Encomenda-se o código para o testador, notificando-o da importância da velocidade de optimização, e introduzem-se as melhorias necessárias no mesmo. E só depois da versão de teste estar pronta, encomendar a versão real com lógica completamente depurada e todas as modificações/recomendações necessárias.

Poupará muito mais dinheiro. Não?

Bem, para começar, não sugeri inicialmente que a velocidade dos testes dependesse muito do testador ou da sua implementação real.

E quanto ao resto, é isso que eu faço, testar, refinar ... ou está a dizer que o preço será muitas vezes menor se eu escrever imediatamente "Não estou a sério, mas a testar"?

 
-Aleks-:

E quanto ao CD? Afinal de contas, é ele que tem uma ordem de paragem!? Qual é então o sentido de enviar um monte de encomendas?

Se não precisar de enviar uma dúzia de encomendas de uma só vez, então não insisto.

Pode enviar um a um a partir de um terminal e esperar que o contexto se torne livre e assim por diante.

A dúzia inteira pode ser enviada dentro de alguns minutos.

 
sergeev:

Não, bem, se não precisa de uma dúzia de cada vez, então eu não insisto.

Pode enviar um de cada vez de um terminal, esperar pelo contexto para libertar, e assim por diante.

Talvez possa enviar uma dúzia inteira em alguns minutos.

Por isso pergunto, porque não sei como as encomendas são processadas pelas empresas de corretagem - em paralelo ou sequencialmente?

 
-Aleks-:

em paralelo ou sequencialmente?

As ofertas vêm em sequência. mas não é certo que a Buy irá executar mais rapidamente do que a próxima venda, porque por vezes existe outro fornecedor de liquidez.

Mas para simplificar o mundo - pensar sempre que vai em série.


a única razão para esta informação é permanecer no tópico.