Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 210
![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
Boa tarde.
Minha estratégia leva em conta o spread, o spread é definido por uma função:
Mas como a propagação é constante no testador de estratégia, eu preciso de um emulador de propagação aleatória. Quero emular as mudanças de spread no testador na faixa de 2 a 3 pontos (4 dígitos) em 80% dos casos e mais de 3 pontos em 20% dos casos. Quaisquer idéias de como implementar isto, ou links onde tal idéia tenha sido resolvida.
O erro com o mágico faz com que sua EA não veja que sua posição é fechada em uma parada quando ela fecha em uma parada. Por quê? A resposta é que você abre uma posição com Magic 123 e envia a variável Magic para a função que verifica o fechamento da posição na parada. O que você acha que é igual quando inicializado implicitamente? Zero. A função é naturalmente procurar posições com o número mágico 0 e é igual a 123 em suas posições. E nós não estamos discutindo, apenas... ...raciocínio... Verifique a reação de fechamento na parada:
Eu não olhei para o resto de sua lógica EA "morta" - eu estava ajudando você a descobrir a função stop close check...
Artem ! Bom dia! Mais uma vez obrigado pela ajuda.
Removi toda a lógica "morta" desnecessária e "ressuscitei" os restantes.... tanto quanto eu entendo.
Deixou apenas uma função, que você me ajudou a corrigir.
Mas os milagres começaram a acontecer além da minha compreensão.
1. Meu consultor especializado abre as negociações no início de cada vela (eu tenho uma vela de 5 minutos)
e ignorando todas as condições.
Isto é, o controle entra na primeira linha
double Price=iOpen(Symbol (),0,0);
E então ele salta por 11 linhas e chega às seguintes linhas
Lote=0,1;
OrderSend(Symbol(),OP_SELL,1,Bid,Lot,Ask+1500*Point,Ask-300*Point, "jfh",123 );
2. se removermos a linha que calcula o lote mínimo Lote=MarketInfo(Symbol(), MODE_MINLOT);
O Expert Advisor funciona bem, mas a função isCloseLastPosByStop não funciona.
Eu estive exercitando meu cérebro por muito tempo....., mas em vão. Eu ficaria grato se você pudesse me dizer onde o erro está escondido.
solnce600:
Артем ! Добрый день! Еще раз спасибо за помощь.
Toda minha "lógica morta" removeu o desnecessário e "ressuscitou" o resto.... tanto quanto eu entendo.
Eu praticamente deixei apenas a função, o que você me ajudou a corrigir.
Mas os milagres, que estão além do meu entendimento, começaram a acontecer.
Depois de
acrescentar tudo ao corpo { }
Desculpe, não sou Artem.
solnce600:
Depois de
acrescentar tudo ao corpo { }
Sinto muito, não sou Artem.
t ou Lote ????
solnce600:
Depois de
acrescentar tudo ao corpo { }
Desculpe, não sou Artem.
Fez como você disse..... alas advisor trabalha .... a função isCloseLastPosByStop não funciona
Este é um código da função bool isCloseLastPosByStop(string sy, int op, int mn, double &ll)
Mas e se houver um deslize em 3 pips? Não está muito bem pensado ))
Você entende - Ainda não estou realmente incomodado com isso....
Há uma semana venho tentando descobrir porque esta função não funciona para mim.
Isto é, preciso que o próximo pedido abra com um volume duplo do pedido fechado na parada, e o próximo pedido abra com um volume regular após a parada sem parar.
Corrija a lógica do trabalho, caso contrário, levará muito tempo para pensar
Este é um código da função bool isCloseLastPosByStop(string sy, int op, int mn, double &ll)
Mas e se houver um deslize em 3 pips? Não está muito bem pensado ))
Você entende - Ainda não estou me incomodando com isso....
Há uma semana venho tentando entender porque esta função não funciona da maneira que eu quero.
Isto é, preciso abrir a próxima ordem após a parada com um volume duplo da ordem que fechou na parada, e após a sem parar, a próxima ordem é aberta com um volume regular.E por que tocar a história do pedido? Olhe para o equilíbrio - onde ele foi nessa direção e mude o lote.
Se for apenas um robô que irá negociar por sua conta.