Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 829
![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
O perito multi-divisas no laço pede dados por símbolo. Existe um tal fragmento:
Todos os símbolos passam normalmente. Durante a primeira passagem o tempo é de cerca de 120ms, porque os amortecedores indicadores estão a encher. A partir da segunda passagem de cálculo na barra actual, o tempo de cálculo é inferior a 1 ms.
Peculiaridade é que um corretor conhecido tem o símbolo EURRUR, para o qual não há dados ("Wait for update"). Por conseguinte, o cálculo fica preso nesta linha durante 51 segundos. Erro 4806. 51 segundos é inaceitável mesmo por uma (primeira) vez, e muito menos por um ciclo.
Pergunta. Como é que descubro rapidamente que não existem dados para uma determinada personagem? Eu memorizaria então e nas iterações subsequentes passaria por cima dele e continuaria sem perder o ritmo.
Colegas, por favor aconselhem como converter um conjunto de tipo duplo em cordel. Preciso de o escrever para um ficheiro. Aqui está um código de formação geral.
Informação retirada do artigo
Salvar e carregar matrizes a partir de um ficheiro
Ao guardar e carregar um array de um ficheiro, devemos considerar a diferença na primeira dimensão do tamanho do array e o número total dos seus elementos. Ao guardar um array, deve primeiro escrever o tamanho do array (o número total de elementos determinado pelo ArraySize()) no ficheiro, depois o array inteiro:
Olá, estou a enfrentar o seguinte problema.
Tenho dois EAs para o mesmo instrumento com magiks diferentes, respectivamente. Eu ponho o meu magik através do CTrade e abro uma posição também através do CTrade. Quando tenho uma posição aberta da primeira EA, o seu magik é atribuído à segunda EA (ver abaixo), por isso a verificação de posições abertas não vê o meu magik e eu abro muitas posições numa direcção. A conta está numa demonstração, isto não pode ser detectado no testador. Se o valor do magik for salvo na classe, talvez deva ser zerado, mas não sei como.
Olá, estou a enfrentar o seguinte problema.
Tenho dois EAs para o mesmo instrumento com magiks diferentes, respectivamente. Eu ponho o meu magik através do CTrade e abro uma posição também através do CTrade. Quando tenho uma posição aberta da primeira EA, o seu magik é atribuído à segunda EA (ver abaixo), por isso a verificação de posições abertas não vê o meu magik e eu abro muitas posições numa direcção. A conta está numa demonstração, isto não pode ser detectado no testador. Se o valor do magik for guardado na classe, talvez precise de ser zerado, mas não sei como.
Por favor,cole o código correctamente, não como uma folha de texto.
Quanto ao código: definir os parâmetros de entrada para cada EA com o seu próprio magik. Digamos que o primeiro é 10001, depois o segundo é 10002.
Por favorinsira o código correctamente, não como uma folha de texto.
Quanto ao código: definir os parâmetros de entrada para cada EA com a sua própria magia. Suponhamos que o primeiro é fixado em 10001, depois o segundo em 10002.
Obrigado por uma resposta tão breve. Mas esse é o ponto, as magias são diferentes. Assim, determinei que o segundo robô abra posições com o primeiro mágico. Não sei como acontece e onde ele guarda o primeiro número mágico da EA, mas gostaria de descobrir.
Obrigado pela resposta rápida. Mas a questão é essa, os mágicos são diferentes. Então descobri que o segundo robô está a abrir posições com o número mágico do primeiro. Não sei como acontece e onde ele guarda o primeiro número de mágico, mas gostaria de descobrir.
Neste caso, é melhor definir o magik
// выставляем магик m_trade.SetExpertMagicNumber(Magic);
antes de cada abertura de posição/ordem em vez de no OnInit.Neste caso, é melhor especificar um magik
antes de cada abertura de posição, não no OnInit.Neste caso, não é "melhor", é exactamente o que se precisa - é uma classe de embalagem para funções comerciais normais. Não armazena múltiplos magiks. É por isso que deve ser colocado um magik cada vez antes e quando se quer abrir uma posição com um novo magik.
Geralmente a sequência é a seguinte:
etc....
Neste caso, é melhor definir um magik
Antes de cada abertura de uma posição/ordem, e não no OnInit.Originalmente era assim, não ajuda. Mas em exemplos, é normalmente no OnInit que se moveu. Há muito tempo que ando a mexer nisto, as corujas no teste parecem estar a correr bem, depois de repente abro o servidor e há 20 posições numa direcção. O facto de a verificação das posições em aberto não poder ser feita através das aulas?
Obrigado pela resposta rápida. Mas a questão é essa, os mágicos são diferentes. Então descobri que o segundo robô está a abrir posições com o número mágico do primeiro. Não sei como acontece e onde ele guarda primeiro o número mágico da EA, mas quero descobrir.
Uma vez que não existe o métodoGetExpertMagicNumber na classe CTrade, por favor imprima este código após a operação comercial:
Desta forma, pode verificar se ambos os EAs têm magias diferentes.