Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 487
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
Como posso ler a linha 8 de um arquivo?
A pergunta diz respeito às operações de arquivo
https://docs.mql4.com/ru/files
Tudo em mql é feito pela força bruta, como alguém me disse uma vez?
Você não pode fazer isso de outra forma?
Todos os tipos de dados têm um certo tamanho de memória ocupada em bytes. Assim, ao escrever o código, você pode usá-lo e mudar o ponteiro do arquivo para o número de bytes ocupados pelos dados de uma cadeia.
Se uma linha contém 4 valores do tipo duplo, ela leva 4*8 = 32 bytes. Assim, para ler a 9ª linha de arquivo, precisamos deslocar o ponteiro do arquivo para 256 bytes.
Se deslocado do final do arquivo, então o valor deve ser negativo.
Mas, não é assim tão fácil. Algum tempo atrás, lidei com esta questão e descobri que os arquivos .txt e .csv não funcionam corretamente com isto, mas os arquivos .bin não cometem erros. Talvez este problema já tenha sido resolvido e você possa ter sorte.
Se houver 4 valores do tipo duplo
não estão todos os valores em uma cadeia de arquivos csv?
Eu tenho uma palavra para cada linha do arquivo.
Portanto, tenho valores de corda com um tamanho de 12 bytes.
Portanto, para chegar à linha 8, preciso deslocar o carro em 84 bytes.
Obrigado pela informação.
Como em mql 5 fazer um loop em todas as posições abertas?
este é o tópico do mql4
Não, este tópico é tanto mql4 como mql5
Boa tarde!
Pergunta: como acelerar o testador no terminal?
Tenho-o usando apenas 1 linha de CPU de 4, e apenas 150mb de RAM. (ou seja, não usa toda a potência do meu PC).
Quais são as opções?
Se isso já foi discutido, desista dos links Por favor!
Se o MT4 desempenha um papel aqui apenas a freqüência da CPU. Utiliza um fio ? Você pode lançar simultaneamente 4 terminais MT4 com diferentes tarefas de teste ou otimização. Você terá a mesma carga de CPU que em um terminal.
Como posso passar por todas as posições abertas em mql5?
mql5 faz a distinção entre posições e ordens. Uma posição é o resultado de uma troca. E uma troca é o resultado do acionamento de uma ordem.
Primeiro de tudo, uma solicitação comercial é enviada ao servidor, e ou uma ordem pendente (se a solicitação fosse para definir uma) ou uma ordem de mercado (se a solicitação fosse para abrir uma posição) aparece.
Se a ordem de mercado for acionada (uma negociação ocorreu), uma posição aparece (ou uma posição existente é modificada) como resultado dessa negociação.
Em uma conta hedge, pode haver muitas posições separadas (inclusive multidirecionais), em uma conta netting pode haver apenas uma posição.
Assim, para percorrer todas as posições, você precisa organizar o loop pelo seu número - respectivamente, use PositionsTotal() em vez do habitual para mql4 OrdersTotal().
Se você quiser loopar todos os pedidos em mql5, então (em mql5) use o usual para mql4 OrdensTotal().
mas não estão todos os valores em cadeia de arquivo csv?
Eu tenho uma palavra para cada linha do arquivo.
Portanto, tenho valores de corda com um tamanho de 12 bytes.
Portanto, para chegar à linha 8, preciso deslocar o carro em 84 bytes.
Obrigado pela informação.
O arquivo de texto tem que ser lido apenas linha por linha. Não há outra maneira de calcular o número da linha. Portanto - sim, somente por leitura consecutiva em loop usando FileReadString.
Eu crio níveis Fibonacci no gráfico usando ObjectCreate(name,OBJ_FIBO, ...) e depois ObjectSetFiboDescription(name,0,"...") e defino a descrição dos níveis, mas os nomes devem ser afastados da borda direita. Acrescentei espaço em branco, mas ele não apenas afasta o texto, mas também cobre linhas. Além disso, se você acrescentar mais espaços, o texto deixa de se mover para trás.
Pergunta: Posso adicionar um símbolo "invisível" ao texto, para que ele não cubra a linha abaixo dele?
Eu crio níveis Fibonacci no gráfico usando ObjectCreate(name,OBJ_FIBO, ...) e depois ObjectSetFiboDescription(name,0,"...") e defino a descrição dos níveis, mas os nomes devem ser afastados da borda direita. Acrescentei espaço em branco, mas ele não apenas afasta o texto, mas também cobre linhas. Além disso, se você acrescentar mais espaços, o texto deixa de se mover para trás.
Pergunta: Posso adicionar um símbolo "invisível" ao texto, para que ele não cubra a linha abaixo dele?
tente pontos e um caractere com código 0