Orders Execution
0
Views
0
Downloads
0
Favorites
CloseAll_v4
//+------------------------------------------------------------------+
//| CloseAll.mq4 |
//| Barmaley |
//| |
//+------------------------------------------------------------------+
#property copyright "Barmaley"
#property link ""
#property show_inputs
extern int Magic=0;
double PriceCurrent;
//+------------------------------------------------------------------+
//| script program start function |
//+------------------------------------------------------------------+
int start()
{
//----
PriceCurrent=MarketInfo(Symbol(),MODE_BID);
CloseAll();
//----
return(0);
}
//+------------------------------------------------------------------+
//ííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí
void CloseAll()
{
//Çàêðîåì Âñòðå÷íûå îðäåðà
int TicBuy=999, TicSell=999;
double lotbuy,lotsell;
while (TicBuy>0 && TicSell>0)
{
RefreshRates();
int TOTAL=OrdersTotal();
TicBuy=0; TicSell=0;
// Òèêåò îðäåðà Buy
for (int trade = TOTAL - 1; trade >= 0; trade--)
{
OrderSelect(trade, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || (Magic>0 && OrderMagicNumber() != Magic)) continue;
int ticket = OrderTicket();
if (OrderType()==OP_BUY) {TicBuy=ticket;lotbuy=OrderLots();break;}
}
if (TicBuy==0) continue;
// Òèêåò îðäåðà Sell
for (trade = OrdersTotal() - 1; trade >= 0; trade--)
{
OrderSelect(trade, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || (Magic>0 && OrderMagicNumber() != Magic)) continue;
ticket = OrderTicket();
if (OrderType()==OP_SELL) {TicSell=ticket;lotsell=OrderLots();break;}
}
if (TicSell==0) continue;
if (lotbuy>lotsell) OrderCloseBy(TicBuy,TicSell); else OrderCloseBy(TicSell,TicBuy);
}
//Çàêðîåì îñòàâøèåñÿ îðäåðà
for (trade = OrdersTotal() - 1; trade >= 0; trade--)
{
OrderSelect(trade, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || (Magic>0 && OrderMagicNumber() != Magic)) continue;
ticket = OrderTicket();
if (OrderType()>1) {OrderDelete(ticket);continue;}
double l=OrderLots();
OrderClose(ticket,l,PriceCurrent,10000);
}
}
//ííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí
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
---