operação é fechada com um valor que não desejo

 

Estou a querer fazer uma compra quando houver oferta com um valor que determinarei

Estou conseguindo disparar a compra no momento certo, mas quando envio a ordem geralmente a operação é fechada com um valor que não desejo

Segue abaixo as linhas que uso para fechar a compra

    ZeroMemory(mrequest);
    mrequest.action = TRADE_ACTION_DEAL;                                  // immediate order execution
    mrequest.price = NormalizeDouble(latest_price.bid,_Digits);           // latest ask price
    mrequest.sl = NormalizeDouble(latest_price.bid - STP*_Point,_Digits); // Stop Loss
    mrequest.tp = NormalizeDouble(latest_price.bid + TKP*_Point,_Digits); // Take Profit
    mrequest.symbol = _Symbol;                                            // currency pair
    mrequest.volume = lot2;                                                 // number of lots to trade
    mrequest.magic = EA_Magic;                                             // Order Magic Number
    mrequest.type = ORDER_TYPE_BUY;                                        // Buy Order
    mrequest.type_filling = ORDER_FILLING_FOK;                             // Order execution type
    mrequest.deviation=100;                                                // Deviation from current price
    //--- send order
    OrderSend(mrequest,mresult);

Por favo, enviem ideias. Uso MQL5

Agradeço muito.

 
josemanoel:

Estou a querer fazer uma compra quando houver oferta com um valor que determinarei

Estou conseguindo disparar a compra no momento certo, mas quando envio a ordem geralmente a operação é fechada com um valor que não desejo

Segue abaixo as linhas que uso para fechar a compra

Por favo, enviem ideias. Uso MQL5

Agradeço muito.

Olá josemanoel ,

Não sei se entendi ao certo qual é, exatamente, o problema.

Poderia tentar explicar melhor?

Se tivermos maiores detalhes sobre o problema podemos tentar ajudá-lo, de alguma maneira.

Abraços,

Malacarne 

 

Acho que estou tendo o mesmo problema, estou enviando uma ordem de compra com o valor da melhor oferta do book, porem a ordem é executada com o valor da ultima negociação. Por exemplo:

ativo compra venda ultimo

vale5 20,10 20,15 20,20

 

Quando eu envio uma ordem de compra com o valor de 20,15 ela é executada com o valor de 20,20. Isso em uma conta demo da clear, ainda não testei na conta real.

Já conseguiu resolver seu problema? 

 

Jose e Welbson, boa noite!

 Talvez usando ordem pendente e não a mercado resolva, vejam os tipos na documentação https://www.mql5.com/pt/docs/constants/tradingconstants/enum_trade_request_actions.

 Abraço,

Daniel 

Documentação sobre MQL5: Constantes Padrão, Enumeradores e Estruturas / Constantes de Negociação (Trade) / Tipos de Operações de Negociação (Trade)
Documentação sobre MQL5: Constantes Padrão, Enumeradores e Estruturas / Constantes de Negociação (Trade) / Tipos de Operações de Negociação (Trade)
  • www.mql5.com
Constantes Padrão, Enumeradores e Estruturas / Constantes de Negociação (Trade) / Tipos de Operações de Negociação (Trade) - Referência sobre algorítimo/automatização de negociação na linguagem para MetaTrader 5
 
josemanoel:

Estou a querer fazer uma compra quando houver oferta com um valor que determinarei

Estou conseguindo disparar a compra no momento certo, mas quando envio a ordem geralmente a operação é fechada com um valor que não desejo

Segue abaixo as linhas que uso para fechar a compra

Por favo, enviem ideias. Uso MQL5

Agradeço muito.

Olá manoel!

 

Antes tarde do que nunca, né amigo. Sou novo com o MQL5 (tô derretendo o cérebro). Mas a minha dica é a seguinte: vc. está levando em conta o "desvio" (Slippage) na entrada no mercado? O preço com um "Deviation=100" pode ser muito alto. - Se não escrevi bobagem, espero ter ajudado. 

Razão: