Orders Execution
0
Views
0
Downloads
0
Favorites
closeall_v2
//+------------------------------------------------------------------+
//| CloseAll.mq4 |
//| Barmaley |
//| Ñïàñèáî Áýòìàíó |
//+------------------------------------------------------------------+
#property copyright "Barmaley"
#property link ""
#property show_inputs
extern int Magic=0;
double PriceCurrent;
//+------------------------------------------------------------------+
//| script program start function |
//+------------------------------------------------------------------+
int OnStart()
{
//----
CloseAll();
//----
return(0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void CloseAll()
{
double lotbuy=0,lotsell=0,sumlot;
int cmd;
// Ðàñ÷åò ñóììàðíîé ïîçèöèè, çàîäíî óäàëèì îòëîæåííèêè
int TOTAL=OrdersTotal();
for(int trade=TOTAL-1; trade>=0; trade--)
{
bool x=OrderSelect(trade,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()!=Symbol() || (Magic!=0 && OrderMagicNumber()!=Magic)) continue;
int ticket=OrderTicket();
if(OrderType()==OP_BUY) lotbuy+=OrderLots();
if(OrderType()==OP_SELL) lotsell+=OrderLots();
if(OrderType()>1) x=OrderDelete(ticket);
}
sumlot=lotbuy-lotsell;
// Îòêðîåì âñòðå÷íóþ ê ñóììàðíîé
if(sumlot>0) {cmd=OP_SELL; PriceCurrent=MarketInfo(Symbol(),MODE_BID);}
if(sumlot<0) {cmd=OP_BUY; PriceCurrent=MarketInfo(Symbol(),MODE_ASK);}
if(sumlot!=0) x=OrderSend(Symbol(),cmd,MathAbs(sumlot),PriceCurrent,1000,0,0,"",Magic);
//Çàêðîåì Âñòðå÷íûå îðäåðà
int TicBuy=999,TicSell=999; //×òîáû çàïóñèòü öèêë
while(TicBuy>0 && TicSell>0)
{
RefreshRates();
TOTAL=OrdersTotal(); //Åñëè ëîòû âñòðå÷íûõ ðàçíûå, îáðàçóþòñÿ íîâûå îðäåðà è òèêåòû, ïîýòîìó âû÷èñëÿåì êàæäûé ðàç
TicBuy=0; TicSell=0;
// Òèêåò îðäåðà Buy, ïåðâûé ïîïàâøèéñÿ
for(trade=TOTAL-1; trade>=0; trade--)
{
x=OrderSelect(trade,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()!=Symbol() || (Magic!=0 && OrderMagicNumber()!=Magic)) continue;
ticket=OrderTicket();
if(OrderType()==OP_BUY) {TicBuy=ticket;lotbuy=OrderLots();break;}
}
if(TicBuy==0) continue; //Çàêîí÷èëèñü áàè, âûõîäèì
// Òèêåò îðäåðà Sell, ïåðâûé ïîïàâøèéñÿ
for(trade=OrdersTotal()-1; trade>=0; trade--)
{
x=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) //Äëÿ êðàñîòû â îò÷åòå
x=OrderCloseBy(TicBuy,TicSell);
else x=OrderCloseBy(TicSell,TicBuy);
}
}
//+------------------------------------------------------------------+
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
---