Orders Execution
0
Views
0
Downloads
0
Favorites
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);
}
//+------------------------------------------------------------------+
Comments
Markdown Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---