OrderSymbol in mql5 how find it?

 

Hi  i have  this part of mql4 

   // Bid and Ask prices for the instrument of the order.
      double BidPrice = MarketInfo(OrderSymbol(), MODE_BID);
      double AskPrice = MarketInfo(OrderSymbol(), MODE_ASK);

i want convert to  mql5 , how can do it  ?   i find   double BidPrice = SymbolInfoDouble(  but ordersymbol? ? ? i can do it ?

 
faustf:

Hi  i have  this part of mql4 

i want convert to  mql5 , how can do it  ?   i find   double BidPrice = SymbolInfoDouble(  but ordersymbol? ? ? i can do it ?

try selecting the order with mql4OrderSelect

and then call mql4OrderSymbol

//auto selection of pending history or live
ulong SELECTED_TICKET=0;
enum selected_type{
selected_empty=0,//empty
selected_market=1,//live
selected_market_history=2,//history
selected_pending=3,//pending
selected_pending_history=4//pending history
};
selected_type SELECTED_TYPE=selected_empty;
bool mql4OrderSelect(ulong ticket){
  SELECTED_TICKET=0;
  SELECTED_TYPE=selected_empty;
//live 
  if(PositionSelectByTicket(ticket)){SELECTED_TICKET=ticket;SELECTED_TYPE=selected_market;return(true);}
//pending
  if(OrderSelect(ticket)){SELECTED_TICKET=ticket;SELECTED_TYPE=selected_pending;return(true);}
//market history
  if(HistorySelectByPosition(ticket)){SELECTED_TICKET=ticket;SELECTED_TYPE=selected_market_history;return(true);}
//pending history
  if(HistoryOrderSelect(ticket)){SELECTED_TICKET=ticket;SELECTED_TYPE=selected_pending_history;return(true);}

return(false);
}

//sco basics : oil the keyboard
//open price or pending price 
double mql4OrderOpenPrice(){
if(SELECTED_TYPE!=selected_empty)
{
//market + market history
  if(SELECTED_TYPE==selected_market||SELECTED_TYPE==selected_market_history){return(PositionGetDouble(POSITION_PRICE_OPEN));}
//pending
  if(SELECTED_TYPE==selected_pending){return(OrderGetDouble(ORDER_PRICE_OPEN));}
//pending history
  if(SELECTED_TYPE==selected_pending_history){return(HistoryOrderGetDouble(SELECTED_TICKET,ORDER_PRICE_OPEN));}
}
return(0.0);
}

//close price or current price 
double mql4OrderClosePrice(){
if(SELECTED_TYPE!=selected_empty)
{
//market + market history
  if(SELECTED_TYPE==selected_market||SELECTED_TYPE==selected_market_history){return(PositionGetDouble(POSITION_PRICE_CURRENT));}
//pending
  if(SELECTED_TYPE==selected_pending){return(OrderGetDouble(ORDER_PRICE_CURRENT));}
//pending history
  if(SELECTED_TYPE==selected_pending_history){return(HistoryOrderGetDouble(SELECTED_TICKET,ORDER_PRICE_CURRENT));}
}
return(0.0);
}

//stop loss 
double mql4OrderStopLoss(){
if(SELECTED_TYPE!=selected_empty)
{
//market + market history
  if(SELECTED_TYPE==selected_market||SELECTED_TYPE==selected_market_history){return(PositionGetDouble(POSITION_SL));}
//pending
  if(SELECTED_TYPE==selected_pending){return(OrderGetDouble(ORDER_SL));}
//pending history
  if(SELECTED_TYPE==selected_pending_history){return(HistoryOrderGetDouble(SELECTED_TICKET,ORDER_SL));}
}
return(0.0);
}

//take profit
double mql4OrderTakeProfit(){
if(SELECTED_TYPE!=selected_empty)
{
//market + market history
  if(SELECTED_TYPE==selected_market||SELECTED_TYPE==selected_market_history){return(PositionGetDouble(POSITION_TP));}
//pending
  if(SELECTED_TYPE==selected_pending){return(OrderGetDouble(ORDER_TP));}
//pending history
  if(SELECTED_TYPE==selected_pending_history){return(HistoryOrderGetDouble(SELECTED_TICKET,ORDER_TP));}
}
return(0.0);
}

//open time
datetime mql4OrderOpenTime(){
if(SELECTED_TYPE!=selected_empty)
{
//market + market history
  if(SELECTED_TYPE==selected_market||SELECTED_TYPE==selected_market_history){return((datetime)PositionGetInteger(POSITION_TIME));}
//pending
  if(SELECTED_TYPE==selected_pending){return((datetime)OrderGetInteger(ORDER_TIME_SETUP));}
//pending history
  if(SELECTED_TYPE==selected_pending_history){return((datetime)HistoryOrderGetInteger(SELECTED_TICKET,ORDER_TIME_SETUP));}
}
return(0);
}

//close time
datetime mql4OrderCloseTime(){
if(SELECTED_TYPE!=selected_empty)
{
//market
  if(SELECTED_TYPE==selected_market){return(0);}
//history market
  if(SELECTED_TYPE==selected_market_history){return((datetime)PositionGetInteger(POSITION_TIME_UPDATE));}
//pending
  if(SELECTED_TYPE==selected_pending){return(0);}
//pending history
  if(SELECTED_TYPE==selected_pending_history){return((datetime)HistoryOrderGetInteger(SELECTED_TICKET,ORDER_TIME_DONE));}
}
return(0);
}

//lots 
double mql4OrderLots(){
if(SELECTED_TYPE!=selected_empty)
{
//market + market history
  if(SELECTED_TYPE==selected_market||SELECTED_TYPE==selected_market_history){return(PositionGetDouble(POSITION_VOLUME));}
//pending
  if(SELECTED_TYPE==selected_pending){return(OrderGetDouble(ORDER_VOLUME_CURRENT));}
//pending history
  if(SELECTED_TYPE==selected_pending_history){return(HistoryOrderGetDouble(SELECTED_TICKET,ORDER_VOLUME_CURRENT));}
}
return(0.0);
}

#define OP_BUY  1
#define OP_SELL 2
#define OP_BUYLIMIT 3
#define OP_BUYSTOP 4
#define OP_SELLLIMIT 5
#define OP_SELLSTOP 6

//order symbol
string mql4OrderSymbol(){
if(SELECTED_TYPE!=selected_empty)
{
//market + market history
  if(SELECTED_TYPE==selected_market||SELECTED_TYPE==selected_market_history){return(PositionGetString(POSITION_SYMBOL));}
//pending
  if(SELECTED_TYPE==selected_pending){return(OrderGetString(ORDER_SYMBOL));}
//pending history
  if(SELECTED_TYPE==selected_pending_history){return(HistoryOrderGetString(SELECTED_TICKET,ORDER_SYMBOL));}
}
return(NULL);
}

//order comment
string mql4OrderComment(){
if(SELECTED_TYPE!=selected_empty)
{
//market + market history
  if(SELECTED_TYPE==selected_market||SELECTED_TYPE==selected_market_history){return(PositionGetString(POSITION_COMMENT));}
//pending
  if(SELECTED_TYPE==selected_pending){return(OrderGetString(ORDER_COMMENT));}
//pending history
  if(SELECTED_TYPE==selected_pending_history){return(HistoryOrderGetString(SELECTED_TICKET,ORDER_COMMENT));}
}
return(NULL);
}

//order type
int mql4OrderType(){
if(SELECTED_TYPE!=selected_empty)
{
//market + market history
  if(SELECTED_TYPE==selected_market||SELECTED_TYPE==selected_market_history)
    {
    if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY){return(OP_BUY);}
    if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL){return(OP_SELL);}
    }
//pending
  if(SELECTED_TYPE==selected_pending)
    {
    if(OrderGetInteger(ORDER_TYPE)==ORDER_TYPE_BUY_LIMIT){return(OP_BUYLIMIT);}
    if(OrderGetInteger(ORDER_TYPE)==ORDER_TYPE_BUY_STOP){return(OP_BUYSTOP);}
    if(OrderGetInteger(ORDER_TYPE)==ORDER_TYPE_SELL_LIMIT){return(OP_SELLLIMIT);}
    if(OrderGetInteger(ORDER_TYPE)==ORDER_TYPE_SELL_STOP){return(OP_SELLSTOP);}
    }
//pending history
  if(SELECTED_TYPE==selected_pending_history)
    {
    if(HistoryOrderGetInteger(SELECTED_TICKET,ORDER_TYPE)==ORDER_TYPE_BUY_LIMIT){return(OP_BUYLIMIT);}
    if(HistoryOrderGetInteger(SELECTED_TICKET,ORDER_TYPE)==ORDER_TYPE_BUY_STOP){return(OP_BUYSTOP);}
    if(HistoryOrderGetInteger(SELECTED_TICKET,ORDER_TYPE)==ORDER_TYPE_SELL_LIMIT){return(OP_SELLLIMIT);}
    if(HistoryOrderGetInteger(SELECTED_TICKET,ORDER_TYPE)==ORDER_TYPE_SELL_STOP){return(OP_SELLSTOP);}
    }
}
return(NULL);
}

//order magic
ulong mql4OrderMagic(){
if(SELECTED_TYPE!=selected_empty)
{
//market + market history
  if(SELECTED_TYPE==selected_market||SELECTED_TYPE==selected_market_history){return((ulong)PositionGetInteger(POSITION_MAGIC));}
//pending
  if(SELECTED_TYPE==selected_pending){return((ulong)OrderGetInteger(ORDER_MAGIC));}
//pending history
  if(SELECTED_TYPE==selected_pending_history){return((ulong)HistoryOrderGetInteger(SELECTED_TICKET,ORDER_MAGIC));}
}
return(0);
}
 
faustf:

Hi  i have  this part of mql4 

i want convert to  mql5 , how can do it  ?   i find   double BidPrice = SymbolInfoDouble(  but ordersymbol? ? ? i can do it ?

Hi, here is the MQL5 solution to your MQL4 conversion:

   int ordersTotal = OrdersTotal();
   for(int x = 0; x < ordersTotal; x++)
     {
      if(OrderGetTicket(x) > 0) //--Select the order
        {
         //-- Get the Bid and Ask prices for the order instrument in MQL5
         string orderSymbol = OrderGetString(ORDER_SYMBOL);
         ENUM_ORDER_TYPE orderType = (ENUM_ORDER_TYPE)OrderGetInteger(ORDER_TYPE);
         double bidPrice = SymbolInfoDouble(orderSymbol, SYMBOL_BID);
         double askPrice = SymbolInfoDouble(orderSymbol, SYMBOL_ASK);

         //-- You can now process your order
         Alert(
            "orderSymbol: ", orderSymbol,
            ", orderType: ", EnumToString(orderType),
            ", bidPrice: ", bidPrice, ", askPrice: ", askPrice);
        }
     }

You can also read the MQL5 Trade Functions and Order Properties documentation for more information.
 

Documentation on MQL5: Trade Functions / OrderGetString
Documentation on MQL5: Trade Functions / OrderGetString
  • www.mql5.com
Returns the requested order property, pre-selected using OrderGetTicket or OrderSelect . The order property must be of the string type. There are 2...
 

thanks for rply @Lorentzos Roussos, but your code is a part of  library ?   if yes is public?  thanks  again


and  thanks also @Kelvin Muturi Muigua, i look also in mql5 

Lorentzos Roussos
Lorentzos Roussos
  • 2024.04.12
  • www.mql5.com
Trader's profile