Indicators Used
0
Views
0
Downloads
0
Favorites
Bending_MA24H1v2
//+------------------------------------------------------------------+
//| Bending_MA24H1.mq4 |
//| Pipkin Artem |
//| http://sites.google.com/site/forexsbs/ |
//+------------------------------------------------------------------+
#property copyright "Pipkin Artem"
#property link "http://sites.google.com/site/forexsbs/"
//########################################################################
//-------------- Èíäèêàòîð îòîáðàæàåòñÿ â îêíå ãðàôèêà ------------------#
#property indicator_chart_window //#
// #
//########################################################################
//########################################################################
// Â Â Î Ä Ï À Ð À Ì Å Ò Ð Î Â È Í Ä È Ê À Ò Ð À
extern int Rounding = 5; // Îêðóãëåíèå äî "õ" çíàêîâ ïîñëå çàïÿòîé â öåíå âàëþòíîé ïàðû
extern int PERIOD = 480; // Ïåðèîä, êîòîðûé áåðåòñÿ äëÿ ðàñ÷åòà èíäèêàòîðà (480 = 1 ìåñÿöà)
extern int MATrendPeriod = 24; // Ïåðèîä ñêîëüçÿùåé ñðåäíåé äëÿ H1 (24 = 1 äåíü)
extern int Slayders = 0; // Ïðîñêàëüçûâàíèå, äëÿ èñêëþ÷åíèÿ "øóìà" MA
extern int StepMin = 0; // Ìèíèìàëüíûé îòñòóï, îò òåêóùåé öåíû, ïîñëå êîòîðîãî îòîáðàæàþòñÿ ëèíèè èíäèêàòîðà (â ïóíêòàõ)
extern int StepMax = 3000; // Ìàêñèìàëüíûé îòñòóï, îò òåêóùåé öåíû, ïîñëå êîòîðîãî ëèíèè èíäèêàòîðà íå îòîáðàæàþòñÿ (â ïóíêòàõ)
extern color Color_D = Red; // Öâåò ëèíèè çà ïðîøåäøèé äåíü
extern color Color_W = Green; // --//-- íåäåëþ
extern color Color_M = Yellow; // --//-- ìåñÿö
extern color Color_Y = Aqua; // --//-- ãîä
//########################################################################
//########################################################################
//Í À × À Ë Î Ñ Ï È Ñ Ê À Ã Ë Î Á À Ë Ü Í Û Õ Ï Å Ð Å Ì Å Í Í Û Õ
int i, l, b, Stil, c, e;
double MA1, MA2, MA3;
color COLOR;
double LS;
double LP;
double max, min;
string S, P;
// Ê Î Í Å Ö Ñ Ï È Ñ Ê À Ã Ë Î Á À Ë Ü Í Û Õ Ï Å Ð Å Ì Å Í Í Û Õ
//########################################################################
//+------------------------------------------------------------------+
//| Ôóíêöèÿ init() |
//+------------------------------------------------------------------+
int init()
{
//----
b=Bars; // Êîëëè÷åñòâî áàðîâ â èñòîðèè (äëÿ îáíîâëåíèÿ èíäèêàòîðà ïîñëå ïîÿâëåíèÿ íîâîãî áàðà)
for(int a=0; a<=l; a++) // Öèêë, óäàëÿåò ñòàðûå ëèíèè
{
ObjectDelete("Line"+a);
}
l=0; // Çíà÷åíèå "êîëëè÷åñòâà ëèíèÿ" ïðèðàâíèâàåòñÿ ê íóëþ
ObjectDelete("TextS"); // Óäàëÿåò çíà÷åíèå ñîïðîòèâëåíèÿ â ïðàâîì âåðõíåì óãëó
ObjectDelete("TextP"); // Óäàëÿåò çíà÷åíèå ïîääåðæêè â ïðàâîì íèæíåì óãëó
for(i=1,c=0; i<=PERIOD; i++,c=0) // Öèêë ðàñ÷åòà è ïîñòðàåíèÿ ëèíèé
{
MA1=iMA(NULL,PERIOD_H1,MATrendPeriod,0,MODE_SMA,PRICE_MEDIAN,i); // Çíà÷åíèå ñðåäíåé áåç ñäâèãà (i)
MA2=iMA(NULL,PERIOD_H1,MATrendPeriod,0,MODE_SMA,PRICE_MEDIAN,i+1); // Çíà÷åíèå ñðåäíåé ñî ñäâèãîì íà 1 ñâå÷ó (i+1)
MA3=iMA(NULL,PERIOD_H1,MATrendPeriod,0,MODE_SMA,PRICE_MEDIAN,i+2); // Çíà÷åíèå ñðåäíåé ñî ñäâèãîì íà 2 ñâå÷è (i+2)
if(i<=24) {COLOR=Color_D; Stil=3;} // Ñòèëü è öâåò ëèíèé âûñòàâëÿåìûõ çà òåêóùèé äåíü
if(i>24 && i<=120) {COLOR=Color_W; Stil=3;} // --//-- íåäåëþ
if(i>120 && i<=528) {COLOR=Color_M; Stil=2;} // --//-- ìåñÿö
if(i>528) {COLOR=Color_Y; Stil=1;} // --//-- ãîä
for(int e=0; e<=l; e++) // Öèêë èñêëþ÷àåò ïîâòîðåíèå ëèíèé ñ îäèíàêîâûì çíà÷åíèåì Y (öåíû)
{
double ma2=NormalizeDouble(MA2,Rounding);
if(ma2==ObjectGet("Line"+e, OBJPROP_PRICE1)) c=c+1;
}
if(c==0 && ((MA1>MA2 && MA3>MA2) || (MA1<MA2 && MA3<MA2))) // Óñëîâèå, îïðåäåëÿåò âåðøèíó ðàçâîðîòà ñðåäíåé
{
MA2=NormalizeDouble(MA2,Rounding); // Îêðóãëåíèå çíà÷åíèå ñðåäíåé
if((MA2-Ask>StepMin*Point && MA2-Ask<StepMax*Point) || // Óñëîâèå, âûïîëíåíèå êîòîðîãî, ðèñóåò ëèíèþ â ïåðäåëàõ ìàêñèìóìà è ìèíèìóìà
(Bid-MA2>StepMin*Point && Bid-MA2<StepMax*Point))
{
Line();
i=i+Slayders;
}
}
}
TextS(); // Îïðåäåëåíèå ôóíêöèè, ïîêàçûâàþùàÿ çíà÷åíèå "ñîïðîòèâëåíèÿ" â ïðàâîì âåðõíåì óãëó
TextP(); // Îïðåäåëåíèå ôóíêöèè, ïîêàçûâàþùàÿ çíà÷åíèå "ïîääåðæêè" â ïðàâîì íèæíåì óãëó
//----
return(0);
}
//--------------------------------------------------------------------
//####################################################################
// Í À × À Ë Î Ô Ó Í Ê Ö È È start()
int start()
{
//----
if(Bars-b>1) init(); // Ïðè ïîÿâëåíèè íîâîãî áàðà ïåðåñ÷èòûâàþòñÿ âñå ëèíèè
for(i=0; i<=l; i++) {max=MathMax(max, ObjectGet("Line"+i, OBJPROP_PRICE1));} // Ïðèñâîåíèå çíà÷åíèþ max çíà÷åíèå Y ñàìîé âåðõíåé ëèíèè
for(i=0; i<=l; i++) {min=MathMin(min, ObjectGet("Line"+i, OBJPROP_PRICE1));}
for(i=0; i<=l; i++) // Öèêë, îïðåäåëÿåò ñîïðîòèâëåíèå è ïîääåðæêó
{
if(Ask<ObjectGet("Line"+i, OBJPROP_PRICE1))
{
max=MathMin(max, ObjectGet("Line"+i, OBJPROP_PRICE1));
}
if(Bid>ObjectGet("Line"+i, OBJPROP_PRICE1))
{
min=MathMax(min, ObjectGet("Line"+i, OBJPROP_PRICE1));
}
}
S = DoubleToStr(max,Rounding); // Ïðåîáðàçîâàíèå ÷èñëîâîãî âûðàæåíèÿ "max" â òåêñòîâîå
P = DoubleToStr(min,Rounding); // Ïðåîáðàçîâàíèå ÷èñëîâîãî âûðàæåíèÿ "min" â òåêñòîâîå
ObjectSetText("TextS","Ñîïðîòèâëåíèå: "+S,15,"Arial",Red); // Èçìåíåíèå òåêñòîâîé ÷àñòè ôóíêöèè TextS()
ObjectSetText("TextP","Ïîääåðæêà: "+P,15,"Arial",Blue); // Èçìåíåíèå òåêñòîâîé ÷àñòè ôóíêöèè TextP()
i=0;
//----
return(0);
}
// Ê Î Í Å Ö Ô Ó Í Ê Ö È È start()
//####################################################################
//+------------------------------------------------------------------+
//| Ôóíêöèÿ deinit() |
//+------------------------------------------------------------------+
int deinit()
{
//----
for(int a=0; a<=l; a++)
{
ObjectDelete("Line"+a);
}
l=0;
ObjectDelete("TextS");
ObjectDelete("TextP");
Print ("Èíäèêàòîð MA_MAXMIN_h1 óäàëåí");
//----
return(0);
}
//+------------------------------------------------------------------+
//####################################################################
// Ì Î È Ô Ó Í Ê Ö È È
//####################################################################
//+------------------------------------------------------------------+
//| Ôóíêöèÿ Line() |
//+------------------------------------------------------------------+
int Line()
{
ObjectCreate("Line"+l, OBJ_HLINE, 0,0,0,0,0);
ObjectSet("Line"+l, OBJPROP_PRICE1, MA2);
ObjectSet("Line"+l, OBJPROP_COLOR, COLOR);
ObjectSet("Line"+l, OBJPROP_WIDTH, Stil);
ObjectSet("Line"+l, OBJPROP_BACK, false);
WindowRedraw();
l=l+1;
}
//-------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Ôóíêöèÿ TextS() |
//+------------------------------------------------------------------+
int TextS()
{
ObjectCreate("TextS", OBJ_LABEL, 0, 0, 0); // Ñîçäàíèå îáú.
ObjectSet("TextS", OBJPROP_CORNER, 1); // Ïðèâÿçêà ê óãîëó (1 ïðàâûé âåðõíèé)
ObjectSet("TextS", OBJPROP_XDISTANCE, 2); // Êîîðäèíàòà Õ
ObjectSet("TextS", OBJPROP_YDISTANCE, 2); // Êîîðäèíàòà Y
}
//-------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Ôóíêöèÿ TextP() |
//+------------------------------------------------------------------+
int TextP()
{
ObjectCreate("TextP", OBJ_LABEL, 0, 0, 0); // Ñîçäàíèå îáú.
ObjectSet("TextP", OBJPROP_CORNER, 3); // Ïðèâÿçêà ê óãîëó (3 ïðàâûé íèæíèé)
ObjectSet("TextP", OBJPROP_XDISTANCE, 2); // Êîîðäèíàòà Õ
ObjectSet("TextP", OBJPROP_YDISTANCE, 2); // Êîîðäèíàòà Y
}
//-------------------------------------------------------------------+
//#######################################################################
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
---