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.
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.
voidOnTimer()
{
// Recuperar la oferta, la demanda, el máximo, el mínimo y el último volumen para el símbolo del gráficodouble 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 EAif(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ímbolostring 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ímboloif(!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 preciosAlert("Error retrieving price information for " + symbol);
}
}
// resto del código existente ...
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.
¡¡¡¡¡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.
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.
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.