Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 755
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á. Eu não consigo entender o que está errado.
Existem dois pedidos com volumes menores e maiores e diferentes tipos de lucro. O pedido com o volume menor é aberto primeiro, depois o pedido com o volume maior. Precisamos encontrar um Take Profit para o pedido com maior volume.
Tudo parece estar correto, mas por alguma razão, obtemos valores de lucro do pedido com um volume menor (ele foi aberto primeiro). O que está errado?
P.S. total = EncomendasTotal()
Olá. Eu não consigo entender o que está errado.
Existem dois pedidos com volumes menores e maiores e diferentes tipos de lucro. O pedido com o volume menor é aberto primeiro, depois o pedido com o volume maior. Precisamos encontrar um Take Profit para o pedido com maior volume.
Tudo parece estar correto, mas por alguma razão, obtemos valores de lucro do pedido com um volume menor (ele foi aberto primeiro). O que está errado?
P.S. Total = EncomendasTotal()
Parece que a função MaxLotBuy() contém sua própria busca de ordem e outra ordem parece ser selecionada após retornar a esta função. Evite a recuperação de pedidos fora de algum ciclo de recuperação de pedidos. Eu não entendo o que eu disse. Mas é verdade.
Nesta situação, é melhor declarar uma variável antes do loop e atribuir a ela o valor OrderLots() desde que o novo valor seja maior do que o anterior.
A função MaxLotBuy() parece ter seu próprio loop de ordem e outra ordem é selecionada ao retornar a esta função. Você deve evitar passar pela ordem fora de qualquer ciclo de pedidos. Eu não entendo o que eu disse. Mas é verdade.
Nesta situação, é melhor declarar uma variável antes do loop e atribuir-lhe o valor OrderLots() desde que o novo valor seja maior do que o anterior.
Obrigado. Sim,MaxLotBuy() tem sua própria enumeração de pedidos, mas o valor de retorno é o máximo (eu lhe darei o código).
Mas eu entendi sua idéia, obrigado. Vou tentar agora.
Esse é provavelmente o caminho certo a ser seguido.
Obrigado, isso parece melhor.
Eu acho que a coisa certa a fazer seria
Obrigado. Não é apenas quando você escreve para si mesmo que você tem que ter cuidado.
Embora isso seja exatamente o que diz em palavras.
Pessoal, muito obrigado; funciona como deve ser. Acabamos de acrescentar também um reset à posição original.
Pessoal, muito obrigado; funciona como deve ser. Acabamos de acrescentar também um reset à posição original.
Bem, sim. Meu exemplo não está completo. Acabei de corrigi-la, complementei-a e minha correção coincidiu com sua mensagem no tempo.
Não importa que não esteja completo, o que importa é a idéia correta, a abordagem correta. Mais uma vez obrigado a todos vocês.
Não importa que não esteja completo, o que importa é a idéia correta, a abordagem correta. Mais uma vez, obrigado a todos vocês.
Então é assim
Então parece assim
Basicamente eu não afixei todo o código, mas apenas uma parte de encontrar o lucro do take do pedido com o lote mais alto. A questão é a seguinte - quando o preço se inverte, uma ordem pendente com um lote maior é colocada. Se funcionar, um stop loss é colocado na ordem oposta para que quando a ordem com grande lote for fechada no Take Profit, a ordem com lucro negativo no stop loss também seja fechada. O código completo de modificação com a definição de um stop loss se parece com isto
P.S. Durante os testes, há tantas nuances que precisam ser "explicadas" ao Consultor Especialista quanto a como ele deve se comportar em certos casos.