He intentado usar tu código pero sólo me obtiene el Ask/Bid del primer par de divisas de la lista de símbolos en MT5 independientemente del símbolo de divisa que añada en el código.
Por ejemplo, tengo USDCAD como primer símbolo en la lista de símbolos de MT5. Escribo el código que me proporcionaste con EURUSD, pero el precio Ask que obtengo es el de USDCAD y no el de EURUSD. ¿Cómo solucionarlo?
Además, ¿tiene alguna sugerencia sobre cómo conectar el precio Ask de todos los pares de divisas/símbolos a Excel?
Lo he modificado para que tome los datos: máximo, cierre, mínimo (HCL) de la vela anterior a la actual; valores de Banda de Bollinger Superior e Inferior (20,2) de la vela anterior a la actual; Estocástico y %D (10,3,3) de la vela anterior a la actual.
El código es el siguiente:
double BB_T[]; //array para indicador BBdouble BB_B[];
int BB_handle; /mango del indicador BBdouble STOCH[]; //array para indicador STOCHdouble PERCD[];
int ST_handle; /mango del indicador STOCH//-----------------------------------------------------------------------------voidOnInit()
{
EventSetTimer(1);
//--- creación del indicador BB y STOCH
BB_handle=iBands(_Symbol,PERIOD_CURRENT,20,0,2,PRICE_CLOSE);
ST_handle=iStochastic(_Symbol,PERIOD_CURRENT,10,3,3,MODE_SMA,STO_LOWHIGH);
return;
}
voidOnTimer()
{
//--- llenando un array MA[] con los valores actuales de iMA//--- Copiar 100 elementos//BBCopyBuffer(BB_handle,1,0,100,BB_T); //Upper
ArraySetAsSeries(BB_T,true);
CopyBuffer(BB_handle,2,0,100,BB_B); //Lower
ArraySetAsSeries(BB_B,true);
//EstocásticoCopyBuffer(ST_handle,0,0,100,STOCH); //Stoch
ArraySetAsSeries(STOCH,true);
CopyBuffer(ST_handle,1,0,100,PERCD); //%D
ArraySetAsSeries(PERCD,true);
// Comprobar y añadir elemento DDEif(!CheckItem(_Symbol,"Máximo"))
{
if(!AddItem(_Symbol,"Máximo")) return;
}
if(!CheckItem(_Symbol,"Mínimo")) AddItem(_Symbol,"Mínimo");
if(!CheckItem(_Symbol,"Fechamento")) AddItem(_Symbol,"Fechamento");
//if(!CheckItem(_Symbol,"BB_Top")) AddItem(_Symbol,"BB_Top");
if(!CheckItem(_Symbol,"BB_Lower")) AddItem(_Symbol,"BB_Lower");
//if(!CheckItem(_Symbol,"STOCH")) AddItem(_Symbol,"STOCH");
if(!CheckItem(_Symbol,"%D")) AddItem(_Symbol,"%D");
// Establecer valor de elemento DDE //Velas HCL
SetItem(_Symbol,"Máximo",iHigh(_Symbol,5,1));
SetItem(_Symbol,"Mínimo",iLow(_Symbol,5,1));
SetItem(_Symbol,"Fechamento",iClose(_Symbol,5,1));
//BB Arriba y abajo
SetItem(_Symbol,"BB_Top",DoubleToString(BB_T[1],2));
SetItem(_Symbol,"BB_Lower",DoubleToString(BB_B[1],2));
//Estocástico y %D
SetItem(_Symbol,"STOCH",DoubleToString(STOCH[1],2));
SetItem(_Symbol,"%D",DoubleToString(PERCD[1],2));
}
He intentado utilizar su código, pero sólo me consigue el Ask / Bid del primer par de divisas en la lista de símbolos en MT5 independientemente del símbolo de moneda que añado en el código.
Por ejemplo, tengo USDCAD como primer símbolo en la lista de símbolos de MT5. Escribo el código que me proporcionaste con EURUSD, pero el precio Ask que obtengo es el de USDCAD y no el de EURUSD. ¿Cómo solucionarlo?
Además, ¿tiene alguna sugerencia sobre cómo conectar el precio Ask de todos los pares de divisas/símbolos a Excel?
Hola hermano, ¿tiene una versión MT4 de esto. el MT4 DDE no funciona. Pero el que estoy usando para FX no tiene un servidor MT5. Gracias por proporcionarme un código si tienes uno. Quiero obtener mi valor neto y la posición de divisas ganancias / pérdidas,.
¿Cómo añadir el precio de compra de un par de divisas en particular a Excel
Necesito la divisa de compra y venta
// Establecer el valor del elemento DDE
>>>>>> SetItem("BID", "EURUSD",(string) ?????());<<<<<<
HOLA CHICOS SI QUIERO MOSTRAR EL PRECIO BID O ASK DEL EURUSD ¿COMO MODIFICO ESTO?
GRACIAS
Por favor, edita tu post y utiliza el botón de código (Alt+S) al pegar el código.
EDITE su mensaje original, no publique el código correctamente en un mensaje nuevo.
Por favor, no utilices excesivamente las mayúsculas al publicar. Se considera gritar y muy grosero.
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.
Aquí están los cambios que hice en el código de abajo.
// Establecer el valor del elemento DDE
>>>>>> SetItem("BID", "EURUSD",(string) ?????());<<<<<<
HOLA CHICOS SI QUIERO MOSTRAR EURUSD BID O ASK PRECIO ¿CÓMO MODIFICAR ESTO?
GRACIAS
Cómo añadir el precio de compra de un par de divisas en particular a Excel
necesito la divisa de compra y venta
He intentado usar tu código pero sólo me obtiene el Ask/Bid del primer par de divisas de la lista de símbolos en MT5 independientemente del símbolo de divisa que añada en el código.
Por ejemplo, tengo USDCAD como primer símbolo en la lista de símbolos de MT5. Escribo el código que me proporcionaste con EURUSD, pero el precio Ask que obtengo es el de USDCAD y no el de EURUSD. ¿Cómo solucionarlo?
Además, ¿tiene alguna sugerencia sobre cómo conectar el precio Ask de todos los pares de divisas/símbolos a Excel?
Gracias.
Lo he modificado para que tome los datos: máximo, cierre, mínimo (HCL) de la vela anterior a la actual; valores de Banda de Bollinger Superior e Inferior (20,2) de la vela anterior a la actual; Estocástico y %D (10,3,3) de la vela anterior a la actual.
El código es el siguiente:
El resto es igual
He intentado utilizar su código, pero sólo me consigue el Ask / Bid del primer par de divisas en la lista de símbolos en MT5 independientemente del símbolo de moneda que añado en el código.
Por ejemplo, tengo USDCAD como primer símbolo en la lista de símbolos de MT5. Escribo el código que me proporcionaste con EURUSD, pero el precio Ask que obtengo es el de USDCAD y no el de EURUSD. ¿Cómo solucionarlo?
Además, ¿tiene alguna sugerencia sobre cómo conectar el precio Ask de todos los pares de divisas/símbolos a Excel?
Gracias.
Prueba a cambiar Symbol() por _Symbol
Visite los comentarios brasileños
https://www.mql5.com/pt/forum/33344