Biblioteca de classes genéricas - bugs, descrição, perguntas, recursos de uso e sugestões - página 11
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
O último exemplo para hoje e aparentemente para esta semana: a correspondência entre o número de comércio e o número de ordem que o iniciou:
Para o meu caso em que existem mais de 10.000 transacções na conta, o resultado é o seguinte:
Fórum sobre negociação, sistemas de negociação automatizados e testes de estratégia de negociação
Biblioteca de classes genéricas - bugs, descrição, perguntas, peculiaridades de uso e sugestões
Vasiliy Sokolov, 2017.12.08 13:30
Se N é muito pequeno, simplesmente normalizamos o número obtido pela função hash, para que esteja sempre no limite de N:
Até agora, li até aqui. Vasily, obrigado, está tudo claro, excepto o destacado. Na minha opinião, tomar o resíduo como uma normalização é errado. Parece mais lógico
O problema é esse: o tamanho do dicionário é muitas vezes desconhecido. Um exemplo simples, digamos que temos um consultor a negociar. Rastreia os negócios realizados. Quando uma troca aparece na história, precisamos de ligar esta troca com o Medjack do Expert Advisor. Para isso, é lógico usar o dicionário. Onde o número da negociação é usado como chave (identificador único), e o número mágico do Expert Advisor é usado como um valor. O problema é que no início da EA não podemos determinar antecipadamente se teremos 100 negociações, 1000 ou nenhuma negociação. Independentemente da quantidade de memória que você alocar de antemão, ela ainda será muito pequena ou muito grande.
É óbvio que ainda não me arrebentei. Podes explicar o que está a ser atribuído? Eu não entendo nada disso.
Parece um escárnio.
HashFunction.mqh sem um inlude. Isto não está certo.
Qual é a utilidade desta função?
Acho que ainda não parti completamente o meu cérebro. Poderia esclarecer o destacado? Eu não entendo nada disso.
Pessoalmente, entendi que quando as trocas são feitas, a EA deve escrever o número de um magik no dicionário (array) pelo número da troca, que neste caso é um índice de células.
O número de futuras negociações não é conhecido antecipadamente, e já devemos ter um array declarado para escrever as majors. A tarefa é alocar com antecedência a quantidade de memória necessária para a matriz.
É impossível alocar com antecedência a quantidade exata de memória. Assim, poderíamos escrever um cordel com cordas, obter o número de substratos, inicializar a matriz e escrever todos os substratos (favos de mel) ali.
Então cada medjack será acessado pelo número do comércio.
É mais ou menos assim que eu vejo as coisas.
O último exemplo para hoje e aparentemente para esta semana: a correspondência entre o número de comércio e o número de ordem que o iniciou:
Para o meu caso onde existem mais de 10.000 transacções na conta, o resultado é o seguinte:
Quanto é que a versão clássica retorna no seu caso?
Qual é a utilidade desta função?
Não se limitará a compilar para estruturação e união.Acrescentou outra sobrecarga
Encontrei-me.
Acrescentou outra sobrecarga
Parece-me que se um objeto não implementar alguma interface ou método, é melhor gerar explicitamente uma exceção do que mantê-lo em silêncio e depois procurar a fonte do problema em termos inequívocos.
Ele retorna números negativos, o que logicamente se segue a esse código. Está tudo bem?
Absolutamente normal.
Hash não lhe garante nada, é apenas um número que caracteriza este ou aquele objecto até certo ponto.
Se precisar de um número inteiro, use uint.
Quanto a mim, se um objeto não implementa alguma interface ou método, é melhor gerar explicitamente uma exceção do que ficar em silêncio e depois procurar a fonte do problema por um tempo desconhecido.
MqlTick?
MqlTick?
Você entende o que o código faz se não houver uma implementação explícita da especialização da função do modeloGetHashCode para o tipo T?
Resposta: é patético, porque encobre a falta de implementação. Todos os objetos da mesma classe retornarão o mesmo valor de hash.