Orders Execution
2
Views
0
Downloads
0
Favorites
i-TotalStopCurrency
//+----------------------------------------------------------------------------+
//| i-TotalStopCurrency.mq4 |
//| |
//| Êèì Èãîðü Â. aka KimIV |
//| http://www.kimiv.ru |
//| |
//| 21.12.2011 Indicator of the Total Stop in the Deposit Currency. |
//| Èíäèêàòîð ñóììàðíîãî ñòîïà â âàëþòå äåïîçèòà. |
//| 04.05.2012 Äîáàâèë ñïîñîá ðàñ÷åòà ïðèáûëè äëÿ Futures. |
//+----------------------------------------------------------------------------+
#property copyright "Êèì Èãîðü Â. aka KimIV"
#property link "http://www.kimiv.ru"
#property indicator_chart_window
#property indicator_buffers 0
//------- Âíåøíèå ïàðàìåòðû èíäèêàòîðà ----------------------------------------+
extern string symbol = "GOLD";
extern color ecText = Navy; // Öâåò òåêñòà
extern int eiCorner = 2; // Íîìåð óãëà ïðèâÿçêè:
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
// 0 - ëåâûé âåðõíèé
// 1 - ïðàâûé âåðõíèé
// 2 - ëåâûé íèæíèé
// 3 - ïðàâûé íèæíèé
//------- Ãëîáàëüíûå ïåðåìåííûå èíäèêàòîðà ------------------------------------+
//+----------------------------------------------------------------------------+
//| |
//| ÏÐÅÄÎÏÐÅÄÅ˨ÍÍÛÅ ÔÓÍÊÖÈÈ |
//| |
//+----------------------------------------------------------------------------+
//| Custom indicator initialization function |
//+----------------------------------------------------------------------------+
void init()
{
Comment("");
}
//+----------------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+----------------------------------------------------------------------------+
void deinit()
{
Comment("");
for(int i=0; i<4; i++) ObjectDelete("iTotalStopCurrency"+i);
}
//+----------------------------------------------------------------------------+
//| Custom indicator iteration function |
//+----------------------------------------------------------------------------+
void start()
{
double s=ProfitIFStopInCurrency(symbol);
SetLabel("iTotalStopCurrency0","Óðîâåíü ñòîïà",ecText,5,17,eiCorner);
SetLabel("iTotalStopCurrency1",DoubleToStr(s,2)+" "+AccountCurrency(),ecText,5,5,eiCorner);
SetLabel("iTotalStopCurrency2",DoubleToStr(s/AccountBalance()*100,2)+" %",ecText,100,5,eiCorner);
}
//+----------------------------------------------------------------------------+
//| Àâòîð : Êèì Èãîðü Â. aka KimIV, http://www.kimiv.ru |
//+----------------------------------------------------------------------------+
//| Âåðñèÿ : 03.05.2012 |
//| Îïèñàíèå : Âîçâðàùàåò ïðåäïîëàãàåìóþ ïðèáûëü/óáûòîê â âàëþòå äåïîçèòà |
//| â ñëó÷àå ñðàáàòûâàíèÿ ñòîïà îòêðûòûõ ïîçèöèé. |
//+----------------------------------------------------------------------------+
//| Ïàðàìåòðû: |
//| sy - íàèìåíîâàíèå èíñòðóìåíòà ( "" - ëþáîé ñèìâîë, |
//| NULL - òåêóùèé ñèìâîë) |
//| op - îïåðàöèÿ ( -1 - ëþáàÿ ïîçèöèÿ) |
//| mn - MagicNumber ( -1 - ëþáîé ìàãèê) |
//+----------------------------------------------------------------------------+
double ProfitIFStopInCurrency(string sy="",int op=-1,int mn=-1)
{
if(sy=="0") sy=Symbol(); // Òåêóùèé ñèìâîë
int i, k=OrdersTotal(); // Ïîäñ÷¸ò îòêðûòûõ ïîçèöèé
int m; // Ñïîñîá ðàñ÷åòà ïðèáûëè: 0 - Forex, 1 - CFD, 2 - Futures
double l; // Ðàçìåð êîíòðàêòà â áàçîâîé âàëþòå èíñòðóìåíòà
double p; // Ðàçìåð ïóíêòà â âàëþòå êîòèðîâêè
double t; // Ìèíèìàëüíûé øàã èçìåíåíèÿ öåíû èíñòðóìåíòà â âàëþòå êîòèðîâêè
double v; // Ðàçìåð ìèíèìàëüíîãî èçìåíåíèÿ öåíû èíñòðóìåíòà â âàëþòå äåïîçèòà
double s=0; // Ïîäñ÷¸ò ñòîïà â âàëþòå äåïîçèòà
for(i=0; i<k; i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if((OrderSymbol()==sy || sy=="") && (mn<0 || OrderMagicNumber()==mn))
{
if((OrderType()==OP_BUY || OrderType()==OP_SELL) && (op<0 || OrderType()==op))
{
l=MarketInfo(OrderSymbol(), MODE_LOTSIZE);
m=MarketInfo(OrderSymbol(), MODE_PROFITCALCMODE);
p=MarketInfo(OrderSymbol(), MODE_POINT);
t=MarketInfo(OrderSymbol(), MODE_TICKSIZE);
v=MarketInfo(OrderSymbol(), MODE_TICKVALUE);
if(OrderType()==OP_BUY)
{
if(m==0) s-=(OrderOpenPrice()-OrderStopLoss())/p*v*OrderLots();
if(m==1) s-=(OrderOpenPrice()-OrderStopLoss())/p*v/t/l*OrderLots();
if(m==2) s-=(OrderOpenPrice()-OrderStopLoss())/p*v*OrderLots();
s+=OrderCommission()+OrderSwap();
}
if(OrderType()==OP_SELL)
{
if(OrderStopLoss()>0)
{
if(m==0) s-=(OrderStopLoss()-OrderOpenPrice())/p*v*OrderLots();
if(m==1) s-=(OrderStopLoss()-OrderOpenPrice())/p*v/t/l*OrderLots();
if(m==2) s-=(OrderStopLoss()-OrderOpenPrice())/p*v*OrderLots();
s+=OrderCommission()+OrderSwap();
}
else s=-AccountBalance();
}
}
}
}
}
if(AccountBalance()+s<0) s=-AccountBalance(); // Îãðàíè÷åíèå óáûòêà áàëàíñîì ñ÷¸òà
return(s);
}
//+----------------------------------------------------------------------------+
//| Àâòîð : Êèì Èãîðü Â. aka KimIV, http://www.kimiv.ru |
//+----------------------------------------------------------------------------+
//| Âåðñèÿ : 12.10.2007 |
//| Îïèñàíèå : Óñòàíîâêà òåêñòîâîé ìåòêè, îáúåêò OBJ_LABEL. |
//+----------------------------------------------------------------------------+
//| Ïàðàìåòðû: |
//| nm - íàèìåíîâàíèå îáúåêòà |
//| tx - òåêñò |
//| cl - öâåò ìåòêè |
//| xd - êîîðäèíàòà X â ïèêñåëàõ |
//| yd - êîîðäèíàòà Y â ïèêñåëàõ |
//| cr - íîìåð óãëà ïðèâÿçêè (0 - ëåâûé âåðõíèé ) |
//| 1 - ïðàâûé âåðõíèé |
//| 2 - ëåâûé íèæíèé |
//| 3 - ïðàâûé íèæíèé ) |
//| fs - ðàçìåð øðèôòà (9 - ïî óìîë÷àíèþ ) |
//+----------------------------------------------------------------------------+
void SetLabel(string nm,string tx,color cl,int xd,int yd,int cr=0,int fs=9)
{
if(ObjectFind(nm)<0) ObjectCreate(nm,OBJ_LABEL,0,0,0);
ObjectSetText(nm,tx,fs);
ObjectSet(nm,OBJPROP_COLOR,cl);
ObjectSet(nm,OBJPROP_XDISTANCE,xd);
ObjectSet(nm,OBJPROP_YDISTANCE,yd);
ObjectSet(nm,OBJPROP_CORNER,cr);
ObjectSet(nm,OBJPROP_FONTSIZE,fs);
}
//+----------------------------------------------------------------------------+
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
---