Expert Advisors: MT5 DDE - Server - page 5

 
Hello
I have a question

How to add the purchase price of a particular currency pair to Excel

This shows only the EMA 21

i need ask & bid currency

 
Check & Add Item DDE
   if(!CheckItem("A","B")) 
     {
      if(!AddItem("A","B")) return; 
     }

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


// Set Item Value DDE  

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

   

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

                      

HI GUYS IF WANT SHOW EURUSD BID OR ASK PRICE HOW TO MODIFY THIS?

THANK YOU

 
snowking87:

Please edit your post and use the code button (Alt+S) when pasting code.

EDIT your original post, please do not just post the code correctly in a new post.

Please do not make excessive use of capital letters when posting. It is considered shouting and very rude.

 
maurorechi:

Good evening.


After a lot of fiddling, I managed to solve it. I registered on the site just for that.

Change the entire OnTimer() function:

void OnTimer()

{

//--- filling an array MA[] with current values of iMA

//--- Copying 100 elements

// CopyBuffer(MA_handle,0,0,100,MA);

// ArraySetAsSeries(MA,true);

double EURUSD_ASK = SymbolInfoDouble("EURUSD",SYMBOL_ASK); // for eurusd (example)

double EURUSD_BID = SymbolInfoDouble("EURUSD",SYMBOL_BID);

double USDCHF_ASK = SymbolInfoDouble("USDCHF",SYMBOL_ASK);

double USDCHF_BID = SymbolInfoDouble("USDCHF",SYMBOL_BID);

// Check & Add Item DDE

// if(!CheckItem("EMA","B"))

// {

// if(!AddItem("EMA","B")) return;

// }


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

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

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");

// Set Item Value 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));

}

The rest is the same as described above.


I hope it helps someone.

Here are the changes I made to the code below.

void OnTimer()
  {
//--- filling an array MA[] with current values of iMA
//--- Copying 100 elements

// Check & Add Item DDE
   if(!CheckItem(_Symbol,"B")) 
     {
      if(!AddItem(_Symbol,"B")) return; 
     }

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

// Set Item Value DDE 
   SetItem("COMPANY","Value",(string)AccountInfoString(ACCOUNT_COMPANY));
   SetItem("TIME","Value",(string)TimeCurrent());

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

  }
 
snowking87:
Check & Add Item DDE
   if(!CheckItem("A","B")) 
     {
      if(!AddItem("A","B")) return; 
     }

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


// Set Item Value DDE  

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

   

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

                      

HI GUYS IF WANT SHOW EURUSD BID OR ASK PRICE HOW TO MODIFY THIS?

THANK YOU

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));
 
Younes Deldar:
Hello
I have a question

How to add the purchase price of a particular currency pair to Excel

This shows only the EMA 21

i need ask & bid currency

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));

I tried using your code but it only get me the Ask/Bid of the first currency pair in the list of symbols in MT5 regardless of the currency symbol I add in the code.

For example, I have USDCAD as the first symbol in MT5 symbols list. I write the code you provided with EURUSD, but the Ask price I get is the USDCAD one not the EURUSD one. How to fix that?

Also, do you have any suggestions on how to connect ask price of all currency pairs/symbols to Excel?

Thanks!

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

I modified it to take the data: high, close, low (HCL) of the previous candle to the current one; Upper and Lower Bollinger Band values (20,2) of the previous candle to the current one; Stochastic and %D (10,3,3) of the previous candle to the current one.


The code follows:

double      BB_T[];      //array for indicator BB
double      BB_B[];
int         BB_handle;  //handle for indicator BB

double      STOCH[];    //array for indicator STOCH
double      PERCD[];
int         ST_handle; //handle for indicator STOCH

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

void OnInit()
  {
    EventSetTimer(1);
    
//--- creation of the BB and STOCH indicator
   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()

  {
//--- filling an array MA[] with current values of iMA
//--- Copying 100 elements
   //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);
   //Stochastic
   CopyBuffer(ST_handle,0,0,100,STOCH); //Stoch
   ArraySetAsSeries(STOCH,true);
   CopyBuffer(ST_handle,1,0,100,PERCD); //%D
   ArraySetAsSeries(PERCD,true);
// Check & Add Item DDE
   if(!CheckItem(_Symbol,"Maximum")) 
     {
      if(!AddItem(_Symbol,"Maximum")) return; 
     } 
   if(!CheckItem(_Symbol,"Minimum")) AddItem(_Symbol,"Minimum");
   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");


// Set Item Value DDE 
   //HCL candles
   SetItem(_Symbol,"Maximum",iHigh(_Symbol,5,1));
   SetItem(_Symbol,"Minimum",iLow(_Symbol,5,1));
   SetItem(_Symbol,"Fechamento",iClose(_Symbol,5,1));
   //BB Top and Bottom
   SetItem(_Symbol,"BB_Top",DoubleToString(BB_T[1],2));
   SetItem(_Symbol,"BB_Lower",DoubleToString(BB_B[1],2));
   //Stochastic and %D
   SetItem(_Symbol,"STOCH",DoubleToString(STOCH[1],2));
   SetItem(_Symbol,"%D",DoubleToString(PERCD[1],2));
  }


The rest is the same

 
mzee_zaki:

I tried using your code but it only get me the Ask/Bid of the first currency pair in the list of symbols in MT5 regardless of the currency symbol I add in the code.

For example, I have USDCAD as the first symbol in MT5 symbols list. I write the code you provided with EURUSD, but the Ask price I get is the USDCAD one not the EURUSD one. How to fix that?

Also, do you have any suggestions on how to connect ask price of all currency pairs/symbols to Excel?

Thanks!

Try change: Symbol()  to   _Symbol


Please visit the brazilian comments 


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
 
Hi brother, do you have a MT4 version of this. the MT4 DDE doesn't work. But the one I'm using for FX doesn't have an MT5 server. Thanks for providing me a code if you have one. I want to get my net worth and position currency profit/loss,.