Getting a list of my open orders?

 
I have been reading the Order functions and I have not found a function that can retrieve the ticket number of a particular order in my list of open orders assuming I do not know their ticket numbers off hand.

Let's say I have 3 orders - 1 GBP/USD buy order, 1 EUR/USD sell order and 1 GBP/JPY buy order.

How do I get the ticket number of each of these 3 orders?
 
I think I have got it...

if(OrderSelect(0, SELECT_BY_POS, MODE_TRADES) == true)
{
   ticket_number = OrderTicket();
   Alert(ticket_number);
}
 
This retrieves the 1st ticket depending on which currency pair this is on.
 
   //OPEN ORDERS EXIST
   if(OrdersTotal() > 0)
   {
      //INITIALIZE TICKET VARIABLES
      int ticket_number, ticket_order_type, ticket_currency_digits, ticket_currency_multiplier;
      string ticket_order_type_name;
      double ticket_profit;
      
      //LOOK THROUGH ALL OPEN ORDERS
      for(int order_counter = 0; order_counter < OrdersTotal(); order_counter ++)
      {
         //CURRENT OPEN ORDER MATCHES CURRENT SYMBOL
         if(OrderSelect(order_counter, SELECT_BY_POS, MODE_TRADES) == true && OrderSymbol() == Symbol())
         {
            //RETRIEVE OPEN ORDER'S TICKET NUMBER
            ticket_number = OrderTicket();
            
            //RETRIEVE OPEN ORDER'S TYPE
            ticket_order_type = OrderType();
            
            //RETRIEVE OPEN ORDER'S CURRENCY DIGITS
            ticket_currency_digits = MarketInfo(OrderSymbol(), MODE_DIGITS);
            
            //RETRIEVE OPEN ORDER'S CURRENCY MULTIPLIER TO CALCULATE NUMBER OF PIPS
            switch(ticket_currency_digits)
            {
               //CURRENCIES WITH 2 DIGITS
               case 2:
                  ticket_currency_multiplier = 100;
                  break;
               
               //CURRENCIES WITH 4 DIGITS   
               case 4:
                  ticket_currency_multiplier = 10000;
                  break;
            }
            
            //RETRIEVE OPEN ORDER'S TYPES NAME & PROFIT IN PIPS          
            switch(ticket_order_type)
            {
               //BUYING POSITION
               case 0:
                  ticket_order_type_name = "Buying Position";
                  ticket_profit = (OrderClosePrice() - OrderOpenPrice()) * ticket_currency_multiplier;
                  break;
               
               //SELLING POSITION
               case 1:
                  ticket_order_type_name = "Selling Position";
                  ticket_profit = (OrderOpenPrice() - OrderClosePrice()) * ticket_currency_multiplier;
                  break;
            }
            
            Alert(OrderSymbol() + " " + ticket_order_type_name + " Ticket: " + ticket_number + ", Open Price: " +
OrderOpenPrice() + ", Close Price: " + OrderClosePrice() + ", P/L: " + ticket_profit + " Pips , Stop Loss: " +
OrderStopLoss() + ", Take Profit: " + OrderTakeProfit());
            
         }
      }
   }
 
This is what I've got so far. This code alerts the orders of each currency pair's chart.