//+------------------------------------------------------------------+ //| 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: