Algoritmos, métodos de solução, comparação de seu desempenho - página 14

 
Sergey Dzyublik:

1. não faz sentido. Algoritmos são comparados como um todo sobre resultados relativos.
2. A solução já está integrada - é uma biblioteca padrão<Generic\ArrayList.mqh>.

1. Ou seja, a velocidade do algoritmo não é importante. A solução é "conceitualmente poderosa" e isso é suficiente. Ok.

2. Então, você só liga através do plug-in e pronto? Ok.

//--------------------------------------------------------------------

Se o critério principal para avaliar o algoritmo é"Conceptualmente Poderoso", então eu perdi.

Se o critério principal do algoritmo for "Simplicidade, velocidade e conveniência ", eu ganho.

Neste momento, podemos encerrar o assunto.

 
fxsaber:

  1. Por que razão o estilo é tal que as interfaces são escritas primeiro, e só depois as classes (como descendentes de suas respectivas interfaces)?
  2. Por que isso é feito? (StringToUpper(generatorName);)
  3. Obviamente, eles simplesmente esqueceram.




Um pouco surpresos que o tenham feito via CArrayList em vez de usar o recém discutido HashMap. Não deveria ter sido guiado pelo original torto do autor, onde as transações são índices e não bilhetes.

O HashMap teria sido mais claro, mais prático e mais rápido, muito provavelmente.


Eu mesmo me surpreendi com a facilidade de leitura de tal código. Entretanto, eu mesmo ainda não alcancei o nível de abstração mostrado na programação. Meu estilo até agora é procedimental + OOP. Este código é puro OOP. Aparentemente, é uma escola de programação bem treinada. Somente o trabalhode Stanislav Korotky neste site tem um nível de abstração semelhante.


1) O estilo é tal para a integração.
Se você precisar testar sua classe, poderá herdar e implementar a interface para o teste.
Se você precisar de seu próprio gerador, você pode herdá-lo.


2) Sim, isso é redundante, exagerado, obrigado:

StringToUpper(generatorName);



3) Não, eu não tenho:

      //TODO add shared_ptr / move out generator (Dependency Injection)
      IGenerator<T>* generator = CreateGenerator<T>();

Foi originalmente escrito emshared_ptr, do qual não tenho uma implementação.
Mas é uma boa idéia colocaro IGenerator<T> dependência em parâmetros de função para testes.

 
Sergey Dzyublik:

3) Não, eu não esqueci:

Foi escrito originalmente sobshared_ptr, do qual não tenho uma implementação.

Estou vendo, eu não tinha notado.

 
Comprimento da corda, você sabe quantos caracteres no máximo?
 
Renat Akhtyamov:
Comprimento da corda, não sei - quantos caracteres no máximo?

Estou esperando por uma resposta:

Fórum sobre comércio, sistemas automatizados de comércio e testes de estratégia comercial

Algoritmos, métodos de solução, comparando seu desempenho

Vladimir Karputov, 2017.12.11 08:37

Corrija-me, mas o comprimento das cordas não é finito?

https://msdn.microsoft.com/ru-ru/library/sx08afx2.aspx

Só não consigo encontrar esta limitação para a MQL5.


 

Há um claro padrão de desrespeito repetido pela comunidade e um claro padrão de provocação.

Nem sempre é possível não lê-lo (os cargos de uma pessoa em vários tópicos construtivos), depois do que desenvolver e esquecer - ainda menos.

Trolling and spitting in the hands of help, cujo número distingue muito este recurso do lado positivo.


Pode estar errado.

 
Vladimir Karputov:

Corrija-me, mas o comprimento das cordas não é finito?

Apenas limite de memória

void OnStart()
{
  string Str;
  
  Print(StringInit(Str, 1 e8)); // true - 100 Mb
}
 
Реter Konow:

1. Ou seja, a velocidade do algoritmo não é importante. A solução é "conceitualmente poderosa" e isso é suficiente. Ok.

2. Então, você só liga através do plug-in e pronto? Ok.

//--------------------------------------------------------------------

Se o critério principal para avaliar o algoritmo é"Conceptualmente Poderoso", então eu perdi.

Se o critério principal para avaliar o algoritmo -"simplicidade, velocidade e conveniência" - então eu ganho.

Você pode encerrar o tema sobre este ponto.


Desculpe, você não pode, eu me arrependo.
Mas que pessoa estúpida você é.
O problema não é que alguém não saiba algo, mas a total falta de vontade de aprender algo.

Que diferença faz 10ms um ou 8ms o outro.
Se você apenas precisa comparar relativamente quem é mais rápido e por quanto, ao mesmo tempo em que se lembra de verificar a fidelidade.

 
fxsaber:

Restrição de memória apenas

OOO !!!!!

Muito obrigado!

porque minha corda está cortada e eu não sabia como aumentar o comprimento

Não estrague o fio, não lute aqui.

 

solução em toda a folha - tanto código.... Você não poderia ser mais específico?

Estou apenas tentando deixar claro para os outros)

Em geral, eu mesmo também não posso adquirir o hábito de usar as bibliotecas padrão - e acho que muitas pessoas aqui têm suas próprias versões da mesma folha.

mesmo problema

ou seja, salvamos todos os valores, ticker - comentário Magik TP e SL, preço aberto, tempo, preço fechado - digamos que será para contabilidade de pedidos virtuais

Na verdade, a solução mais rápida seria armazenar todas as informações na estrutura. E aqui os acessos serão feitos através do índice de referência sammiva ordenado.


A propósito, a questão de como definir uma impressão. pode ser algumas soluções prontas. Em resumo, deve imprimir não com tanta freqüência - mas antes de falhar, despejaria a informação necessária, ou de alguma forma convenientemente ajustada desta forma - e de preferência sem as variáveis globais

Razão: