Asesores Expertos: DDE - Server - página 5

 
Hola
Tengo una pregunta

¿Cómo añadir el precio de compra de un par de divisas en particular a Excel

Esto sólo muestra la EMA 21

Necesito la divisa de compra y venta

 
Comprobar y añadir elemento DDE
if(!CheckItem("A", "B"))
{
if(!AddItem("A", "B")) return;
}

if(!CheckItem("EMPRESA", "Valor")) AddItem("EMPRESA", "Valor");
if(!CheckItem("TIEMPO", "Valor")) AddItem("HORA", "Valor");
if(!CheckItem("BID", "EURUSD")) AddItem("BID", "EURUSD");


// Establecer el valor del elemento DDE

SetItem("COMPANY", "Value",(string)AccountInfoString(ACCOUNT_COMPANY));
SetItem("TIME", "Value",(string)TimeCurrent());

>>>>>> SetItem("BID", "EURUSD",(string) ?????());<<<<<<

HOLA CHICOS SI QUIERO MOSTRAR EL PRECIO BID O ASK DEL EURUSD ¿COMO MODIFICO ESTO?

GRACIAS

 
snowking87:

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.

 
maurorechi:

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.

void OnTimer()
  {
//--- llenando un array MA[] con los valores actuales de iMA
//--- Copiar 100 elementos

// Comprobar y añadir elemento DDE
   if(!CheckItem(_Symbol,"B")) 
     {
      if(!AddItem(_Symbol,"B")) return; 
     }

   if(!CheckItem("COMPANY","Value")) AddItem("COMPANY","Value");
   if(!CheckItem("TIME","Value")) AddItem("TIME","Value");

// Establecer valor de elemento DDE 
   SetItem("COMPANY","Value",(string)AccountInfoString(ACCOUNT_COMPANY));
   SetItem("TIME","Value",(string)TimeCurrent());

   SetItem(_Symbol,"B",SymbolInfoDouble(_Symbol,SYMBOL_LAST));

  }
 
snowking87:
Comprobar y añadir elemento DDE
if(!CheckItem("A", "B"))
{
if(!AddItem("A", "B")) return;
}

if(!CheckItem("EMPRESA", "Valor")) AddItem("EMPRESA", "Valor");
if(!CheckItem("HORA", "Valor")) AddItem("HORA", "Valor");
if(!CheckItem("BID", "EURUSD")) AddItem("BID", "EURUSD");


// Establecer el valor del elemento DDE

SetItem("EMPRESA", "Valor",(string)AccountInfoString(CUENTA_EMPRESA));
SetItem("TIME", "Value",(string)TimeCurrent());

>>>>>> SetItem("BID", "EURUSD",(string) ?????());<<<<<<

HOLA CHICOS SI QUIERO MOSTRAR EURUSD BID O ASK PRECIO ¿CÓMO MODIFICAR ESTO?

GRACIAS

if(!CheckItem("BID", "EURUSD")) AddItem("BID", "EURUSD");
if(!CheckItem("PUJA", "EURUSD")) AddItem("ASK", "EURUSD");
SetItem("BID", "EURUSD",(double)SymbolInfoDouble(Symbol(),SYMBOL_BID));
SetItem("ASK", "EURUSD",(double)SymbolInfoDouble(Symbol(),SYMBOL_ASK));
 
Younes Deldar:
Hola
Tengo una pregunta

Cómo añadir el precio de compra de un par de divisas en particular a Excel

Esto muestra sólo la EMA 21

necesito la divisa de compra y venta

if(!CheckItem("BID", "EURUSD")) AddItem("BID", "EURUSD");
if(!CheckItem("ASK", "EURUSD")) AddItem("ASK", "EURUSD");
SetItem("BID", "EURUSD",(double)SymbolInfoDouble(Symbol(),SYMBOL_BID));
SetItem("ASK", "EURUSD",(double)SymbolInfoDouble(Symbol(),SYMBOL_ASK));
 
IlyshikBTC:
if(!CheckItem("BID", "EURUSD")) AddItem("BID", "EURUSD");
if(!CheckItem("ASK", "EURUSD")) AddItem("ASK", "EURUSD");
SetItem("BID", "EURUSD",(double)SymbolInfoDouble(Symbol(),SYMBOL_BID));
SetItem("ASK", "EURUSD",(double)SymbolInfoDouble(Symbol(),SYMBOL_ASK));

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.

IlyshikBTC
IlyshikBTC
  • 2021.03.04
  • www.mql5.com
Trader's profile
 

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 BB
double      BB_B[];
int         BB_handle;  /mango del indicador BB

double      STOCH[];    //array para indicador STOCH
double      PERCD[];
int         ST_handle; /mango del indicador STOCH

//-----------------------------------------------------------------------------

void OnInit()
  {
    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;
  }

void OnTimer()

  {
//--- llenando un array MA[] con los valores actuales de iMA
//--- Copiar 100 elementos
   //BB
   CopyBuffer(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ástico
   CopyBuffer(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 DDE
   if(!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));
  }


El resto es igual

 
mzee_zaki:

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

Especialistas: Servidor DDE
Especialistas: Servidor DDE
  • 2014.01.15
  • www.mql5.com
Artigos, comentários da Biblioteca: Especialistas: Servidor DDE
 
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,.