Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
¿Sería posible conseguir el código fuente de la DLL y el EXE? Estoy escribiendo mis primeros DLLs para MT5 (32bit y 64bit) y este sería un proyecto perfecto.
Por favor ayuda
Gracias,
Este post es bastante antiguo, pero sigue siendo relevante.
Esta herramienta es increíble, y se puede utilizar para integrar datos incluso de múltiples instancias de MT4 o múltiples EAs.
Si alguna de las preguntas anteriores sigue siendo relevante, por favor volver a publicarlas y voy a responder.
Lo mismo va para las preguntas MQL4, ya que puedo ayudar con MQL4 también.
Hola Tom ,
Me gustaría exportar en tiempo real de compra y venta de datos de garrapatas a Excel, ¿es posible el uso de esta herramienta?
Gracias
Buenas.
Estoy intentando poner LAST, pero siempre sale en blanco.
¿Alguien tiene alguna idea de lo que está mal?
CopyBuffer(MA_handle,0,0,100,MA);
ArraySetAsSeries(MA,true);
double LAST = SymbolInfoDouble("USDBRL", SYMBOL_LAST);
// Comprobar y añadir elemento DDE
if(!CheckItem("A", "B"))
{
if(!AddItem("A", "B")) return;
}
if(!CheckItem("C", "D"))
{
if(!AddItem("C", "D")) return;
}
if(!CheckItem("EMPRESA", "Valor")) AddItem("EMPRESA", "Valor");
if(!CheckItem("HORA", "Valor")) AddItem("HORA", "Valor");
if(!CheckItem("LAST", "EURUSD")) AddItem("LAST", "USDBRL");
// Establecer el valor del elemento DDE
SetItem("COMPANY", "Value",(string)AccountInfoString(ACCOUNT_COMPANY));
SetItem("TIME", "Value",(string)TimeCurrent());
SetItem("A", "B", "EMA(21): "+DoubleToString(MA[0],6));
SetItem("C", "D", "LAST: "+DoubleToString(LAST,5));
}
Buenas noches.
Después de mucho trastear, he conseguido solucionarlo. Me registré en el sitio sólo para esto.
Cambia toda la función OnTimer():
void OnTimer()
{
//--- llenando un array MA[] con los valores actuales de iMA
//--- Copiando 100 elementos
// CopiarBuffer(MA_handle,0,0,100,MA);
// ArraySetAsSeries(MA,true);
double EURUSD_ASK = SymbolInfoDouble("EURUSD",SYMBOL_ASK); // para eurusd (ejemplo)
double EURUSD_BID = SymbolInfoDouble("EURUSD",SYMBOL_BID);
double USDCHF_ASK = SymbolInfoDouble("USDCHF",SYMBOL_ASK);
double USDCHF_BID = SymbolInfoDouble("USDCHF",SYMBOL_BID);
// Comprobar y añadir elemento DDE
// if(!CheckItem("EMA", "B"))
// {
// if(!AddItem("EMA", "B")) return;
// }
if(!CheckItem("EMPRESA", "Valor")) AddItem("EMPRESA", "Valor");
if(!CheckItem("TIEMPO", "Valor")) AddItem("HORA", "Valor");
if(!CheckItem("EURUSD", "ASK")) AddItem("EURUSD", "ASK");
if(!CheckItem("EURUSD", "BID")) AddItem("EURUSD", "BID");
if(!CheckItem("USDCHF", "ASK")) AddItem("USDCHF", "ASK");
if(!CheckItem("USDCHF", "BID")) AddItem("USDCHF", "BID");
// Establecer el valor del elemento DDE
SetItem("COMPANY", "Value",(string)AccountInfoString(ACCOUNT_COMPANY));
SetItem("TIME", "Value",(string)TimeCurrent());
// SetItem("EMA", "B", "EMA(21): "+DoubleToString(MA[0],6));
SetItem("EURUSD", "ASK",DoubleToString(EURUSD_ASK,5));
SetItem("EURUSD", "BID",DoubleToString(EURUSD_BID,5));
SetItem("USDCHF", "ASK",DoubleToString(USDCHF_ASK,5));
SetItem("USDCHF", "BID",DoubleToString(USDCHF_BID,5));
}
El resto es igual a lo descrito anteriormente.
Espero que le sirva a alguien.
No me funciona me sale el error "2019.02.26 11:23:40.882 dde_example (ES,H1) Alert: Cannot find MT4.DDE.2 window!"
Se te ha olvidado ejecutar DDE Server.exe
Hola Tom ,
Me gustaría exportar datos de compra y venta en tiempo real a Excel, ¿es posible con esta herramienta?
Gracias
Perdón por la tardanza en contestar, por supuesto que era posible.
Dije "era" porque no he utilizado esta herramienta desde hace 3 años, y no he probado en Windows 10 por lo que puede experimentar e informar.
Buenas noches.
Después de mucho trastear, he conseguido solucionarlo. Me registré en el sitio sólo para eso.
Cambia toda la función OnTimer():
void OnTimer()
{
//--- llenando un array MA[] con los valores actuales de iMA
//--- Copiando 100 elementos
// CopiarBuffer(MA_handle,0,0,100,MA);
// ArraySetAsSeries(MA,true);
double EURUSD_ASK = SymbolInfoDouble("EURUSD",SYMBOL_ASK); // para eurusd (ejemplo)
double EURUSD_BID = SymbolInfoDouble("EURUSD",SYMBOL_BID);
double USDCHF_ASK = SymbolInfoDouble("USDCHF",SYMBOL_ASK);
double USDCHF_BID = SymbolInfoDouble("USDCHF",SYMBOL_BID);
// Comprobar y añadir elemento DDE
// if(!CheckItem("EMA", "B"))
// {
// if(!AddItem("EMA", "B")) return;
// }
if(!CheckItem("EMPRESA", "Valor")) AddItem("EMPRESA", "Valor");
if(!CheckItem("HORA", "Valor")) AddItem("HORA", "Valor");
if(!CheckItem("EURUSD", "ASK")) AddItem("EURUSD", "ASK");
if(!CheckItem("EURUSD", "BID")) AddItem("EURUSD", "BID");
if(!CheckItem("USDCHF", "ASK")) AddItem("USDCHF", "ASK");
if(!CheckItem("USDCHF", "BID")) AddItem("USDCHF", "BID");
// Establecer el valor del elemento DDE
SetItem("EMPRESA", "Valor",(string)AccountInfoString(CUENTA_EMPRESA));
SetItem("TIME", "Value",(string)TimeCurrent());
// SetItem("EMA", "B", "EMA(21): "+DoubleToString(MA[0],6));
SetItem("EURUSD", "ASK",DoubleToString(EURUSD_ASK,5));
SetItem("EURUSD", "BID",DoubleToString(EURUSD_BID,5));
SetItem("USDCHF", "ASK",DoubleToString(USDCHF_ASK,5));
SetItem("USDCHF", "BID",DoubleToString(USDCHF_BID,5));
}
El resto es igual a lo descrito anteriormente.
Espero que ayude a alguien.
Gracias Maurorechi,
¿pero tienes que hacer estas líneas que hiciste para EURUSD para cada activo?
Y otra pregunta, ¿tienes que tener la ventana del activo abierta para poder sacar información de un activo?