Orders Execution
Miscellaneous
0
Views
0
Downloads
0
Favorites
CloseProfit_v1
//+------------------------------------------------------------------+
//| Copyright © 2011, Vladimir Hlystov |
//| Çàêðûâàåò âñå îðäåðà ïðè îïðåäåëåííîì ïðîôèòå |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, http://cmillion.narod.ru"
#property link "cmillion@narod.ru"
//-------------------------------------------------------------------
extern double ProfitClose = 10; //çàêðûâàòü âñå îðäåðà ïðè ïîëó÷åíèè ïðîôèòà
extern double LossClose = 1000; //çàêðûâàòü âñå îðäåðà ïðè ïîëó÷åíèè óáûòêà
extern bool AllSymbol = false;//ó÷èòûâàòü âñå èíñòðóìåíòû èëè òîëüêî òîò, íà êîòîðîì ñòîèò ñîâåòíèê
//-------------------------------------------------------------------
string txt;
int init()
{
ObjectCreate("Balance", OBJ_LABEL, 0, 0, 0);
ObjectSet("Balance", OBJPROP_CORNER, 1);
ObjectSet("Balance", OBJPROP_XDISTANCE, 5);
ObjectSet("Balance", OBJPROP_YDISTANCE, 15);
ObjectCreate("Equity", OBJ_LABEL, 0, 0, 0);
ObjectSet("Equity", OBJPROP_CORNER, 1);
ObjectSet("Equity", OBJPROP_XDISTANCE, 5);
ObjectSet("Equity", OBJPROP_YDISTANCE, 25);
ObjectCreate("Profit", OBJ_LABEL, 0, 0, 0);
ObjectSet("Profit", OBJPROP_CORNER, 1);
ObjectSet("Profit", OBJPROP_XDISTANCE, 5);
ObjectSet("Profit", OBJPROP_YDISTANCE, 35);
ObjectCreate("Copyright", OBJ_LABEL, 0, 0, 0);
ObjectSet("Copyright", OBJPROP_CORNER, 3);
ObjectSet("Copyright", OBJPROP_XDISTANCE, 5);
ObjectSet("Copyright", OBJPROP_YDISTANCE, 5);
ObjectSetText("Copyright","CloseProfit Copyright © 2011, http://cmillion.narod.ru\n",8,"Arial",Gold);
if (AllSymbol) txt = "Ïî âñåì èíñòðóìåíòàì ñ÷åòà";
return(0);
}
//-------------------------------------------------------------------
int deinit()
{
ObjectDelete("Balance");
ObjectDelete("Equity");
ObjectDelete("Profit");
ObjectDelete("Copyright");
return(0);
}
//-------------------------------------------------------------------
int start()
{
double Profit,LB,LS,OL;
int b,s,OT;
for (int i=OrdersTotal()-1; i>=0; i--)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if (OrderSymbol() == Symbol() || AllSymbol)
{
OT = OrderType();
OL = OrderLots();
if (OT==OP_BUY)
{
b++;LB+= OL;
Profit+=OrderProfit();
}
if (OT==OP_SELL)
{
s++;LS+= OL;
Profit+=OrderProfit();
}
}
}
}
Comment(txt,"\nBuy ",b,"\nSell ",s);
//---
if (Profit>=ProfitClose)
{
Alert("Äîñòèãíóò óðîâåíü ïðîôèòà = "+DoubleToStr(Profit,2));
CloseAll();
}
if (Profit<=-LossClose)
{
Alert("Äîñòèãíóò óðîâåíü ìàêñèìàëüíîãî óáûòêà "+DoubleToStr(Profit,2));
CloseAll();
}
ObjectSetText("Balance",StringConcatenate("Balance ",DoubleToStr(AccountBalance(),2)),8,"Arial",Gold);
ObjectSetText("Equity",StringConcatenate("Equity ",DoubleToStr(AccountEquity(),2)),8,"Arial",Gold);
string txt2;
if (LB>0 || LS>0)
{
if (AllSymbol) txt2 = StringConcatenate("Profit All Symbol ",DoubleToStr(Profit,2));
else txt2 = StringConcatenate("Profit ",Symbol()," ",DoubleToStr(Profit,2));
}
if (LB>0) txt2 = StringConcatenate(txt2," Lot Buy = ",DoubleToStr(LB,2));
if (LS>0) txt2 = StringConcatenate(txt2," Lot Sell = ",DoubleToStr(LS,2));
ObjectSetText("Profit",txt2,12,"Arial",Color(Profit));
return;
}
//------------------------------------------------------------------
color Color(double P)
{
if (P>0) return(Green);
if (P<0) return(Red);
if (P==0) return(Green);
}
//------------------------------------------------------------------
bool CloseAll()
{
bool error=true;
int err,nn,OT;
string Symb;
while(true)
{
for (int j = OrdersTotal()-1; j >= 0; j--)
{
if (OrderSelect(j, SELECT_BY_POS))
{
Symb = OrderSymbol();
if (Symb == Symbol() || AllSymbol)
{
OT = OrderType();
if (OT>1)
{
OrderDelete(OrderTicket());
}
if (OT==OP_BUY)
{
error=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(MarketInfo(Symb,MODE_BID),MarketInfo(Symb,MODE_DIGITS)),3,Blue);
if (error) Alert(Symb," Çàêðûò îðäåð N ",OrderTicket()," ïðèáûëü ",OrderProfit(),
" ",TimeToStr(TimeCurrent(),TIME_SECONDS));
}
if (OT==OP_SELL)
{
error=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(MarketInfo(Symb,MODE_ASK),MarketInfo(Symb,MODE_DIGITS)),3,Red);
if (error) Alert(Symb," Çàêðûò îðäåð N ",OrderTicket()," ïðèáûëü ",OrderProfit(),
" ",TimeToStr(TimeCurrent(),TIME_SECONDS));
}
if (!error)
{
err = GetLastError();
if (err<2) continue;
if (err==129)
{ Comment("Íåïðàâèëüíàÿ öåíà ",TimeToStr(TimeCurrent(),TIME_MINUTES));
Sleep(5000);
RefreshRates();
continue;
}
if (err==146)
{
if (IsTradeContextBusy()) Sleep(2000);
continue;
}
Comment("Îøèáêà ",err," çàêðûòèÿ îðäåðà N ",OrderTicket(),
" ",TimeToStr(TimeCurrent(),TIME_MINUTES));
}
}
}
}
int n=0;
for (j = 0; j < OrdersTotal(); j++)
{
if (OrderSelect(j, SELECT_BY_POS))
{
if (OrderSymbol() == Symbol() || AllSymbol)
{
OT = OrderType();
if (OT==OP_BUY || OT==OP_SELL) n++;
}
}
}
if (n==0) break;
nn++;
if (nn>10) {Alert(Symb," Íå óäàëîñü çàêðûòü âñå ñäåëêè, îñòàëîñü åùå ",n);return(0);}
Sleep(1000);
RefreshRates();
}
return(1);
}
//--------------------------------------------------------------------
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
---