0
Views
0
Downloads
0
Favorites
Setka
//+------------------------------------------------------------------+
//| Setka.mq4 |
//| Ïðèâàëîâ Ñ.Â. |
//| Skype -> privalov-sv |
//+------------------------------------------------------------------+
#property copyright "Ïðèâàëîâ Ñ.Â."
#property link "Skype -> privalov-sv"
#property indicator_chart_window
datetime t;
color LineColor = DimGray;
int LineStyle = 4;
int LineWidth = 1;
bool LineOnBckgrnd = true;
string name_g="Setka_g_";
string name_v="Setka_v_";
int i,var,Shet,MinBars;
int prPeriod = PERIOD_H1;
int PreBars;
datetime BarTime;
int StartPos;
string mSymbol;
double vertikal;
bool flag=false;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init() {
mSymbol = Symbol();
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit() {
// óäàëÿþòñÿ âñå îáúåêòû ñ ãðàôèêà.
for (i=0;i<Shet;i++) {
ObjectDelete(name_g+DoubleToStr(i,0));
ObjectDelete(name_v+DoubleToStr(i,0));
}
return(0);
}
//+------------------------------------------------------------------+
//|ðàñ÷åòû ïðè èíèöèàëèçàöèè è ñáîÿõ |
//+------------------------------------------------------------------+
int Reset() {
MinBars = MathMin(iBars(mSymbol, prPeriod)-1,WindowBarsPerChart());
StartPos = MinBars;
PreBars = 0;
BarTime = 0;
flag = true;
// óäàëÿþòñÿ ñîçäàííûå îáúåêòû ñ ãðàôèêà.
for (i=0;i<Shet;i++) {
ObjectDelete(name_g+DoubleToStr(i,0));
ObjectDelete(name_v+DoubleToStr(i,0));
}
flag=true;
Shet=0; //ñáðàñûâàåì ñ÷åò÷èê ëèíèé
StartPos++;
return(StartPos);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start() {
// Ðàáîòàåì òîëüêî ïî çàêîí÷èâøèìñÿ áàðàì
if (iBars(mSymbol, prPeriod) == PreBars) return(0);
// Ïðîâåðèì, äîñòàòî÷íî ëè áàðîâ íà ãðàôèêå
if (iBars(mSymbol, prPeriod) < MinBars) return(0);
// Åñëè íå áûëî äîêà÷êè èñòîðèè, îáñ÷èòûâàåì òîëüêî çàêîí÷èâøèéñÿ áàð
if (iBars(mSymbol, prPeriod)-PreBars == 1 && BarTime==iTime(mSymbol, prPeriod,1)) StartPos = 1;
// Èíà÷å ïåðåñ÷èòûâàåì çàäàííîå â ôóíêöèè Reset() êîëè÷åñòâî áàðîâ
else StartPos = Reset();
// Ìîäèôèöèðóåì êîíòðîëüíûå ïåðåìåííûå
PreBars = iBars(mSymbol, prPeriod);
BarTime = iTime(mSymbol, prPeriod,0);
// Öèêë ïî èñòîðèè
for (i=0; i<StartPos; i++) {
// àëãîðèòì ðàñ÷åòà .....
t=iTime(Symbol(),PERIOD_H1,0)+60*60*(i-StartPos+2);
var=TimeHour(t);
LineColor=DimGray;
if(var==0) LineColor=Aqua; // íà÷àëî ñóòîê
if(var==8) LineColor=Gold; // íà÷àëî Ëîíäîí
if(var==0 && TimeDayOfWeek(t)==1) LineColor=Red; // íà÷àëî íåäåëè
if(!ObjectCreate (name_g+DoubleToStr(Shet,0),OBJ_VLINE,0,t,0))
{
Print("error: íå ñîçäàí ãðàôè÷åñêèé îáúåêò name_g code #",GetLastError()," Symbol=", Symbol());
}
ObjectSet (name_g+DoubleToStr(Shet,0),OBJPROP_STYLE,LineStyle);
ObjectSet (name_g+DoubleToStr(Shet,0),OBJPROP_COLOR,LineColor);
ObjectSet (name_g+DoubleToStr(Shet,0),OBJPROP_WIDTH,LineWidth);
ObjectSet (name_g+DoubleToStr(Shet,0),OBJPROP_BACK, LineOnBckgrnd);
ObjectSet (name_g+DoubleToStr(Shet,0),OBJPROP_TIMEFRAMES,NULL);
Shet++;
} // pos=StartPos;pos>0;pos--)
// öèêë ïî âåðòèêàëè
if(flag) {
LineColor=DimGray;
for(i=0; i<3000; i++) {
Shet++;
vertikal=i*0.005; // øàã ñåòêè
if(!ObjectCreate (name_v+DoubleToStr(Shet,0),OBJ_HLINE,0,t,vertikal))
{
Print("error: íå ñîçäàí ãðàôè÷åñêèé îáúåêò name_v code #",GetLastError()," Symbol=", Symbol());
}
ObjectSet (name_v+DoubleToStr(Shet,0),OBJPROP_STYLE,LineStyle);
ObjectSet (name_v+DoubleToStr(Shet,0),OBJPROP_COLOR,LineColor);
ObjectSet (name_v+DoubleToStr(Shet,0),OBJPROP_WIDTH,LineWidth);
ObjectSet (name_v+DoubleToStr(Shet,0),OBJPROP_BACK, LineOnBckgrnd);
ObjectSet (name_v+DoubleToStr(Shet,0),OBJPROP_TIMEFRAMES,NULL);
}
flag=false;
}
return(0);
}
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
---