Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 890
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
Existe um consultor especializado que lhe permite determinar quando uma ordem pendente foi accionada
https://www.mql5.com/ru/code/17610
Utilizo-o para obter um bilhete para uma encomenda SELL_STOP
Mudei o código para
Tudo está bem até um certo momento. Até que um outro tipo de ordem apareça na história.
Por exemplo, SELL_LIMIT.
Assim que o SELL_LIMIT aparece na história, não consigo obter um bilhete do último SELL_STOP.
O Conselheiro Especialista atira um erro.
A encomenda 9 não está pendente
Embora haja SELL_STOP na história
Porque tenho de obter a encomenda #9 se preciso do bilhete #7?
Olá. Recebo um erro seStopLoss_=0
falhou modificar #2 vender 3,00 Si-9,18 sl: 0, tp: 62749 -> sl: 0, tp: 62774 [Paragens inválidas]
Olá. Recebo erro seStopLoss_=0
falhou modificar #2 vender 3,00 Si-9,18 sl: 0, tp: 62749 -> sl: 0, tp: 62774 [Paragens inválidas]
Lógica incorrecta na escrita do programa.
Quando StopLoss_=0, a condição superior desencadeia - uma tentativa de modificar TakeProfit. O erro é que subtrai do PREÇO ABERTO - neste caso, o nível TakeProfit pode ser superior ao PREÇO CORRENTE e isto é um erro.
No seu caso, subtraia do PREÇO DIREITO (m_position.PriceCurrent).
Uma posição de venda foi aberta e o selllimit foi activado, tenho de mover o tp em relação ao novo preço da posição, não em relação ao preço actual.
Que tipo de verificação devo fazer para evitar tentar modificar para um preço inválido?
Uma posição de venda foi aberta e o selllimit foi activado, tenho de mover o tp em relação ao novo preço da posição, não em relação ao preço actual.
Que tipo de verificação devo fazer para não tentar modificar para um preço inválido?
Verificar:
if(m_position.PriceOpen()-ExtTakeProfit<m_position.PriceCurrent() { m_trade.PositionModify(m_position.Ticket(), m_position.StopLoss(), m_symbol.NormalizePrice(m_position.PriceOpen()-ExtTakeProfit) ); ...
Verificar:
Obrigado, mas o erro mantém-se.
Pode estar inaceitavelmente perto do preço actual. Como posso verificar isto?
Obrigado, mas o erro mantém-se.
Pode estar inaceitavelmente perto do preço actual. Como se verifica isto?
Eu não tenho acesso a uma troca, por isso faça-o você mesmo ou trabalhe em instrumentos de câmbio. Desculpe.
Adicionado: introduzir mais uma verificação - para uma posição de Venda, o novo TakeProfit (valor calculado) não deve ser MAIS ALTO ou IGUAL, para o actual TakeProfit da posição.
Eu não tenho acesso a uma troca, por isso faça-o você mesmo ou trabalhe em instrumentos de câmbio. Desculpe.
Adicionado: introduzir outra verificação - para uma posição de Venda, o novo TakeProfit (valor calculado) não deve ser MAIS ALTO ou EQUAL para o actual TakeProfit da posição.
Provavelmente o preço de abertura (POSITON_PRICE_OPEN) ?
Provavelmente o preço de abertura (POSITON_PRICE_OPEN) ?
Esta opção estava acima. Ver os postos acima. Respondeu no meio da conversa.
Não encaixa, modificar pela ATR Que outras verificações podem ser feitas para este erro? Tudo é possível. No mt4 existeSTOPLEVEL, mas aqui o quê?