Erro ao abrir posição de compra ou venda

Para adicionar comentários, por favor Faça o login ou registrar
spadua
45
spadua  

Boa tarde.

Estou tentando abrir uma posição de compra/venda através do EA e recebo o seguinte erro:

Error opening BUY position by INDM18 : '(null)'

Alguém poderia me ajudar.

Grato

Rafael Fernandes Vieira Correia Santos
169
Rafael Fernandes Vieira Correia Santos  
spadua:

Boa tarde.

Estou tentando abrir uma posição de compra/venda através do EA e recebo o seguinte erro:

Error opening BUY position by INDM18 : '(null)'

Alguém poderia me ajudar.

Grato

spadua, você está utilizando a classe CTrade, ou as estruturas MqlTradeRequest e MqlTradeResult para enviar essa ordem? Provavelmente, vc não está utilizando o '_Symbol' no lugar requisitado!

Att.,

rafael

spadua
45
spadua  
rafaelfvcs:

spadua, você está utilizando a classe CTrade, ou as estruturas MqlTradeRequest e MqlTradeResult para enviar essa ordem? Provavelmente, vc não está utilizando o '_Symbol' no lugar requisitado!

Att.,

rafael

Oi Rafaelvcs, na verdade estou aprendendo a liguagem e tenho algumas dificuldades. Estou usando o comando abaixo:

if(m_trade.PositionOpen(Symbol(),ORDER_TYPE_SELL,InpLots,price,tp,sl))


obrigado pela ajuda

Rogerio Giannetti Torres
3150
Rogerio Giannetti Torres  
spadua:

Boa tarde.

Se você exibir a descrição do erro fica mais fácil.

        ResetLastError();
	m_trade.PositionOpen(Symbol(),ORDER_TYPE_SELL,InpLots,price,tp,sl)
        if(_LastError!=0 || (m_trade.ResultRetcode()!=10009 && m_trade.ResultRetcode()!=10008))
        {
         Alert(__FUNCTION__+": Erro ao emitir PositionOpen(SELL) ",_LastError," Result: ",m_trade.ResultRetcodeDescription());
         return;       
	}


spadua
45
spadua  
Rogerio Giannetti Torres:

Oi Rogerio obrigado ai pela ajuda. Está dando erro na compilação na linha Alert(__FUNCTION__+": Erro ao emitir PositionOpen(SELL) ",_LastError," Result: ",cTrade.ResultRetcodeDescription());

'ctrade' - undeclared identifier

Rogerio Giannetti Torres
3150
Rogerio Giannetti Torres  
spadua:

Oi Rogerio obrigado ai pela ajuda. Está dando erro na compilação na linha Alert(__FUNCTION__+": Erro ao emitir PositionOpen(SELL) ",_LastError," Result: ",cTrade.ResultRetcodeDescription());

'ctrade' - undeclared identifier

Altere para o nome da classe que você instanciou. (m_trade ?)

spadua
45
spadua  
Rogerio Giannetti Torres:

Altere para o nome da classe que você instanciou. (m_trade ?)

Caraca Rogerio como é duro ser novato. Agora deu erro no Return após o Alert.

'return' - function must return a value

Rogerio Giannetti Torres
3150
Rogerio Giannetti Torres  
spadua:

Caraca Rogerio como é duro ser novato. Agora deu erro no Return após o Alert.

'return' - function must return a value

È assim mesmo,  tem que estudar mais.  

Jonathan Pereira
1019
Jonathan Pereira  
spadua:

Caraca Rogerio como é duro ser novato. Agora deu erro no Return após o Alert.

'return' - function must return a value

Quando retorna esse erro é pq o seu metodo não requer um return que nem no exemplo do Rogerio, o return é obrigatório quando vc tem um método void por exemplo que seja usado para copiar os valores de uma barra. Pelo que deu para entender essa sua validação esta no meio do código e com isso não é necessário o return. Abaixo a documentação do operador RETURN.


https://www.mql5.com/pt/docs/basis/operators/return

Documentação sobre MQL5: Elementos Básicos da Linguagem / Operadores / Operador return
Documentação sobre MQL5: Elementos Básicos da Linguagem / Operadores / Operador return
  • www.mql5.com
Elementos Básicos da Linguagem / Operadores / Operador return - Referência sobre algorítimo/automatização de negociação na linguagem para MetaTrader 5
spadua
45
spadua  
Rogerio Giannetti Torres:

È assim mesmo,  tem que estudar mais.  

É verdade! Consegui compilar sem erro.

A msg que recebo é essa:

2018.06.13 18:23:31.481 2018.05.04 14:15:00   Alert: CSampleExpert::ShortOpened: Erro ao emitir PositionOpen(SELL) 4756 Result: invalid stops


Para qualquer valor de stop loss que eu coloco recebo o mesmo erro.


Rogerio Giannetti Torres
3150
Rogerio Giannetti Torres  

spadua:


Para qualquer valor de stop loss que eu coloco recebo o mesmo erro.


Tem regras né.  O valor de SL e TP tem que atender  ao  Tick Size do instrumento, atender ao nível de stops e a regra de valores, para o caso SELL:     SL  > PRICE > TP

12
Para adicionar comentários, por favor Faça o login ou registrar