Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 1358
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
Olá!
Talvez haja alguém "a par"... Estou à procura de uma solução para converter uma byte-sequência de ficheiro ZIP obtida usando WebRequest num arquivo ZIP-archive e desempacotá-lo em disco usando ferramentas MQL5.
A procura de uma solução levou-me ao artigo "Manuseamento de arquivos ZIP utilizando ferramentas MQL5 sem bibliotecas de terceiros" publicado em 2015 ( https://www.mql5.com/ru/articles/1971 ). Aqui o autor mostrou a solução e publicou a classe CZip para trabalhar com os arquivos ZIP. Contudo, esta solução não pode ser aplicada - ao compilar, o MetaEditor não pode construir o ficheiro executável, citando erros na biblioteca da classe CZip.
A essência da minha pergunta pode ser reduzida ao seguinte: - Como posso utilizar separadamente métodos da classe CZip, em particular CreateFromCharArray() e UnpackZipArchive(), incluindo-os directamente no código do script?
Existe um serviço que periodicamente cria ficheiros (fecho tudo correctamente através de FileClose).
Após o início, normalmente o primeiro ficheiro é criado normalmente, depois o FileOpen começa a devolver o erro 5001.
Mas tudo isto é aleatório - depois funciona, depois não. Ao mesmo tempo, nunca reparei no problema quando corro o mesmo código num guião ou num Expert Advisor.
Como contornar esta proibição?
Permitam-me que repita a minha pergunta.
Existe um serviço que periodicamente cria ficheiros (fecho tudo correctamente através de FileClose).
Após o arranque, o primeiro ficheiro está ok, e depois FileOpen dar-me-á o erro 5001.
Mas é aleatório - às vezes funciona, às vezes não. Ao mesmo tempo, nunca reparei no problema quando corro o mesmo código num guião ou num Expert Advisor.
Como contornar esta proibição?
Quer que alguém escreva um serviço semelhante com os mesmos bugs que o seu e lhe diga o que precisa de ser corrigido?
Quer que alguém escreva um serviço semelhante com os mesmos bugs que o seu e lhe diga o que precisa de ser corrigido?
Na função de pesquisa de ficheiros, a pesquisa não estava a fechar através de FileFindClose().
De qualquer modo, obrigado pela resposta.
Começou a cortar a lishee para publicar o código e tudo funcionou ))
Na função de pesquisa de ficheiros, a pesquisa não foi fechada através de FileFindClose().
De qualquer modo, obrigado pela resposta.
Sim, qualquer coisa que utilize um ficheiro abre-o (abre o acesso ao ficheiro)))) E é necessário fechar o ficheiro (acesso).
Fechando um ficheiro desnecessariamente retornará -1 sem consequências, mas um ficheiro aberto esquecido pode causar muitos problemas)
Lembre-me no bloco de entrada, pode o comentário não aparecer nos parâmetros do robô?
para que os parâmetros ainda mostrem o MagicNumber em vez do MagicNumber (este é um exemplo)
Lembre-me no bloco de entrada, pode o comentário não aparecer nos parâmetros do robô?
para que os parâmetros ainda mostrem o MagicNumber em vez do MagicNumber (este é um exemplo)
O 'sinput' produz um parâmetro, mas não se pode incluí-lo na optimização.
Variáveis com modificador de sinput#
As variáveiscom modificador de entradapermitem não só definir valores de parâmetros externos ao lançar programas, mas são também necessárias para optimizar estratégias comerciais no testador. Todas as variáveis de entrada declaradas no Expert Advisor, excepto o tipo de string, podem participar na optimização.
Por vezes, é necessário excluir alguns parâmetros externos do programa da área de todos os passes no testador. Existe um modificador de memóriasinputespecificamente para tais casos. sinput é uma forma abreviada de declaração de uma variável externa estática: sinput = entrada estática. Ou seja, uma declaração deste tipo no código EA
será equivalente a uma declaração completa
Uma variável declarada com modificador de sinput é um parâmetro de entrada de um programa MQL5. O valor deste parâmetro pode ser alterado ao lançar o programa. Mas esta variável não participa no processo de optimização dos parâmetros de entrada, ou seja, os seus valores não são pesquisados quando se procura o melhor conjunto de parâmetros pelo critério dado.
A imagem mostra que o Expert Advisor tem 5 parâmetros externos dos quais o parâmetro "Número de camadas" foi declarado comosinpute é igual a 6. Este parâmetro não pode ser alterado no procedimento de optimização da estratégia comercial, mas o valor necessário pode ser definido para que possa ser utilizado. Os campos Start, Step e Stop não estão disponíveis para a definição de valores para uma tal variável.
Assim, ao definirmos o modificador de sinput para uma variável, proibimos um utilizador de optimizar este parâmetro. Isto significa que no Strategy Tester, um utilizador do terminal não pode definir valores de arranque e paragem para a contagem automática dentro do intervalo especificado durante o processo de optimização.
Contudo, existe uma excepção a esta regra - as variáveis sinput podem variar nas tarefas de optimização usando a funçãoParameterSetRange(). Esta função foi desenvolvida especificamente para controlar programticamente a gama de valores disponíveis para qualquervariável de entrada, incluindoos declarados como entradaestática(sinput). Outra função,ParameterGetRange(), permite receber valores de variáveis de entrada quando a optimização é lançada (emOnTesterInit() handler) e, se necessário, redefinir um passo de mudança e um intervalo dentro do qual serão enumerados valores de parâmetros optimizados.
Assim, a combinação do modificador de sinput e duas funções de tratamento de variáveis de entrada permite criar regras flexíveis para definir intervalos de optimização de algumas variáveis de entrada, dependendo dos valores de outras variáveis de entrada.
sinput que me lembro, a pergunta é sobre a exibição de um comentário, é possível exibir o nome da variável em vez de um comentário, em parâmetros EA?
ps com sinput acidentalmente, por exemplo)
sinput I remember, the question is in the comment display, can the variable name be display instead of the comment, in the EA parameters?
ps sinput line acabou de ser um exemplo)
Apenas não escreva nada depois de ';'
Exemplo - há uma descrição:
e agora remover a descrição:
e veremos o nome da variável
Apenas não escreva nada depois de ';'
Essa era a questão, o comentário está lá, mas o nome da variável tem de ser produzido nos parâmetros,
talvez haja um truque para isso....