Erros, bugs, perguntas - página 2377
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Sim. Qualquer impressão do OnInit
Obrigado. Interessante, se por acaso não me apercebi, como seria possível descobrir...
ZS deixá-lo-ia apenas para Agentes locais. Na Nuvem, pode facilmente fazer spam no registo desta forma.
Obrigado. Interessante, se por acaso não me apercebi, como seria possível descobrir...
ZS deixá-lo-ia apenas para Agentes locais. Na Nuvem, pode facilmente fazer spam no registo desta forma.
Quando executa a genética, optimiza de acordo com o seu critério personalizado?
Com base nos registos apresentados, o OnTester devolveu 0 em todos os casos
Normalmente optimizo de acordo com o meu critério, mas aqui experimentei também o critério personalizado. O resultado é o mesmo.
OnTester devolve 0, é por isso que devolve zeros nos resultados - isso é compreensível. A questão é porque é que retorna "0" em execução geral (optimização) mas em execução única a partir de "resultados zero" (com os mesmos parâmetros) retorna resultado normal, gráfico, etc.? Ou seja, algo não está a funcionar em "Full overshoot" e, no entanto, a genética funciona bem. Algum outro pensamento/ideas?
Algum outro pensamento/ideas?
Puxar toda a informação de optimização passe desta forma
Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos
MT5. TESTADOR DE ESTRATÉGIA. Divergência dos resultados dos testes e da optimização.
fxsaber, 2017.08.22 11:06
Inserir estas linhas na EA
E executar Optimização. Em seguida, executar uma única corrida desencontrada.
Depois comparar os dois relatórios guardados da execução correspondente da Optimização e da execução única.
O resultado da comparação dos dois relatórios revelará rapidamente as causas.
O objectivo é melhorar o mais possível o que é feito, peço aos criadores que não se ofendam com possíveis críticas.
1. Não compreendo as razões para diferenças tão fortes em "interfaces" para funções de leitura de socket é necessário especificar explicitamente o não existe nenhum parâmetro deste tipo (definido pela função separada SocketTimeouts).
2. O nome da função SocketIsReadable não tem nada a ver com o que ela realmente executa:
De facto, SocketIsReadable é análogo à função ioctlsocket() com a bandeira FIONREAD em Ws2_32.dll
3. Como pode um utilizador que utiliza a funcionalidade Socket* através de uma ligação não encriptada obter uma resposta de um servidor com um atraso mínimo de tempo, se o servidor não interromper a ligação após a transferência de dados?
Sim, é assim que é feito:4. SocketIsReaditáveis devolve informações falsas.
Desligar a Internet e executar o código acima.
Como resultado, a SocketIsReadable devolve um valor razoável de 1. Maravilhas.
Consegui descrever cerca de um terço de todas as questões e problemas relacionados com a Socket*.
Infelizmente, precisei de muito tempo para verificar, descrever e verificar tudo de novo. (para que não seja um facto que haverá uma sequela)
A impressão geral é que ou tudo foi feito com muita pressa, ou a funcionalidade Socket* chegou ao revelador júnior.
Em qualquer caso, a solução actual é muito grosseira e cobre uma abordagem bastante restrita da utilização de tomadas.
Normalmente optimizo de acordo com os meus próprios critérios, mas aqui também experimentei os critérios padrão. O resultado é semelhante.
OnTester retorna 0, é por isso que há zeros nos resultados - isso é compreensível. A questão é porque é que retorna "0" em execução geral (optimização) mas em execução única a partir de "resultados zero" (com os mesmos parâmetros) retorna resultado normal, gráfico, etc.? Ou seja, algo não está a funcionar em "Full overshoot" e, no entanto, a genética funciona bem. Algum outro pensamento/ideas?
Pode partilhar uma EA (ex5 em condições privadas) e de optimização?
Queremos reproduzir o problema que mencionou.
Após a investigação, a EA será irrevogavelmente apagada
Pode partilhar a EA (ex5 numa mensagem privada) e as condições de optimização?
Queremos reproduzir o problema que mencionou.
Após a investigação, a EA será irrevogavelmente apagada
Pode partilhar a EA (ex5 numa mensagem privada) e as condições de optimização?
Queremos reproduzir o problema que mencionou.
A EA será irremediavelmente apagada após a investigação
Respondido numa mensagem privada.
No âmbito da familiarização com a funcionalidade Socket*, surgiram algumas questões relativas à implementação actual.
O objectivo é melhorar o mais possível o que é feito, peço aos criadores que não se ofendam com possíveis críticas.
1. Não compreendo as razões para diferenças tão fortes em "interfaces" para funções de leitura de socket é necessário especificar explicitamente o não existe nenhum parâmetro deste tipo (definido pela função separada SocketTimeouts).
2. O nome da função SocketIsReadable não tem nada a ver com o que ela realmente executa:
De facto, SocketIsReadable é análogo à função ioctlsocket() com a bandeira FIONREAD em Ws2_32.dll
3. Como pode um utilizador que utiliza a funcionalidade Socket* através de uma ligação não encriptada obter uma resposta de um servidor com um atraso mínimo de tempo, se o servidor não interromper a ligação após a transferência de dados?
Sim, é assim que é feito:4. SocketIsReaditáveis devolve informações falsas.
Desligar a Internet e executar o código acima.
Como resultado, a SocketIsReadable devolve um valor razoável de 1. Maravilhas.
Consegui descrever cerca de um terço de todas as questões e problemas relacionados com a Socket*.
Infelizmente, precisei de muito tempo para verificar, descrever e verificar tudo de novo. (para que não seja um facto que haverá uma sequela)
A impressão geral é que ou tudo foi feito com muita pressa, ou a funcionalidade Socket* chegou ao revelador júnior.
Em qualquer caso, a solução actual é muito grosseira e cobre uma abordagem bastante restrita da utilização de tomadas.
1. esta é a interface.
As funções TLS são auxiliares para apoiar casos complexos. Não há problema com a definição de SocketTimeouts - estes são os melhores a utilizar.
2. desempenha a sua função correctamente.
Não deve estar consciente dos problemas com a detecção de quebra de ligação TCP. É bastante difícil (com recursos intensivos ao custo de chamadas extra) detectar que uma ligação é garantidamente interrompida correctamente. Todas as implementações de redes sofrem com este problema.
A nossa implementação de SocketIsReadible é suficientemente inteligente e tem um detector de ruptura. Quando detecta um byte 0 limpo, faz o trabalho extra de verificar se a tomada está completa:
Uma vez que devolve o número de bytes sem uma bandeira de terminação, produz 1 byte para que uma tentativa de leitura posterior/iminente SocketRead normalmente devolva um erro.
Porque é que isto é correcto? Porque a maior parte do código é escrito por programadores desta forma:
o resultado real da operação é verificado numa tentativa de leitura directa.
3. precisa de fazer SocketIsReadible() antes da leitura propriamente dita, se não souber o tamanho exacto dos dados a serem lidos.
A ligação SocketisReadible/SocketRead dá-lhe a capacidade de não perder o controlo (minimizar a quase zero a perda de controlo) sobre o fluxo de execução do seu programa. Isto evita voar para dentro de timeouts de rede.
Sim, mais algumas linhas de código, mas não perderá o controlo durante um milissegundo(aproximadamente). Cabe-lhe a si decidir o que fazer nos intervalos de ausência de dados da rede.
4. Explicado no segundo parágrafo.
Emissão 1 por causa da leitura e do estímulo de saída como um erro de leitura.
As suas conclusões estão erradas.
Esta é a natureza do transporte TCP/IP, onde não existem quaisquer garantias. Também aí se pode entrar em buracos negros na rede em filtros/firewalls quando não há parte de sinalização TCP. O tempo limite bruto e o controlo do fluxo de dados permitem-lhe detectá-los e terminar as ligações você mesmo.
Demos uma interface de acesso bruto/directo a funções de rede, incluindo implementações de TLS. Se os utilizar, é você quem precisa de embrulhar correctamente as funções em bruto numa SocketIsReadible/SocketRead handleer segura/controlada.
Se quiser fazer pedidos de alto nível sem ter de pensar nas minúcias, existem as funções WebRequest. Todas as protecções são aí construídas.