Olá Maurício,
qual é o erro que aparece no log?
Olá Maurício,
qual é o erro que aparece no log?
No diário aparece esse erro:
2021.03.10 20:29:16.576 2021.03.08 10:49:17 Not enough money for ORDER_TYPE_BUY 3.0 WINJ21 Error code=4753
No diário aparece esse erro:
2021.03.10 20:29:16.576 2021.03.08 10:49:17 Not enough money for ORDER_TYPE_BUY 3.0 WINJ21 Error code=4753
Bom,
ou você está vendo cabelo em sapo, ou tem BUG escandaloso no compilador, o que eu duvido muito.
Então faz um Print como mostrado abaixo, veja eu digitei o Print copiando exatamente como está no If.
if((m_PrecoAtual <= (m_PrecoEntrada - m_pontosalvo)) || ((m_PrecoAtual >= m_PrecoEntrada + m_pontosalvo))) { Print(" Teste1: ", (m_PrecoAtual <= (m_PrecoEntrada - m_pontosalvo))); Print(" Teste2: ", (m_PrecoAtual >= m_PrecoEntrada + m_pontosalvo)); m_trade.PositionClose(_Symbol, 0); }
Rogério muito obrigado pelo alerta do "cabelo em sapo", pois revisei todo o código novamente e descobri um furo em outra função, o que não deixava chegar na minha verificação.
Muito obrigado. Problema resolvido.
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Boa noite
Estou verificando no meu código pela quantidade de pontos que andou a favor para o gain ou contra para o loss
No gain ele está funcionando normalmente, porém no loss ele não está funcionando, podem me ajudar
Quanto ativa o sinal de venda, gravo o preço da entrada
m_PrecoEntrada = NormalizeDouble(m_trade.RequestPrice(),0);
Depois fico verificando se atingiu o pontos desejados para gain ou loss e tenta fechar a posição
m_PrecoAtual = NormalizeDouble(PrecoAtual(),0);
if ((m_PrecoAtual <= (m_PrecoEntrada - m_pontosalvo)) || ((m_PrecoAtual >= m_PrecoEntrada + m_pontosalvo)))
{
m_trade.PositionClose(m_symbol,m_deviation);
}
Preço atual é gerado através da função PrecoAtual()
double CEngine::PrecoAtual(void)
{
double last= SymbolInfoDouble(Symbol(),SYMBOL_LAST);
int digits =(int)SymbolInfoInteger(Symbol(),SYMBOL_DIGITS);
last=NormalizeDouble(last,digits);
return last;
}
A verificação quando caminha a favor do gain funciona normalmente, porém quando caminha para o loss não é executado
Podem me ajudar