Asesores Expertos: DDE - Server - página 8

 

¡¡¡¡¡por fin lo he conseguido!!!!!

para los proximos que vengan y no consigan hacerlo funcionar, mi problema se solucionó, solo abriendo todo en secuencia logica.

primero el servidor dde, luego meta trader 5, poner el robot en el par que queria, autorizar todas las dlls de meta trader 5, y solo entonces abrir excel.

mi error fue dejar excel abierto antes de abrir todos los demas programas... aqui esta el truco.

 
¿Puede alguien guiarme para obtener el volumen neto de Excel utilizando DDE
Soy capaz de obtener el nombre del servidor dae y el tiempo en vivo Quiero volumen neto en vivo a Excel
 

Muy útil y sencillo de usar herramienta para retreive MT5 datos a Excel. Aquí está un poco de código para conseguir que retreive varios tipos de datos de múltiples activos simultáneamente.

void OnTimer()
{
  // Recuperar la oferta, la demanda, el máximo, el mínimo y el último volumen para el símbolo del 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; // Obtiene el símbolo del gráfico en el que está adosado el EA
 
  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))
  {
    // Temas DDE únicos para cada símbolo
    string bidTopic = symbol + "_BID";
    string askTopic = symbol + "_ASK";
    string highTopic = symbol + "_HIGH";
    string lowTopic = symbol + "_LOW";
    string volumeTopic = symbol + "_VOLUME";
 
    // Comprobar y añadir elementos DDE para cada punto de datos con nombre de 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);
 
    // Establecer elementos DDE con los datos
    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)); // El volumen suele ser un número entero
  }
  else
  {
    // Manejar el error si no se puede recuperar alguna información de precios
    Alert("Error retrieving price information for " + symbol);
  }
}
 
// resto del código existente ...
 
ejemplo de ejecución de precios en 2035
ejemplo nPriceop=2001 para límite de compra
trade.PositionOpen(_Symbol, ORDER_TYPE_BUY_LIMIT, 0.1, nOPPrice, 0, 0, "Commentyup"); Uso la librería trade.mqh en MT5..... y para compra y venta la ejecución se ejecuta normalmente.. pero no hay posiciones abiertas para buylimit y selllimit.... ¿hay alguien aquí que me pueda ayudar?
 

Lo he reprogramado para que reciba los datos de ticks en vivo (bid y ask) directamente en excel/libreoffice. Exactamente igual que con MT4. No hay ninguna diferencia. Gracias.

Archivos adjuntos:
 
Hola, ¿funcionará con google sheets en lugar de excel?
 
@adamko40 #: Hola, ¿funcionará con google sheets en lugar de excel?
Google Sheets es una aplicación web. No utiliza DDE.