Price Data Components
0
Views
0
Downloads
0
Favorites
Bal_Eq_Ind
//+----------------------------------------------------------------------------+
//| i-BalEq.mq4 |
//| Êèì Èãîðü Â. aka KimIV |
//| http://www.kimiv.ru |
//| 01.10.2006 Ãðàôèê áàëàíñà è ýêâèòè. |
//+----------------------------------------------------------------------------+
#property copyright "Êèì Èãîðü Â. aka KimIV"
#property link "http://www.kimiv.ru"
//----
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Lime
#property indicator_width1 2
#property indicator_color2 Red
#property indicator_width2 1
//------- Ïîêëþ÷åíèå âíåøíèõ ìîäóëåé -------------------------------------------
//------- Âíåøíèå ïàðàìåòðû èíäèêàòîðà -----------------------------------------
extern double Deposit = 1000; // Íà÷àëüíûé äåïîçèò
extern bool CurSymbolOnly = False; // Ó÷èòûâàòü òîëüêî òåêóùèé èíñòðóìåíò
//------- Áóôåðû èíäèêàòîðà ----------------------------------------------------
double dBuf0[], dBuf1[];
//------- Ãëîáàëüíûå ïåðåìåííûå èíäèêàòîðà -------------------------------------
int oob[]; // íîìåð áàðà îòêðûòèÿ
int oty[]; // òèï
double olo[]; // ëîò
string osy[]; // èíñòðóìåíò
double oop[]; // öåíà îòêðûòèÿ
int ocb[]; // íîìåð áàðà çàêðûòèÿ
double ocp[]; // öåíà çàêðûòèÿ
double osw[]; // ñâîï
double opr[]; // ïðèáûëü
//+----------------------------------------------------------------------------+
//| Custom indicator initialization function |
//+----------------------------------------------------------------------------+
void init()
{
SetIndexBuffer(0, dBuf0);
SetIndexLabel (0, "Balance");
SetIndexStyle (0, DRAW_LINE);
SetIndexBuffer(1, dBuf1);
SetIndexLabel (1, "Equity");
SetIndexStyle (1, DRAW_LINE);
}
//+----------------------------------------------------------------------------+
//| Custom indicator iteration function |
//+----------------------------------------------------------------------------+
void start()
{
double b, e, p, t;
int i, j, k;
ReadDeals();
if(oob[0] < 0)
return;
k = ArraySize(oob);
for(i = Bars; i >= oob[0]; i--)
{
dBuf0[i] = EMPTY_VALUE;
dBuf1[i] = EMPTY_VALUE;
}
for(i = oob[0]; i >= 0; i--)
{
b= Deposit; e=0;
for(j = 0; j < k; j++)
{
if(i <= oob[j] && i > ocb[j])
{
p = MarketInfo(osy[j], MODE_POINT);
t = MarketInfo(osy[j], MODE_TICKVALUE);
if(t == 0)
t = 10;
if(p == 0)
if(StringFind(osy[j], "JPY") < 0)
p = 0.0001;
else
p = 0.01;
if(oty[j] == OP_BUY)
e += (iClose(osy[j], 0, i) - ocp[j]) / p*olo[j]*t;
else
e += (ocp[j] - iClose(osy[j], 0, i)) / p*olo[j]*t;
}
else
if(i <= ocb[j])
b += osw[j] + opr[j];
}
dBuf0[i] = b;
dBuf1[i] = b + e;
}
}
//+----------------------------------------------------------------------------+
//| ×òåíèå ñäåëîê |
//+----------------------------------------------------------------------------+
void ReadDeals()
{
ArrayResize(oob, 0);
ArrayResize(oty, 0);
ArrayResize(olo, 0);
ArrayResize(osy, 0);
ArrayResize(oop, 0);
ArrayResize(ocb, 0);
ArrayResize(ocp, 0);
ArrayResize(osw, 0);
ArrayResize(opr, 0);
int h = HistoryTotal(), i, k;
for(i = 0; i < h; i++)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
{
if(!CurSymbolOnly || OrderSymbol() == Symbol())
{
if(OrderType() == OP_BUY || OrderType() == OP_SELL)
{
k = ArraySize(oob);
ArrayResize(oob, k + 1);
ArrayResize(oty, k + 1);
ArrayResize(olo, k + 1);
ArrayResize(osy, k + 1);
ArrayResize(oop, k + 1);
ArrayResize(ocb, k + 1);
ArrayResize(ocp, k + 1);
ArrayResize(osw, k + 1);
ArrayResize(opr, k + 1);
oob[k] = iBarShift(NULL, 0, OrderOpenTime()); // íîìåð áàðà îòêðûòèÿ
oty[k] = OrderType(); // òèï
olo[k] = OrderLots(); // ëîò
osy[k] = OrderSymbol(); // èíñòðóìåíò
oop[k] = OrderOpenPrice(); // öåíà îòêðûòèÿ
ocb[k] = iBarShift(NULL, 0, OrderCloseTime()); // íîìåð áàðà çàêðûòèÿ
ocp[k] = OrderClosePrice(); // öåíà çàêðûòèÿ
osw[k] = OrderSwap(); // ñâîï
opr[k] = OrderProfit(); // ïðèáûëü
}
}
}
}
}
//+----------------------------------------------------------------------------+
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
---