Price Data Components
0
Views
0
Downloads
0
Favorites
i-DayOfWeek(1)
//+------------------------------------------------------------------+
//| i-DayOfWeek.mq4 |
//| Êèì Èãîðü Â. aka KimIV |
//| http://www.kimiv.ru |
//| |
//| 13.10.2005 Ïîêàçûâàåò âûáðàííûé äåíü íåäåëè |
//+------------------------------------------------------------------+
#property copyright "Êèì Èãîðü Â. aka KimIV"
#property link "http://www.kimiv.ru"
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 LightBlue
#property indicator_color2 Salmon
//------- Âíåøíèå ïàðàìåòðû èíäèêàòîðà -------------------------------
extern int NumberDayOfWeek = 1; // Íîìåð äíÿ íåäåëè
extern int NumberOfBars = 0; // Êîëè÷åñòâî áàðîâ îáñ÷¸òà (0-âñå)
//------- Ãëîáàëüíûå ïåðåìåííûå --------------------------------------
int ArrowInterval, prevDay;
//------- Ïîêëþ÷åíèå âíåøíèõ ìîäóëåé ---------------------------------
//------- Áóôåðû èíäèêàòîðà ------------------------------------------
double UpLine[];
double DnLine[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
void init() {
SetIndexBuffer(0, UpLine);
SetIndexStyle (0, DRAW_ARROW);
SetIndexArrow (0, 159);
SetIndexEmptyValue(0, EMPTY_VALUE);
SetIndexBuffer(1, DnLine);
SetIndexStyle (1, DRAW_ARROW);
SetIndexArrow (1, 159);
SetIndexEmptyValue(1, EMPTY_VALUE);
ArrowInterval = GetArrowInterval();
Comment(NameDayOfWeek(NumberDayOfWeek));
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
void deinit() {
Comment("");
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
void start() {
double dMax, dMin;
int loopbegin, nsb, shift;
if (NumberOfBars==0) loopbegin = Bars - 1;
else loopbegin = NumberOfBars - 1;
for (shift=0; shift<=loopbegin; shift++) {
if (prevDay!=TimeDay(Time[shift])) {
nsb=iBarShift(NULL, PERIOD_D1, Time[shift]);
dMax=iHigh(NULL, PERIOD_D1, nsb)+ArrowInterval*Point;
dMin=iLow (NULL, PERIOD_D1, nsb)-ArrowInterval*Point;
}
if (TimeDayOfWeek(Time[shift])==NumberDayOfWeek) {
UpLine[shift] = dMax;
DnLine[shift] = dMin;
}
prevDay=TimeDay(Time[shift]);
}
}
//+------------------------------------------------------------------+
//| Âîçâðàùàåò èíòåðâàë óñòàíîâêè ñèãíàëüíûõ óêàçàòåëåé |
//+------------------------------------------------------------------+
int GetArrowInterval() {
int p = Period();
switch (p) {
case 1: return(5);
case 5: return(7);
case 15: return(10);
case 30: return(15);
case 60: return(20);
case 240: return(30);
case 1440: return(40);
case 10080: return(150);
case 43200: return(250);
}
}
//+------------------------------------------------------------------+
//| Âîçâðàùàåò íàèìåíîâàíèå äíÿ íåäåëè |
//+------------------------------------------------------------------+
string NameDayOfWeek(int ndw) {
if (ndw==0) return("Âîñêðåñåíüå");
if (ndw==1) return("Ïîíåäåëüíèê");
if (ndw==2) return("Âòîðíèê");
if (ndw==3) return("Ñðåäà");
if (ndw==4) return("×åòâåðã");
if (ndw==5) return("Ïÿòíèöà");
if (ndw==6) return("Ñóááîòà");
}
//+------------------------------------------------------------------+
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
---