Show history





//+------------------------------------------------------------------+
//|                                                Show history.mq4  |
//|                                                         Valmars  |
//|                                                   valmars@bk.ru  |
//+------------------------------------------------------------------+
#property copyright "Valmars"
#property link      "valmars@bk.ru"
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start() 
  { 
// Óäàëåíèå âñåõ ñòðåëîê ñäåëîê ñ ãðàôèêà
   ObjectsDeleteAll(0,OBJ_ARROW);
// Óäàëåíèå âñåõ ëèíèé çàêðûòûõ ïîçèöèé ñ ãðàôèêà
   for(int i = 0; i < ObjectsTotal(); i++)
     {
       if(ObjectType(ObjectName(i)) == OBJ_TREND) 
           if(!ObjectGet(ObjectName(i), OBJPROP_RAY))
               ObjectDelete(ObjectName(i)); 
     }
   string name;  // Èìÿ îáúåêòà-ñòðåëêè
   int Arrow;    // Êîä ñòðåëêè 
   double Color; // Öâåò ñòðåëêè
//  Ïðîâåðêà äëÿ âñåõ îòêðûòûõ è îòëîæåííûõ îðäåðîâ    
   for(i = 0; i < OrdersTotal(); i++) 
	    { 	
	      OrderSelect(i, SELECT_BY_POS);   
	      // Ñèìâîëû îðäåðà è ãðàôèêà íå ñîâïàäàþò
	      if(OrderSymbol() != Symbol())
		         continue;        // Ñëåäóþùèé îðäåð
       switch(OrderType())  // Ïàðàìåòðû ñòðåëîê
         {
           case OP_BUY:       Arrow = 1; Color = Aqua;
                              name = OrderTicket() + " buy " +
                              DoubleToStr(OrderLots(), 2) + " " + 
                              OrderSymbol() + " at "+ 
                              DoubleToStr(OrderOpenPrice(), 
                              MarketInfo(OrderSymbol(), MODE_DIGITS)); 
                              break;         
           case OP_SELL:      Arrow = 2; Color = Red;
                              name = OrderTicket() + " sell " +
                              DoubleToStr(OrderLots(), 2) + " " + 
                              OrderSymbol() + " at " + 
                              DoubleToStr(OrderOpenPrice(), 
                              MarketInfo(OrderSymbol(), MODE_DIGITS));
                              break; 
           case OP_BUYLIMIT:  Arrow = 1; Color = Yellow;
                              name = OrderTicket() + " buylimit " +
                              DoubleToStr(OrderLots(), 2) + " " + 
                              OrderSymbol() + " at " + 
                              DoubleToStr(OrderOpenPrice(), 
                              MarketInfo(OrderSymbol(), MODE_DIGITS));
                              break; 
           case OP_BUYSTOP:   Arrow = 1; Color = Yellow;
                              name = OrderTicket() + " buystop " + 
                              DoubleToStr(OrderLots(), 2) + " " + 
                              OrderSymbol() + " at " + 
                              DoubleToStr(OrderOpenPrice(), 
                              MarketInfo(OrderSymbol(), MODE_DIGITS)); 
                              break; 
           case OP_SELLLIMIT: Arrow = 2; Color = Yellow;
                              name = OrderTicket() + " selllimit " + 
                              DoubleToStr(OrderLots(), 2) + " " + 
                              OrderSymbol() + " at " +
                              DoubleToStr(OrderOpenPrice(), 
                              MarketInfo(OrderSymbol(), MODE_DIGITS));
                              break; 
           case OP_SELLSTOP:  Arrow = 2; Color = Yellow;
                              name = OrderTicket() + " sellstop " + 
                              DoubleToStr(OrderLots(), 2) + " " + 
                              OrderSymbol() + " at " + 
                              DoubleToStr(OrderOpenPrice(), 
                              MarketInfo(OrderSymbol(), MODE_DIGITS));
                              break; 
         }
       // Ñòðåëêà îòêðûòèÿ îðäåðà
       ObjectCreate(name, OBJ_ARROW, 0, OrderOpenTime(), OrderOpenPrice());
       ObjectSet(name, OBJPROP_ARROWCODE, Arrow); 
       ObjectSet(name, OBJPROP_COLOR, Color);
     }
//  Ïðîâåðêà äëÿ âñåõ çàêðûòûõ è óäàë¸ííûõ îðäåðîâ
   for(i = 0; i < HistoryTotal(); i++)  
	    { 	
	      OrderSelect(i, SELECT_BY_POS, MODE_HISTORY);
	      // Ñèìâîëû îðäåðà è ãðàôèêà íå ñîâïàäàþò
	      if(OrderSymbol() != Symbol())
		         continue;   // Ñëåäóþùèé îðäåð
       switch(OrderType())
         {
           case OP_BUY:       Arrow = 1; Color = Aqua;
                              name = OrderTicket() + " buy " + 
                              DoubleToStr(OrderLots(), 2) + " " + 
                              OrderSymbol() + " at " +
                              DoubleToStr(OrderOpenPrice(), 
                              MarketInfo(OrderSymbol(), MODE_DIGITS));
                              break;
           case OP_SELL:      Arrow = 2; Color = Red;
                              name = OrderTicket() + " sell " +
                              DoubleToStr(OrderLots(), 2) + " " + 
                              OrderSymbol() + " at " + 
                              DoubleToStr(OrderOpenPrice(),
                              MarketInfo(OrderSymbol(), MODE_DIGITS)); 
                              break;
           case OP_BUYLIMIT:  Arrow = 1; Color = Yellow;
                              name = OrderTicket() + " buylimit " + 
                              DoubleToStr(OrderLots(), 2) + " " + 
                              OrderSymbol() + " at " + 
                              DoubleToStr(OrderOpenPrice(), 
                              MarketInfo(OrderSymbol(), MODE_DIGITS)); 
                              break;
           case OP_BUYSTOP:   Arrow = 1; Color = Yellow;
                              name = OrderTicket() + " buystop " + 
                              DoubleToStr(OrderLots(), 2) + " " + 
                              OrderSymbol() + " at " + 
                              DoubleToStr(OrderOpenPrice(), 
                              MarketInfo(OrderSymbol(), MODE_DIGITS)); 
                              break;
           case OP_SELLLIMIT: Arrow = 2; Color = Yellow;
                              name = OrderTicket() + " selllimit " + 
                              DoubleToStr(OrderLots(), 2) + " " + 
                              OrderSymbol() + " at " + 
                              DoubleToStr(OrderOpenPrice(), 
                              MarketInfo(OrderSymbol(), MODE_DIGITS)); 
                              break;
           case OP_SELLSTOP:  Arrow = 2; Color = Yellow;
                              name = OrderTicket() + " sellstop " + 
                              DoubleToStr(OrderLots(), 2) + " " + 
                              OrderSymbol() + " at " + 
                              DoubleToStr(OrderOpenPrice(), 
                              MarketInfo(OrderSymbol(), MODE_DIGITS)); 
                              break;
         }
       // Ñòðåëêà îòêðûòèÿ îðäåðà
       ObjectCreate(name, OBJ_ARROW, 0, OrderOpenTime(), OrderOpenPrice());
       ObjectSet(name, OBJPROP_ARROWCODE, Arrow); 
       ObjectSet(name, OBJPROP_COLOR, Color);
       switch(OrderType())
         {
           case OP_BUY:       Arrow = 1; Color = Aqua;
                              name = OrderTicket() + " buy  " + 
                              DoubleToStr(OrderLots(), 2) + " " + 
                              OrderSymbol() + " at " +  
                              DoubleToStr(OrderOpenPrice(), 
                              MarketInfo(OrderSymbol(), MODE_DIGITS)); 
                              break;
           case OP_SELL:      Arrow = 2; Color = Red;
                              name = OrderTicket() + " sell  " + 
                              DoubleToStr(OrderLots(), 2) + " " + 
                              OrderSymbol() + " at " + 
                              DoubleToStr(OrderOpenPrice(), 
                              MarketInfo(OrderSymbol(), MODE_DIGITS)); 
                              break;
           case OP_BUYLIMIT:  Arrow = 1; Color = Yellow;
                              name = OrderTicket() + " buylimit  " + 
                              DoubleToStr(OrderLots(), 2) + " " + 
                              OrderSymbol() + " at " + 
                              DoubleToStr(OrderOpenPrice(), 
                              MarketInfo(OrderSymbol(), MODE_DIGITS)); 
                              break;
           case OP_BUYSTOP:   Arrow = 1; Color = Yellow;
                              name = OrderTicket() + " buystop  " + 
                              DoubleToStr(OrderLots(), 2) + " " + 
                              OrderSymbol() + " at " + 
                              DoubleToStr(OrderOpenPrice(), 
                              MarketInfo(OrderSymbol(), MODE_DIGITS));
                              break;
           case OP_SELLLIMIT: Arrow = 2; Color = Yellow;
                              name = OrderTicket() + " selllimit  " + 
                              DoubleToStr(OrderLots(), 2) + " " + 
                              OrderSymbol() + " at " + 
                              DoubleToStr(OrderOpenPrice(), 
                              MarketInfo(OrderSymbol(), MODE_DIGITS)); break;
           case OP_SELLSTOP:  Arrow = 2; Color = Yellow;
                              name = OrderTicket() + " sellstop  " + 
                              DoubleToStr(OrderLots(), 2) + " " + 
                              OrderSymbol() + " at " + 
                              DoubleToStr(OrderOpenPrice(), 
                              MarketInfo(OrderSymbol(), MODE_DIGITS)); 
                              break;
         }       
       // Ñòðåëêà çàêðûòèÿ îðäåðà
       ObjectCreate(name, OBJ_ARROW, 0, OrderCloseTime(), OrderClosePrice());
       ObjectSet(name, OBJPROP_ARROWCODE, 3); 
       ObjectSet(name, OBJPROP_COLOR, Color);
       // Ïðîðèñîâêà ëèíèé çàêðûòûõ ïîçèöèé
       name = OrderTicket() + DoubleToStr(OrderOpenPrice(), MarketInfo(OrderSymbol(), 
              MODE_DIGITS)) + "->" + DoubleToStr(OrderClosePrice(), 
              MarketInfo(OrderSymbol(), MODE_DIGITS));
       ObjectCreate(name, OBJ_TREND, 0, OrderOpenTime(), OrderOpenPrice(), 
                    OrderCloseTime(), OrderClosePrice());
       ObjectSet(name, OBJPROP_STYLE, STYLE_DOT); 
       ObjectSet(name, OBJPROP_WIDTH, 1);
       ObjectSet(name, OBJPROP_RAY, false);
       ObjectSet(name, OBJPROP_COLOR, Color); 
    }
   return(0);
  }
//+------------------------------------------------------------------+



Sample





Analysis



Market Information Used:



Indicator Curves created:


Indicators Used:



Custom Indicators Used:

Order Management characteristics:
Checks for the total of open orders


Other Features: