[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 275
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
A questão é.
Como obter um número sem menos, se se verificar que Aberto[1] <Fechado[1] e quando você subtrai Aberto[1]-Fechado[1] eu recebo o valor com um menos, como fazer com que seja sempre um valor positivo, eu preciso calcular a distância entre Aberto e Fechado talvez haja outra maneira?
Obrigado.
A questão é.
Como obter um número sem menos, se se verificar que Aberto[1] <Fechado[1] e quando você subtrai Aberto[1]-Fechado[1] eu recebo o valor com um menos, como fazer com que seja sempre um valor positivo, eu preciso calcular a distância entre Aberto e Fechado talvez haja outra maneira?
>> Obrigado.
https://docs.mql4.com/ru/math/MathAbs
https://docs.mql4.com/ru/math/MathAbs
;) >> Obrigado!
Bom dia!
Ao escrever uma EA para MT4, havia a necessidade de determinar programmaticamente (isto é, no próprio código da EA) se pelo menos uma ordem desta EA foi aberta ou não. Você pode informar se existe tal função? Talvez, se houvesse, parecesse algo assim
Bool (tem um pedido de EA com este número mágico aberto)
{resposta= Verdadeiro/Falso}
?
Especialistas - ajude-nos, por favor - já estamos embrulhando nossos cérebros
P.S.- tentou a opção com números de pedido - não funcionou
Bom dia!
Ao escrever uma EA para MT4, havia a necessidade de determinar programmaticamente (isto é, no próprio código da EA) se pelo menos uma ordem desta EA foi aberta ou não. Você sabe se existe tal função?
Esta função vai funcionar?
Exemplo de uso: Colocamos esta função no final de nosso código e a verificamos quando abrimos uma posição:
Se não procurarmos posições, mas sim ordens pendentes, podemos usar esta função
Função NumberOfOrders().
Esta função retorna o número de pedidos . Você pode limitar a lista de ordens a serem verificadas usando os parâmetros da função:
sy - Nome do instrumento. Se definirmos este parâmetro, a função só verificará as ordens do instrumento especificado. NULL significa instrumento atual, e "" (padrão) significa qualquer instrumento.
op - Tipo de ordem pendente. Valores válidos: OP_BUYLIMIT, OP_BUYSTOP, OP_SELLLIMIT, OP_SELLSTOP ou -1. O valor padrão de -1 significa qualquer ordem.
mn - Identificador do pedido (MagicNumber). O valor padrão de -1 significa qualquer MagicNumber.
https://www.mql5.com/ru/forum/107476/page12
Por favor, explique o que os arquivos fornecem:
Se possível, de alguma forma simples.
Obrigado.
Por favor, explique o que os arquivos fornecem:
Se possível, de alguma forma simples.
Obrigado.
estes são os chamados "arquivos da biblioteca". estes arquivos armazenam funções freqüentemente usadas. eles são usados para evitar carregar a fonte. se o arquivo da biblioteca for "declarado", as funções do arquivo declarado podem ser usadas como se estivessem incluídas na fonte.
Por favor, explique o que os arquivos nos dão:
Se possível, por favor, mantenha-o simples.
Obrigado.
Ao utilizar (chamar) uma função desses arquivos (já inicialmente embutida no mt4) nós, em caso de operação incorreta da EA, podemos ver no log o número do erro que cometemos no código .
Por exemplo, chamamos a função GetLastError() :
Neste caso, se cometemos um erro no código ou estabelecemos parâmetros externos incorretos, veremos o número deste erro no registro.
Por exemplo, 130.
E a decodificação do número pode ser encontrada em -https://book.mql4.com/ru/appendix/errors
E não precisamos passar por todo o código, pois já sabemos onde o erro foi cometido!
Esta função vai funcionar?
Exemplo de uso: colocamos a própria função no final do código (fora da função START) e depois a verificamos ao abrir uma posição:
Se não procurarmos por posições, mas por ordens pendentes, podemos usar
Função NumberOfOrders().
Esta função retorna o número de pedidos . Você pode limitar a lista de ordens a serem verificadas usando os parâmetros da função:
sy - Nome do instrumento. Se você especificar este parâmetro, a função só verificará as ordens do instrumento especificado. NULL significa instrumento atual, e "" (por padrão) significa qualquer instrumento.
op - Tipo de ordem pendente. Valores válidos: OP_BUYLIMIT, OP_BUYSTOP, OP_SELLLIMIT, OP_SELLSTOP ou -1. O valor padrão de -1 indica qualquer ordem.
mn - Identificador do pedido (MagicNumber). O valor padrão -1 significa qualquer MagicNumber.
https://www.mql5.com/ru/forum/107476/page12
Muito obrigado pela dica, nós a tentamos mas não funcionou, por favor verifique se há um erro em algum lugar no código:
Se quisermos verificar se existe uma condição de Venda ou Compra e não abrimos ou fechamos um pedido, neste caso, somente a primeira condição funcionará. E se a EA já abriu ordens no passado, então, quando uma ordem é aberta, as primeiras + segundas condições devem ser acionadas.
Procurei através do link fornecido por você, talvez o ExistOrders(); é mais adequado?
(mas honestamente não consegui colocá-lo, uma vez que, por enquanto, parece que me falta a habilidade).
Você não chamou a função corretamente.
Sua função é chamada assim: se (NumberOfPositions(NULL,Magic)> 1)
Deveria ser assim:
Sinta a diferença (você deixou de fora "-1") ! e RETIFIQUE SEU CÓDIGO.
Para controlá-lo, você pode imprimir um comentário no gráfico. Por exemplo, assim (no início da função START).
Quanto à sua segunda condição, eu ("sem pensar muito") colocaria um mágico diferente e função separada Open_Buy_2() para abrir posições pela segunda condição !O código da segunda condição ficaria assim