Especialistas: Servidor DDE - página 8

 

finalmente consegui!!!!!

para as próximas pessoas que vierem e não conseguirem fazer funcionar, meu problema foi resolvido, bastando abrir tudo na sequência lógica.

Primeiro o servidor dde, depois o meta trader 5, colocar o robô no par que eu queria, autorizar todas as dlls do meta trader 5 e só então abrir o Excel.

meu erro foi deixar o excel aberto antes de abrir todos os outros programas... fica a dica.

 
Alguém pode me orientar para obter o volume líquido para o Excel usando DDE?
Eu sou capaz de obter o nome do servidor dae e o tempo ao vivo, mas quero o volume líquido ao vivo para o Excel
 

Ferramenta muito útil e fácil de usar para recuperar dados do MT5 para o Excel. Aqui está um código para fazer com que ela recupere vários tipos de dados de vários ativos simultaneamente

void OnTimer()
{
  // Recuperar a oferta atual, a venda, a alta, a baixa e o último volume do símbolo do gráfico
  double bidPrice = 0.0;
  double askPrice = 0.0;
  double highPrice = 0.0;
  double lowPrice = 0.0;
  double lastVolume = 0.0;
  string symbol = _Symbol; // Obtém o símbolo do gráfico ao qual o EA está anexado
 
  if(SymbolInfoDouble(symbol, SYMBOL_BID, bidPrice) &&
     SymbolInfoDouble(symbol, SYMBOL_ASK, askPrice) &&
     SymbolInfoDouble(symbol, SYMBOL_HIGH, highPrice) &&
     SymbolInfoDouble(symbol, SYMBOL_LOW, lowPrice) &&
     SymbolInfoDouble(symbol, SYMBOL_VOLUME_REAL, lastVolume))
  {
    // Tópicos DDE exclusivos para cada símbolo
    string bidTopic = symbol + "_BID";
    string askTopic = symbol + "_ASK";
    string highTopic = symbol + "_HIGH";
    string lowTopic = symbol + "_LOW";
    string volumeTopic = symbol + "_VOLUME";
 
    // Verificar e adicionar itens DDE para cada ponto de dados com o nome do símbolo
    if(!CheckItem("PRICE", bidTopic)) AddItem("PRICE", bidTopic);
    if(!CheckItem("PRICE", askTopic)) AddItem("PRICE", askTopic);
    if(!CheckItem("PRICE", highTopic)) AddItem("PRICE", highTopic);
    if(!CheckItem("PRICE", lowTopic)) AddItem("PRICE", lowTopic);
    if(!CheckItem("PRICE", volumeTopic)) AddItem("PRICE", volumeTopic);
 
    // Definir itens DDE com os dados
    SetItem("PRICE", bidTopic, DoubleToString(bidPrice, _Digits));
    SetItem("PRICE", askTopic, DoubleToString(askPrice, _Digits));
    SetItem("PRICE", highTopic, DoubleToString(highPrice, _Digits));
    SetItem("PRICE", lowTopic, DoubleToString(lowPrice, _Digits));
    SetItem("PRICE", volumeTopic, DoubleToString(lastVolume, 0)); // O volume é geralmente um número inteiro
  }
  else
  {
    // Tratamento do erro se alguma informação de preço não puder ser recuperada
    Alert("Error retrieving price information for " + symbol);
  }
}
 
// resto do código existente ...
 
exemplo de preços em execução em 2035
exemplo nPriceop=2001 para limite de compra
trade.PositionOpen(_Symbol, ORDER_TYPE_BUY_LIMIT, 0.1, nOPPrice, 0, 0, "Commentyup"); Eu uso a biblioteca trade.mqh no MT5..... e, para compra e venda, a execução ocorre normalmente... mas não há posições abertas para buylimit e selllimit..... Alguém aqui pode me ajudar?
 

Reprogramei-o para que eu receba dados de ticks ao vivo (compra e venda) diretamente no Excel/Libreoffice. Exatamente da mesma forma que no MT4. Não há diferença alguma. Obrigado por isso!

Arquivos anexados:
 
Olá, isso funcionará com o Google Sheets em vez do Excel?
[Excluído]  
@adamko40 #: Olá, isso funcionará com o Google Sheets em vez do Excel?
O Google Sheets é um aplicativo da Web. Ele não usa DDE.