Orders Execution
0
Views
0
Downloads
0
Favorites
4Shuw-AccInfo
//+------------------------------------------------------------------+
//| (Shu)-AccInfo.mq4 |
//| `Shu |
//| http://SovetnikShu.ru |
//+------------------------------------------------------------------+
#property copyright "`Shu"
#property link "http://SovetnikShu.ru"
#property indicator_separate_window
extern int Months = 3;
extern int Weeks = 6;
extern color clr_Head = Aqua;
extern color clr_Good = Lime;
extern color clr_Bad = Red;
int win;
string shu = " [1.02] (c) `Shu [http://SovetnikShu.ru]";
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init() {
Print(WindowExpertName() + shu);
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit() {
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start() {
int i;
double d;
datetime dt;
string s;
IndicatorShortName_shu("(Shu)-AccInfo: " + (string)AccountNumber() + " " + AccountCompany());
ccc(win, "");
ccc(win, "Ñ÷¸ò: " + ns0(AccountNumber()), clr_Head, 0, 20, 20, 20);
ccc(win, "Áàëàíñ: " + ns2(AccountBalance()), clr_Good);
ccc(win, "Ýêâèòè: " + ns2(AccountEquity()), clr_Good);
d = Result(0, TimeCurrent() + 1);
s = "Ðåçóëüòàò: " + ns2(d);
ccc(win, s, ((d >= 0) ? clr_Good : clr_Bad));
ccc(win, "Ìåñÿöû: ", clr_Head, 0, 160, 20, 0);
for (i = 0; i > -Months; i--) {
dt = StartMonth(TimeCurrent(), i);
d = Result(dt, StartMonth(dt, 1) - 1);
s = MonthTxt(TimeMonth(dt)) + ": " + ns2(d);
ccc(win, s, ((d >= 0) ? clr_Good : clr_Bad));
}
ccc(win, "Íåäåëè: ", clr_Head, 0, 300, 20, 0);
for (i = 0; i > -Weeks; i--) {
dt = StartWeek(TimeCurrent(), i);
d = Result(dt, StartWeek(dt, 1) - 1);
s = TimeToStr(dt, TIME_DATE) + ": " + ns2(d);
ccc(win, s, ((d >= 0) ? clr_Good : clr_Bad));
}
return(0);
}
//+------------------------------------------------------------------+
void ccc(int wn = 0, string txt = "", color clr = Green, int cr = 0, int X = 0, int Y = 0, int stp = 0, string font = "Tahoma", int fs = 10) {
static int num = 0;
static int x, y;
static int step = 10;
int i;
int x0 = 0, y0 = 0;
string on, n;
on = "ccc" + "." + (string)wn;
if (txt == "") {
x = x0;
y = y0;
num = 0;
for (i = ObjectsTotal() - 1; i >= 0 ; i--) {
n = ObjectName(i);
if (ObjectType(n) != OBJ_LABEL) continue;
if (StringFind(n, on) != -1) ObjectDelete(n);
}
return;
}
if (stp > 0) step = stp;
if ((X < 0) || (Y < 0)) {x = x0; y = y0;}
if ((X > 0) || (Y > 0)) {x = X; y = Y; }
on = on + "." + (string)num;
ObjectCreate(on, OBJ_LABEL, wn, 0, 0);
ObjectSet (on, OBJPROP_CORNER, cr);
ObjectSet (on, OBJPROP_XDISTANCE, x);
ObjectSet (on, OBJPROP_YDISTANCE, y);
ObjectSet (on, OBJPROP_COLOR, clr);
ObjectSetText(on, txt, fs, font, clr);
num++;
y = y + step;
return;
}
//+------------------------------------------------------------------+
string ns2(double Çíà÷åíèå) {
return(DoubleToStr(Çíà÷åíèå, 2));
}
//+------------------------------------------------------------------+
string ns0(double Çíà÷åíèå) {
return(DoubleToStr(Çíà÷åíèå, 0));
}
//+------------------------------------------------------------------+
void IndicatorShortName_shu(string s) {
IndicatorShortName(s);
win = WindowFind(s);
return;
}
//+------------------------------------------------------------------+
string MonthTxt(int m) {
string r;
switch (m) {
case 1: r = "ßíâàðü"; break;
case 2: r = "Ôåâðàëü"; break;
case 3: r = "Ìàðò"; break;
case 4: r = "Àïðåëü"; break;
case 5: r = "Ìàé"; break;
case 6: r = "Èþíü"; break;
case 7: r = "Èþëü"; break;
case 8: r = "Àâãóñò"; break;
case 9: r = "Ñåíòÿáðü"; break;
case 10: r = "Îêòÿáðü"; break;
case 11: r = "Íîÿáðü"; break;
case 12: r = "Äåêàáðü"; break;
default: r = "---";
}
return(r);
}
//+------------------------------------------------------------------+
double Result(datetime dt1, datetime dt2) {
int i;
double r;
r = 0;
for (i = 0; i < OrdersHistoryTotal(); i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderClosePrice() == 0) continue;
if ((OrderCloseTime() < dt1) || (OrderCloseTime() > dt2)) continue;
r = r + OrderProfit() + OrderCommission() + OrderSwap();
}
}
return(r);
}
//+------------------------------------------------------------------+
datetime StartMonth(datetime dt = 0, int shift = 0) {
int y, m;
if (dt == 0) dt = TimeCurrent();
y = TimeYear(dt);
m = TimeMonth(dt);
while (shift != 0) {
if (shift > 0) {
shift--;
m++;
if (m > 12) {
m = 1;
y++;
}
}
if (shift < 0) {
shift++;
m--;
if (m < 1) {
m = 12;
y--;
}
}
}
dt = StrToTime((string)y + "." + (string)m + ".1");
return(dt);
}
//+------------------------------------------------------------------+
// * âîçâðàùàåì âðåìÿ
datetime StartWeek(datetime dt, int shift = 0) {
datetime r;
r = dt + shift * PERIOD_W1 * 60;
r = r / (PERIOD_D1 * 60);
r = r * (PERIOD_D1 * 60); // - çäåñü ïîëó÷èëè âðåìÿ íà÷àëà äíÿ
switch(TimeDayOfWeek(r)) {
case 1: break;
case 2:
case 3:
case 4:
case 5:
case 6:
r = r - (PERIOD_D1 * 60) * (TimeDayOfWeek(r) - 1);
break;
case 0:
r = r - (PERIOD_D1 * 60) * 6;
break;
}
return(r);
}
//+------------------------------------------------------------------+
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
---