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

 
Serj_Che:

Não tenho queixas contra si.

Nem o papaklass .

É o seu advogado?

É o seu procurador? Não gostei do facto de pensar que podia dizê-lo por ele, mas não por si, e que não o pode dizer aqui, mas pode dizê-lo por aquele homem.

Simplesmente não gostei, por isso falei. Nenhuma reivindicação pessoal, apenas em relação à situação.

 

-Aleks-:

Assim, a taxa de processamento aproximada é de 23 passagens de 2000 a 2013 no período horário, aos preços de abertura:

1. Kamikadze_MA_V_01 - 5 minutos

2. Kamikadze_MA_V_02 - 15 minutos.

3. Kamikadze_MA_V_03 - mais de 30 minutos

Uma tal operação mata simplesmente a possibilidade de afinação fina da EA em tempo real.


Então 23 passes em 30 minutos é muito tempo? Isso é interessante.

O meu EA em M15 de Junho a Setembro leva 24 horas para uma passagem no testador. Isso é muito tempo. Nem sequer vou falar de optimização. E não é necessário...

 
decanium:

A minha EA em M15 de Junho a Setembro em todas as carraças do testador leva 24 horas por passe. Isso é muito tempo. Não estou sequer a falar da optimização. E não há necessidade de o fazer.

E a multimoeda em M5 sobre os preços de abertura nos 9 meses de história gasta 20 minutos para 15000 passagens da genética. Mas isso também não é um indicador. Muito depende do número de indicadores utilizados.
 
decanium:

Então 23 passes em 30 minutos é muito tempo...? Interessante.

A minha EA em M15 de Junho a Setembro em todas as carraças do testador passa um dia para uma passagem. Isso é muito tempo. Nem sequer vou falar sobre a optimização. E não há necessidade de o fazer.

O mais importante é que mostrei como a velocidade regrediu durante a evolução do Expert Advisor. Em geral, duvido de uma EA que utiliza carraças porque as carraças são geradas e não têm nada a ver com a história.

micra:
E eu tenho um EA multimoedas em M5 sobre preços de abertura num historial de 9 meses gasta 20 minutos em 15000 passes genéticos. Mas também não é um indicador. Muito depende do número de indicadores utilizados.

Mas será possível acelerar significativamente o desempenho da EA no histórico, preparando os dados calculados dos indicadores e guardando-os num ficheiro?

 
-Aleks-:

Mais importante ainda, mostrei como a velocidade tem regredido à medida que a EA tem evoluído. Uma EA que funciona com carraças - duvido em absoluto de tais EAs, pois as carraças são geradas e não têm nada a ver com a história.

É possível acelerar significativamente o trabalho da EA sobre o histórico, preparando os dados calculados dos indicadores e guardando-os num ficheiro?

É provável que a velocidade de leitura a partir do disco seja mais lenta que a velocidade de cálculo do indicador optimizado. E quanto aos cálculos dos agentes remotos? Quer enviar-lhes os indicadores calculados? No seu caso, há muitas maneiras de optimizar a velocidade de execução. É preciso evitar loops desnecessários. + para pensar se é tão crítico realizar todas as acções em cada tick, talvez seja suficiente limitá-lo a "novo evento de bar".

 
micle:

Há uma hipótese de a velocidade de leitura do disco perder para a velocidade de cálculo do indicador optimizado. E quanto aos cálculos sobre os agentes remotos? Quer enviar-lhes os indicadores calculados? No seu caso, há muitas maneiras de optimizar a velocidade de execução. É preciso evitar loops desnecessários. + para pensar se é tão crítico fazer tudo em cada tique, talvez seja suficiente limitar com "novo evento de bar".

Não podemos ler os dados uma vez, criar uma matriz a partir dela e aceder a ela mais tarde?

Quanto à minha EA específica, recordo que a optimizei abrindo preços - ou seja, sem carraças, aparentemente. E quanto a pensar nisso, no final estou a pagar ao Aplicador/Desenvolvedor pela optimização do meu próprio código, mas sem verificar os eventos no código para a acção da EA, que promete um aumento significativo da velocidade do optimizador, espero que assim seja.

Espero que sim! Obrigado pelo conselho sábio!

Gostaria de fazer uma pergunta, se 20 EAs funcionam simultaneamente no momento da abertura do bar, não causará um pico de abrandamento e erros na abertura da ordem porque o preço muda drasticamente durante a estimativa dos dados?

 
-Aleks-:

Não podemos ler os dados uma vez, criar um conjunto deles e depois aceder aos mesmos?

Durante os testes, passamo-lo ao longo da história. Emulação de negociação. Quando o Expert Advisor recebe apenas os dados que já foram recebidos em cada próxima contagem (chamada do Expert Advisor). No caso do ficheiro, terá à sua disposição toda a história do indicador, incluindo o futuro que o espera em futuras chamadas. A propósito, a matriz ocupará muito espaço de memória neste caso. Asseguro-vos que esta não é a direcção para a qual nos devemos dirigir durante a optimização. Pelo menos, não neste caso de qualquer forma.


-Aleks-:

Tenho uma pergunta relevante: se 20 EAs funcionam simultaneamente no momento da abertura do bar, não causará um abrandamento máximo e erros na abertura da ordem, porque o preço mudará muito durante o cálculo dos dados?

Se todos os 20 EAs funcionarem com o mesmo símbolo, sim. Iniciarão os cálculos quase simultaneamente. Mas temos de ter isso em conta:

- Cada um deles será executado num fio separado. No caso de computadores de 4 núcleos, a configuração 4 deles pode ser executada simultaneamente e não têm quase nenhuma influência mútua.

- o tempo necessário para um único cálculo será muito provavelmente incomparavelmente curto em comparação com o tempo de envio de uma ordem comercial. É por esta razão que seria melhor enviar ordens de comércio assíncrono para preços correntes (se várias ordens podem ser geradas em 1 passe). Isto não terá de esperar pelo resultado da primeira encomenda antes de enviar a segunda. Mas também pode haver aqui opções diferentes. Tudo depende da estratégia comercial.


No caso de Expert Advisors que funcionam com símbolos diferentes, as carraças e a nova barra não ocorrerão na maioria das vezes simultaneamente.

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций - Документация по MQL5
 
micle:

Ao testar, é feita uma análise da história. Emulação da negociação. Quando em cada próxima contagem decrescente (chamada do Conselheiro Especialista) recebe apenas os dados que já teriam sido recebidos. No caso do ficheiro, terá à sua disposição toda a história do indicador, incluindo o futuro que o espera em futuras chamadas. A propósito, a matriz ocupará muito espaço de memória neste caso. Asseguro-vos que esta não é a direcção para a qual nos devemos dirigir durante a optimização. Pelo menos, não neste caso de qualquer forma.

No caso de todos os 20 Consultores Especialistas estarem a funcionar com uma e a mesma ferramenta, sim. Iniciarão os cálculos quase simultaneamente. Mas temos de ter isso em conta:

- Cada um deles será executado num fio separado. No caso de configuração de computadores de 4 núcleos, o 4 pode ser executado simultaneamente, praticamente sem influência mútua.

- O tempo para um único cálculo será muito provavelmente incomparavelmente curto com o tempo de envio de uma ordem comercial. É por esta razão que seria melhor enviar ordens de comércio a preços correntes (se várias delas podem ser geradas em 1 passe) de forma assíncrona. Isto não terá de esperar pelo resultado da primeira encomenda antes de enviar a segunda. Mas também pode haver aqui opções diferentes. Tudo depende da estratégia comercial.

No caso de Expert Advisors que operam com símbolos diferentes, as carraças e uma nova barra não ocorrerão normalmente em simultâneo.

Compreendi correctamente, devemos fazer um atraso artificial no envio de ordens para abrir ordens sem esperar pela confirmação de que as ordens foram abertas?

 
-Aleks-:

Estou correcto ao assumir que deve haver um atraso artificial quando as encomendas são enviadas para abrir ordens, mas sem esperar pela confirmação de que abriram?

Não há necessidade de fazer qualquer atraso artificial. A Internet e o corretor farão isso por si...
 

micle:
никаких искусственных задержек делать не нужно. Это за вас сделает интернет и брокер... 

Estou a falar da situação que ocorre no comércio manual - envia-se um pedido para abrir uma ordem e espera-se que seja processada, por vezes espera-se um minuto e quando se tenta enviar outra ordem recebe-se "canal está ocupado", como resultado, a primeira ordem não é aberta devido a alterações de preço e a segunda não foi enviada pelo terminal (ou o corretor não a aceitou?).Como se comportará a EA nesse caso? É necessário prescrever de alguma forma especial ou será capaz de enviar ordens sem esperar pela sua execução?

Razão: