Orders Execution
Miscellaneous
0
Views
0
Downloads
0
Favorites
CloseAllOrders_v4
//+------------------------------------------------------------------+
#property copyright "Vladimir Khlistov"
#property link "http://cmillion.narod.ru"
#property show_inputs
#include <WinUser32.mqh>
//+------------------------------------------------------------------+
extern int Magic = 0; //çàêðûâàòü òîëüêî ñäåëêè ñ ìàãèêîì 0-îòêðûòûå âðó÷íóþ
extern bool MagicAll = true;//åñëè true - çàêðûâàòü âñå
extern int Profit = 0; //çàêðûâàòü òîëüêî ñäåëêè ñ ïðîôèòîì áîëüøå Profit
extern int TipOrder = 0; //(0) - âñå îðäåðà (1) - Buy (-1) - Sell
extern bool SymbolAll = true;//åñëè true - âñå âàëþòíûå ïàðû false - òîëüêî òåêóùèå
int slippage = 5;
int nn;
//+------------------------------------------------------------------+
int start()
{
if (Digits==5 || Digits==3) slippage=30;
bool error=true;
int Îøèáêà,DIGITS;
string txt;
double ASK,BID,POINT;
if (!MagicAll) txt=StringConcatenate(txt,"Cêðèïò çàêðûòèÿ îðäåðîâ ñ Magic=",Magic);
else txt=StringConcatenate(txt,"Cêðèïò çàêðûòèÿ âñåõ îðäåðîâ");
Comment("");
int ret=MessageBox("Çàêðûòü âñå îðäåðà (Äà) Çàêðûòü òîëüêî ïðîôèòíûå (Íåò)",
txt, MB_YESNOCANCEL|MB_TOPMOST);
if (ret==IDCANCEL) return;
while(true)
{
for (int j = OrdersTotal()-1; j >= 0; j--)
{
if (OrderSelect(j, SELECT_BY_POS))
{
if ((OrderSymbol() == Symbol()||SymbolAll) && (OrderMagicNumber() == Magic || MagicAll))
{
DIGITS = MarketInfo(OrderSymbol(),MODE_DIGITS);
ASK = NormalizeDouble(MarketInfo(OrderSymbol(),MODE_ASK),DIGITS);
BID = NormalizeDouble(MarketInfo(OrderSymbol(),MODE_BID),DIGITS);
POINT = MarketInfo(OrderSymbol(),MODE_POINT);
if (OrderType()==OP_BUY && (TipOrder == 1||TipOrder ==0))
{
if (ret==IDNO && Profit > (BID-OrderOpenPrice())/POINT) continue;
error=OrderClose(OrderTicket(),OrderLots(),BID,slippage,Red);
if (error) Alert("Çàêðûò îðäåð N ",OrderTicket()," ïðèáûëü ",OrderProfit(),
" ",TimeToStr(TimeCurrent(),TIME_SECONDS));
}
if (OrderType()==OP_SELL && (TipOrder ==-1||TipOrder ==0))
{
if (ret==IDNO && Profit > (OrderOpenPrice()-ASK)/POINT) continue;
error=OrderClose(OrderTicket(),OrderLots(),ASK,slippage,Red);
if (error) Alert("Çàêðûò îðäåð N ",OrderTicket()," ïðèáûëü ",OrderProfit(),
" ",TimeToStr(TimeCurrent(),TIME_SECONDS));
}
if (!error)
{
Îøèáêà = GetLastError();
if (Îøèáêà<2) continue;
if (Îøèáêà==129)
{ Comment("Íåïðàâèëüíàÿ öåíà ",TimeToStr(TimeCurrent(),TIME_SECONDS));
Sleep(5000);
RefreshRates();
continue;
}
if (Îøèáêà==146)
{
int ret1=MessageBox("Ïîäñèñòåìà òîðãîâëè çàíÿòà"," ",
MB_RETRYCANCEL|MB_TOPMOST|MB_ICONWARNING);
if (ret1==IDCANCEL) return;
j++;
if (IsTradeContextBusy()) Sleep(2000);
continue;
}
Comment("Îøèáêà ",Îøèáêà," çàêðûòèÿ îðäåðà N ",OrderTicket(),
" ",TimeToStr(TimeCurrent(),TIME_SECONDS));
}
}
}
}
int n=0;
for (j = 0; j < OrdersTotal(); j++)
{
if (OrderSelect(j, SELECT_BY_POS))
{
if ((OrderSymbol() == Symbol()||SymbolAll) && (OrderMagicNumber() == Magic || MagicAll))
{
DIGITS = MarketInfo(OrderSymbol(),MODE_DIGITS);
ASK = NormalizeDouble(MarketInfo(OrderSymbol(),MODE_ASK),DIGITS);
BID = NormalizeDouble(MarketInfo(OrderSymbol(),MODE_BID),DIGITS);
POINT = MarketInfo(OrderSymbol(),MODE_POINT);
if (OrderType()==OP_BUY && (TipOrder == 1||TipOrder ==0))
{
if (ret==IDNO && Profit > (BID-OrderOpenPrice())/POINT) continue;
n++;
}
if (OrderType()==OP_SELL && (TipOrder ==-1||TipOrder ==0))
{
if (ret==IDNO && Profit > (OrderOpenPrice()-ASK)/POINT) continue;
n++;
}
}
}
}
if (n==0) break;
nn++;
if (nn>10) {Comment("Íå óäàëîñü çàêðûòü âñå ñäåëêè, îñòàëîñü åùå ",n);break;}
Sleep(1000);
RefreshRates();
}
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
---