Erros, bugs, perguntas - página 213

 
Olegts:

Como podem ver pela figura, apenas três núcleos estão a funcionar, já vi mais do que uma situação em que durante os testes o número de núcleos envolvidos no trabalho cai gradualmente para zero, após o que todos os núcleos começam a funcionar de uma só vez, ou seja, há inactividade, porque é que os núcleos libertados não começam a funcionar de uma só vez?

Para começarmos a calcular a próxima geração, devemos primeiro processar a geração actual. Todas as corridas da geração actual devem ser concluídas a fim de seleccionar as melhores e realizar operações genéticas entre as melhores. Só então poderá ser iniciada a próxima geração.

Quando faltam alguns resultados para completar o processamento da geração actual, os agentes de teste libertados ficam sem trabalho.

 
stringo:


Obrigado
 
Virty:

Qual é o tempo máximo que pode ser definido no EventSetTimer( )?

INT_MAX? penso que não. Não quero investigá-lo eu próprio e não está na ajuda.


Qualquer hora pode ser definida aqui, mas no testador o tempo será tomado modulo 50 dias. Aprox. 4 220 000 segundos.

A qualidade da MQL5 desmotiva-me.

 
Virty:

Qualquer tempo pode ser utilizado aqui, mas no testador o tempo será tomado modulo 50 dias. Aproximadamente 4 220 000 segundos.

A qualidade da MQL5 é desmotivante.

Pode definir um máximo de 2 147 483 segundos (correspondente a 35 791 minutos, 596 horas ou 24 dias). Não é assim que o temporizador é tratado no testador.

Pergunta contrária. Porquê definir o temporizador para 24 dias?

 
stringo:

Pode ser definido um máximo de 2.147.483 segundos (correspondente a 35.791 minutos, 596 horas ou 24 dias). Não é assim que o temporizador é tratado no testador.

Pergunta contrária. Porquê definir o temporizador para 24 dias?

Quero que a posição seja fechada após abertura a tempo de 1 segundo a 10 anos, dependendo de algo.

Tentei desta forma

request.type_time=ORDER_TIME_SPECIFIED; // A encomenda será válida até à data de expiração
request.expiration=1; //or TimeCurrent()+time; (int time=1;)

Não funciona com segundos.

Contornou este problema com EventSetTimer( ). Também limitado a 24 dias. Mais importante ainda, não esperava tal confusão por parte do temporizador. Deveria ter sido avisado. Ah, bem.

A propósito, será o tempo no temporizador o tempo real do calendário ou apenas o tempo de negociação? Por outras palavras, imediatamente após o fim-de-semana, quanto tempo é mostrado no temporizador?

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

Mais uma vez foi relatado um caso de perda parcial de comunicação entre o terminal e o servidor. Construir 360. Não são recebidas citações, mas a informação sobre tempo e volume de transacções é actualizada. Existe um círculo rotativo com sectores cinzentos no indicador do estado da ligação. Há mensagens no diário de bordo:

2010.11.29 18:03:03 Comércios '630031' : negócio #2107036 comprar 0,10 GBPUSD a 1,55387 feito (com base no pedido #2157432)
2010.11.29 18:00:02 Comércios '630031' : negócio #2106895 comprar 0,10 GBPUSD a 1,55341 feito (com base no pedido #2157265)
2010.11.29 17:07:49 Rede '630031': autorizada em MetaQuotes-Demo
2010.11.29 17:07:47 Rede '630031': ligação a MetaQuotes-Demo perdido
2010.11.29 16:10:47 Rede '630031': a negociação foi desactivada - modo investidor
2010.11.29 16:10:47 Rede '630031': terminal sincronizado com MetaQuotes Software Corp.
2010.11.29 16:10:47 Rede '630031': autorizada em MetaQuotes-Demo
2010.11.29 16:10:45 Rede '630031': ligação a MetaQuotes-Demo perdido

Note que não há mensagem "terminal sincronizado com MetaQuotes Software Corp." depois das 17:07:49, ao mesmo tempo que são relatadas novas transacções.

 

Rosh:
Сделайте прогоны с одинаковым количеством тиком и разным количеством сделок. Тогда можно сравнивать.


Aqui está.

Sistema de teste (qualquer que tenha sido!): Windows XP SP3, Pentium 4, 3GHz, memória 1.25Gb

Todas as corridas foram realizadas utilizando Alpari-Demo, GPBUSD M1, período 04.10.2010-05.11.2010 (1521376 ticks, 34194 barras) em modo Normal, cada tic, depósito 10000USD (a propósito, onde obteve o depósito 1000000USD? A minha lista termina com 100000), alavancagem 1:100. Construí um consultor especializado que utiliza a peculiaridade da conta Alpari-Demo - margem zero - para simplificar a sua construção. Para cada tic tac, o Expert Advisor abre uma ordem de 0,1 lote numa direcção, até atingir a quantidade de trocas especificada usando o parâmetro, o resto dos ticks são ignorados. Assim, a influência do número de trocas é minimizada (1 troca foi obtida em todas as séries de testes). A propósito, no final de cada teste verificámos o tempo aproximado de formação do relatório no formato Open XML (não excedeu até agora o limiar da paciência). As trocas geradas pelo testador no final dos testes não foram tidas em conta (uma troca por série).

Assim:

A primeira série de testes de 10 a 100 com incrementos de 10 não são de interesse devido ao pequeno tempo de teste - tempo de geração de carrapatos de 5359 a 6453.

A série seguinte é de 100 a 1000 trocas em 100 incrementos (o resultado para 100 é retirado da série anterior):

Transacções Tempo, ms Tempo total, ms
Tempo aproximado de formação do relatório xlsx, seg. Notas
100 6359 6813
5 Menos de 5 segundos
200 6172 6594
5
300 6875 7375
7
400 5734 6094
10
500 6109 6562

14

600 6281 6687
17
700 8016 8563
23
800 7281 7719
28
900 9047 9610
35
1000 8453 8812
44

Tudo bem, mas o problema da geração de relatórios está a começar a aparecer

 
Ashes:

Todas as corridas foram realizadas com Alpari-Demo, GPBUSD M1, período 04.10.2010-05.11.2010 (1521376 ticks, 34194 barras) em modo Normal, cada tic, depósito 10000USD (a propósito, onde obteve o depósito de 10000USD?
Não é um problema, a quantidade necessária pode ser introduzida manualmente.
 

A série final (mais testes sobre este hardware é demasiado dura para mim;) de 1000 a 10000 em passos de 1000:

É aqui que os travões a que Rosh se referiu questionadamente aparecem em toda a sua glória.

Os ofícios Tempo, ms Tempo total, ms
Tempo aproximado de geração de relatórios xlsx, seg. Notas
1000 8453 8812
44

2000 26750 27266
159

3000 60782 61141
355
**
4000 125469 171391
480 Mais de 480 segundos **
5000 414609 459281
Sem dados Não há geração de relatórios para execuções superiores a 4000 transacções
6000 600610 601094
Sem dados

7000 648234 675576
648234 675576 Sem dados

**
8000 1082437 1082796
1082437 1082796 Sem dados

9000 1465203 1508359
Sem dados

10000 1988031 2012500
Sem dados

Parafraseando Rosh, como se pode ver no diagrama, a dependência do tempo de teste do número de RATEs NÃO é estritamente linear. Pelo contrário, não é de todo linear.

O resultado com 5000 e 6000 é provavelmente um pouco sobrestimado, mas pode ser observada uma tendência.

Quero lembrar-vos que este resultado foi obtido utilizando o Consultor Especialista mais simples que praticamente não gasta tempo em qualquer análise e não utiliza indicadores; ou seja, os resultados seriam ainda piores numa EA funcional.

Para comparação:

Executando este teste com 10000 negócios numa máquina Windows 7, Intel Pentium Dual-Core E5400 @ 2,70 GHz, 2038 MB (PR111) levou 472866ms.

luz do acima exposto, existe alguma probabilidade de alguns dos candidatos ao Campeonato 2010 poderem ter sido eliminados injustamente devido à barreira dos 15 minutos e às peculiaridades do testador (se houvesse muitos acordos).

** - várias vezes no final do testador, o gráfico do símbolo que mostra os ofícios não foi exibido.

 

Interesting:
Это не проблема, нужная сумма может быть вбита руками.

Obrigado, eu não sabia.