0
Views
0
Downloads
0
Favorites
GANN_ugli_urovni
//+------------------------------------------------------------------+
//| GANN_ugli_urovni.mq4 |
//| Copyright © 2009, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
#property indicator_chart_window
extern double angle=45;
extern int nLevel=16;
extern color point_col=AliceBlue;
extern int fplace=34;
extern int splace=5;
extern bool delpoints=false;
extern int Complect=1;
datetime prevtime;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
/*
ObjectDelete("VLine1 Complect¹"+Complect);
ObjectDelete("VLine2 Complect¹"+Complect);
ObjectDelete("VLine3 Complect¹"+Complect);
ObjectDelete("VLine4 Complect¹"+Complect);
ObjectDelete("VLine5 Complect¹"+Complect);
ObjectDelete("HLine1 Complect¹"+Complect);
ObjectDelete("HLine2 Complect¹"+Complect);
ObjectDelete("HLine3 Complect¹"+Complect);
ObjectDelete("HLine4 Complect¹"+Complect);
ObjectDelete("HLine5 Complect¹"+Complect);
ObjectDelete("MainCrossLine1 Complect¹"+Complect);
ObjectDelete("MainCrossLine2 Complect¹"+Complect);
ObjectDelete("SubMainCross1Line1 Complect¹"+Complect);
ObjectDelete("SubMainCross1Line2 Complect¹"+Complect);
ObjectDelete("SubMainCross2Line1 Complect¹"+Complect);
ObjectDelete("SubMainCross2Line2 Complect¹"+Complect);
ObjectDelete("Diag1Line1 Complect¹"+Complect);
ObjectDelete("Diag1Line2 Complect¹"+Complect);
ObjectDelete("Diag1Line3 Complect¹"+Complect);
ObjectDelete("Diag1Line4 Complect¹"+Complect);
ObjectDelete("Diag2Line1 Complect¹"+Complect);
ObjectDelete("Diag2Line2 Complect¹"+Complect);
ObjectDelete("Diag2Line3 Complect¹"+Complect);
ObjectDelete("Diag2Line4 Complect¹"+Complect);
ObjectDelete("FirstCrossLine1 Complect¹"+Complect);
ObjectDelete("FirstCrossLine2 Complect¹"+Complect);
ObjectDelete("LastCrossLine1 Complect¹"+Complect);
ObjectDelete("LastCrossLine2 Complect¹"+Complect);
*/
int i;
//----
for(i=1; i<=nLevel; i++) {ObjectDelete("Óðîâåíü "+i+" ñîîòâåòñòâóþùèé óãëó "+DoubleToStr(angle*i,2)+" ãðàäóñîâ"+Complect);
ObjectDelete("Óãîë 45ãð"+Complect);
ObjectDelete("Óãîë 45/2ãð"+Complect);
ObjectDelete("Óãîë 45/22ãð"+Complect);
ObjectDelete("Óãîë 45/3ãð"+Complect);
ObjectDelete("Óãîë 45/33ãð"+Complect);
ObjectDelete("Óãîë 45/4ãð"+Complect);
ObjectDelete("Óãîë 45/44ãð"+Complect);
ObjectDelete("Óãîë 45/8ãð"+Complect);
ObjectDelete("Óãîë 45/88ãð"+Complect);
ObjectDelete("Óãîë"+DoubleToStr(angle*i,2)+" ãðàäóñîâ"+Complect);
ObjectDelete("("+DoubleToStr(angle*i,2)+")"+Complect);}
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
if(delpoints)
{
ObjectDelete("Start Price¹"+Complect);
}int i;
//----
for(i=1; i<=nLevel; i++) {ObjectDelete("Óðîâåíü "+i+" ñîîòâåòñòâóþùèé óãëó "+DoubleToStr(angle*i,2)+" ãðàäóñîâ"+Complect);
ObjectDelete("Óãîë 45ãð"+Complect);
ObjectDelete("Óãîë 45/2ãð"+Complect);
ObjectDelete("Óãîë 45/22ãð"+Complect);
ObjectDelete("Óãîë 45/3ãð"+Complect);
ObjectDelete("Óãîë 45/33ãð"+Complect);
ObjectDelete("Óãîë 45/4ãð"+Complect);
ObjectDelete("Óãîë 45/44ãð"+Complect);
ObjectDelete("Óãîë 45/8ãð"+Complect);
ObjectDelete("Óãîë 45/88ãð"+Complect);
ObjectDelete("Óãîë"+DoubleToStr(angle*i,2)+" ãðàäóñîâ"+Complect);
ObjectDelete("("+DoubleToStr(angle*i,2)+")"+Complect);}
//----
return(0);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int error=GetLastError();
//----
//----
int iH, iL, P, nP1, nP2, nH, nL, nPoint2, nPoint1, i, time3, time4, time5;
int pointcode;
double period, scale;
double start_price,level;
int trend;
datetime Timeend,TimeNachalo;
bool up;
datetime Date1, Date2;
//----
//----
//----
if(ObjectFind("Start Price¹")!=0) ObjectCreate("Start Price¹"+Complect, OBJ_ARROW, 0, Time[fplace], (High[fplace]+Low[fplace])/2);
//----
ObjectSet("Start Price¹"+Complect,OBJPROP_ARROWCODE,251);
ObjectSet("Start Price¹"+Complect,OBJPROP_COLOR,point_col);
ObjectSet("Start Price¹"+Complect,OBJPROP_WIDTH,1);
//----
Date1=ObjectGet("Start Price¹"+Complect,OBJPROP_TIME1);
//----
nP1=iBarShift(NULL,0,Date1,false);
double price_point=ObjectGet("Start Price¹"+Complect,OBJPROP_PRICE1);
if (price_point<High[nP1]) {start_price=Low[nP1];trend=1;}
if (price_point>Low[nP1]) {start_price=High[nP1];trend=-1;}
for(i=1; i<=nLevel; i++)
{
if(trend==1)
{
level=MathSqrt(start_price/Point)+angle*i/180;
level=MathPow(level,2)*Point;
ObjectDelete("Óðîâåíü "+i+" ñîîòâåòñòâóþùèé óãëó "+DoubleToStr(angle*i,2)+" ãðàäóñîâ"+Complect);
ObjectCreate("Óðîâåíü "+i+" ñîîòâåòñòâóþùèé óãëó "+DoubleToStr(angle*i,2)+" ãðàäóñîâ"+Complect, OBJ_RECTANGLE, 0, Time[nP1],level,Time[nP1-10],level+1*Point);
ObjectSet("Óðîâåíü "+i+" ñîîòâåòñòâóþùèé óãëó "+DoubleToStr(angle*i,2)+" ãðàäóñîâ"+Complect,OBJPROP_COLOR,Blue);
ObjectDelete("("+DoubleToStr(angle*i,2)+")"+Complect);
ObjectCreate("("+DoubleToStr(angle*i,2)+")"+Complect, OBJ_TEXT, 0,Time[nP1-5],level+GetArrowInterval(6)*Point,Time[nP1-5],level+GetArrowInterval(6)*Point);
ObjectSetText("("+DoubleToStr(angle*i,2)+")"+Complect,"("+DoubleToStr(angle*i,0)+")",6, "Verdana",Black);
ObjectDelete("Óãîë"+DoubleToStr(angle*i,2)+" ãðàäóñîâ"+Complect);
ObjectCreate("Óãîë"+DoubleToStr(angle*i,2)+" ãðàäóñîâ"+Complect, OBJ_TEXT, 0,Time[nP1-5],level+GetArrowInterval(4)*Point,Time[nP1-5],level+GetArrowInterval(4)*Point);
ObjectSetText("Óãîë"+DoubleToStr(angle*i,2)+" ãðàäóñîâ"+Complect, DoubleToStr(level,Digits),12, "Verdana",Blue);
ObjectDelete("Óãîë 45ãð"+Complect);
ObjectCreate("Óãîë 45ãð"+Complect,OBJ_TRENDBYANGLE,0,Time[nP1],Low[nP1]);
ObjectSet("Óãîë 45ãð"+Complect,OBJPROP_ANGLE,45);
ObjectSet("Óãîë 45ãð"+Complect,OBJPROP_COLOR,point_col);
ObjectSet ("Óãîë 45ãð"+Complect,OBJPROP_TIME2,Time[1]);
ObjectDelete("Óãîë 45/2ãð"+Complect);
ObjectCreate("Óãîë 45/2ãð"+Complect,OBJ_TRENDBYANGLE,0,Time[nP1],Low[nP1]);
ObjectSet("Óãîë 45/2ãð"+Complect,OBJPROP_ANGLE,26.25);
ObjectSet("Óãîë 45/2ãð"+Complect,OBJPROP_COLOR,point_col);
ObjectSet("Óãîë 45/2ãð"+Complect,OBJPROP_STYLE,2);
ObjectSet("Óãîë 45/2ãð"+Complect,OBJPROP_WIDTH,1);
ObjectSet ("Óãîë 45/2ãð"+Complect,OBJPROP_TIME2,Time[1]);
ObjectDelete("Óãîë 45/22ãð"+Complect);
ObjectCreate("Óãîë 45/22ãð"+Complect,OBJ_TRENDBYANGLE,0,Time[nP1],Low[nP1]);
ObjectSet("Óãîë 45/22ãð"+Complect,OBJPROP_ANGLE,63.75);
ObjectSet("Óãîë 45/22ãð"+Complect,OBJPROP_COLOR,point_col);
ObjectSet("Óãîë 45/22ãð"+Complect,OBJPROP_STYLE,2);
ObjectSet("Óãîë 45/22ãð"+Complect,OBJPROP_WIDTH,1);
ObjectSet ("Óãîë 45/22ãð"+Complect,OBJPROP_TIME2,Time[1]);
ObjectDelete("Óãîë 45/3ãð"+Complect);
ObjectCreate("Óãîë 45/3ãð"+Complect,OBJ_TRENDBYANGLE,0,Time[nP1],Low[nP1]);
ObjectSet("Óãîë 45/3ãð"+Complect,OBJPROP_ANGLE,18.75);
ObjectSet("Óãîë 45/3ãð"+Complect,OBJPROP_COLOR,point_col);
ObjectSet("Óãîë 45/3ãð"+Complect,OBJPROP_STYLE,2);
ObjectSet("Óãîë 45/3ãð"+Complect,OBJPROP_WIDTH,1);
ObjectSet ("Óãîë 45/3ãð"+Complect,OBJPROP_TIME2,Time[1]);
ObjectDelete("Óãîë 45/33ãð"+Complect);
ObjectCreate("Óãîë 45/33ãð"+Complect,OBJ_TRENDBYANGLE,0,Time[nP1],Low[nP1]);
ObjectSet("Óãîë 45/33ãð"+Complect,OBJPROP_ANGLE,71.25);
ObjectSet("Óãîë 45/33ãð"+Complect,OBJPROP_COLOR,point_col);
ObjectSet("Óãîë 45/33ãð"+Complect,OBJPROP_STYLE,2);
ObjectSet("Óãîë 45/33ãð"+Complect,OBJPROP_WIDTH,1);
ObjectSet ("Óãîë 45/33ãð"+Complect,OBJPROP_TIME2,Time[1]);
ObjectDelete("Óãîë 45/4ãð"+Complect);
ObjectCreate("Óãîë 45/4ãð"+Complect,OBJ_TRENDBYANGLE,0,Time[nP1],Low[nP1]);
ObjectSet("Óãîë 45/4ãð"+Complect,OBJPROP_ANGLE,15);
ObjectSet("Óãîë 45/4ãð"+Complect,OBJPROP_COLOR,point_col);
ObjectSet("Óãîë 45/4ãð"+Complect,OBJPROP_STYLE,2);
ObjectSet("Óãîë 45/4ãð"+Complect,OBJPROP_WIDTH,1);
ObjectSet ("Óãîë 45/4ãð"+Complect,OBJPROP_TIME2,Time[1]);
ObjectDelete("Óãîë 45/44ãð"+Complect);
ObjectCreate("Óãîë 45/44ãð"+Complect,OBJ_TRENDBYANGLE,0,Time[nP1],Low[nP1]);
ObjectSet("Óãîë 45/44ãð"+Complect,OBJPROP_ANGLE,75);
ObjectSet("Óãîë 45/44ãð"+Complect,OBJPROP_COLOR,point_col);
ObjectSet("Óãîë 45/44ãð"+Complect,OBJPROP_STYLE,2);
ObjectSet("Óãîë 45/44ãð"+Complect,OBJPROP_WIDTH,1);
ObjectSet ("Óãîë 45/44ãð"+Complect,OBJPROP_TIME2,Time[1]);
ObjectDelete("Óãîë 45/8ãð"+Complect);
ObjectCreate("Óãîë 45/8ãð"+Complect,OBJ_TRENDBYANGLE,0,Time[nP1],Low[nP1]);
ObjectSet("Óãîë 45/8ãð"+Complect,OBJPROP_ANGLE,7.5);
ObjectSet("Óãîë 45/8ãð"+Complect,OBJPROP_COLOR,point_col);
ObjectSet("Óãîë 45/8ãð"+Complect,OBJPROP_STYLE,2);
ObjectSet("Óãîë 45/8ãð"+Complect,OBJPROP_WIDTH,1);
ObjectSet ("Óãîë 45/8ãð"+Complect,OBJPROP_TIME2,Time[1]);
ObjectDelete("Óãîë 45/88ãð"+Complect);
ObjectCreate("Óãîë 45/88ãð"+Complect,OBJ_TRENDBYANGLE,0,Time[nP1],Low[nP1]);
ObjectSet("Óãîë 45/88ãð"+Complect,OBJPROP_ANGLE,82.5);
ObjectSet("Óãîë 45/88ãð"+Complect,OBJPROP_COLOR,point_col);
ObjectSet("Óãîë 45/88ãð"+Complect,OBJPROP_STYLE,2);
ObjectSet("Óãîë 45/88ãð"+Complect,OBJPROP_WIDTH,1);
ObjectSet ("Óãîë 45/88ãð"+Complect,OBJPROP_TIME2,Time[1]);
}
else
if(trend==-1)
{
level=MathSqrt(start_price/Point)-angle*i/180;
level=MathPow(level,2)*Point;
ObjectDelete("Óðîâåíü "+i+" ñîîòâåòñòâóþùèé óãëó "+DoubleToStr(angle*i,2)+" ãðàäóñîâ"+Complect);
ObjectCreate("Óðîâåíü "+i+" ñîîòâåòñòâóþùèé óãëó "+DoubleToStr(angle*i,2)+" ãðàäóñîâ"+Complect, OBJ_RECTANGLE, 0, Time[nP1],level,Time[nP1-10],level-1*Point);
ObjectSet("Óðîâåíü "+i+" ñîîòâåòñòâóþùèé óãëó "+DoubleToStr(angle*i,2)+" ãðàäóñîâ"+Complect,OBJPROP_COLOR,Red);
ObjectDelete("("+DoubleToStr(angle*i,2)+")"+Complect);
ObjectCreate("("+DoubleToStr(angle*i,2)+")"+Complect, OBJ_TEXT, 0,Time[nP1-5],level-GetArrowInterval(4)*Point,Time[nP1-5],level-GetArrowInterval(4)*Point);
ObjectSetText("("+DoubleToStr(angle*i,2)+")"+Complect,"("+DoubleToStr(angle*i,0)+")",7, "Verdana",Black);
ObjectDelete("Óãîë"+DoubleToStr(angle*i,2)+" ãðàäóñîâ"+Complect);
ObjectCreate("Óãîë"+DoubleToStr(angle*i,2)+" ãðàäóñîâ"+Complect, OBJ_TEXT, 0,Time[nP1-5],level-GetArrowInterval(1)*Point,Time[nP1-5],level-GetArrowInterval(1)*Point);
ObjectSetText("Óãîë"+DoubleToStr(angle*i,2)+" ãðàäóñîâ"+Complect, DoubleToStr(level,Digits),10, "Verdana",Red);
ObjectDelete("Óãîë 45ãð"+Complect);
ObjectCreate("Óãîë 45ãð"+Complect,OBJ_TRENDBYANGLE,0,Time[nP1],High[nP1]);
ObjectSet("Óãîë 45ãð"+Complect,OBJPROP_ANGLE,135);
ObjectSet("Óãîë 45ãð"+Complect,OBJPROP_COLOR,point_col);
ObjectSet ("Óãîë 45ãð"+Complect,OBJPROP_TIME2,Time[1]);
ObjectDelete("Óãîë 45/2ãð"+Complect);
ObjectCreate("Óãîë 45/2ãð"+Complect,OBJ_TRENDBYANGLE,0,Time[nP1],High[nP1]);
ObjectSet("Óãîë 45/2ãð"+Complect,OBJPROP_ANGLE,180-26.25);
ObjectSet("Óãîë 45/2ãð"+Complect,OBJPROP_COLOR,point_col);
ObjectSet("Óãîë 45/2ãð"+Complect,OBJPROP_STYLE,2);
ObjectSet("Óãîë 45/2ãð"+Complect,OBJPROP_WIDTH,1);
ObjectSet ("Óãîë 45/2ãð"+Complect,OBJPROP_TIME2,Time[1]);
ObjectDelete("Óãîë 45/22ãð"+Complect);
ObjectCreate("Óãîë 45/22ãð"+Complect,OBJ_TRENDBYANGLE,0,Time[nP1],High[nP1]);
ObjectSet("Óãîë 45/22ãð"+Complect,OBJPROP_ANGLE,180-63.75);
ObjectSet("Óãîë 45/22ãð"+Complect,OBJPROP_COLOR,point_col);
ObjectSet("Óãîë 45/22ãð"+Complect,OBJPROP_STYLE,2);
ObjectSet("Óãîë 45/22ãð"+Complect,OBJPROP_WIDTH,1);
ObjectSet ("Óãîë 45/22ãð"+Complect,OBJPROP_TIME2,Time[1]);
ObjectDelete("Óãîë 45/3ãð"+Complect);
ObjectCreate("Óãîë 45/3ãð"+Complect,OBJ_TRENDBYANGLE,0,Time[nP1],High[nP1]);
ObjectSet("Óãîë 45/3ãð"+Complect,OBJPROP_ANGLE,180-18.75);
ObjectSet("Óãîë 45/3ãð"+Complect,OBJPROP_COLOR,point_col);
ObjectSet("Óãîë 45/3ãð"+Complect,OBJPROP_STYLE,2);
ObjectSet("Óãîë 45/3ãð"+Complect,OBJPROP_WIDTH,1);
ObjectSet ("Óãîë 45/3ãð"+Complect,OBJPROP_TIME2,Time[1]);
ObjectDelete("Óãîë 45/33ãð"+Complect);
ObjectCreate("Óãîë 45/33ãð"+Complect,OBJ_TRENDBYANGLE,0,Time[nP1],High[nP1]);
ObjectSet("Óãîë 45/33ãð"+Complect,OBJPROP_ANGLE,180-71.25);
ObjectSet("Óãîë 45/33ãð"+Complect,OBJPROP_COLOR,point_col);
ObjectSet("Óãîë 45/33ãð"+Complect,OBJPROP_STYLE,2);
ObjectSet("Óãîë 45/33ãð"+Complect,OBJPROP_WIDTH,1);
ObjectSet ("Óãîë 45/33ãð"+Complect,OBJPROP_TIME2,Time[1]);
ObjectDelete("Óãîë 45/4ãð"+Complect);
ObjectCreate("Óãîë 45/4ãð"+Complect,OBJ_TRENDBYANGLE,0,Time[nP1],High[nP1]);
ObjectSet("Óãîë 45/4ãð"+Complect,OBJPROP_ANGLE,180-15);
ObjectSet("Óãîë 45/4ãð"+Complect,OBJPROP_COLOR,point_col);
ObjectSet("Óãîë 45/4ãð"+Complect,OBJPROP_STYLE,2);
ObjectSet("Óãîë 45/4ãð"+Complect,OBJPROP_WIDTH,1);
ObjectSet ("Óãîë 45/4ãð"+Complect,OBJPROP_TIME2,Time[1]);
ObjectDelete("Óãîë 45/44ãð"+Complect);
ObjectCreate("Óãîë 45/44ãð"+Complect,OBJ_TRENDBYANGLE,0,Time[nP1],High[nP1]);
ObjectSet("Óãîë 45/44ãð"+Complect,OBJPROP_ANGLE,180-75);
ObjectSet("Óãîë 45/44ãð"+Complect,OBJPROP_COLOR,point_col);
ObjectSet("Óãîë 45/44ãð"+Complect,OBJPROP_STYLE,2);
ObjectSet("Óãîë 45/44ãð"+Complect,OBJPROP_WIDTH,1);
ObjectSet ("Óãîë 45/44ãð"+Complect,OBJPROP_TIME2,Time[1]);
ObjectDelete("Óãîë 45/8ãð"+Complect);
ObjectCreate("Óãîë 45/8ãð"+Complect,OBJ_TRENDBYANGLE,0,Time[nP1],High[nP1]);
ObjectSet("Óãîë 45/8ãð"+Complect,OBJPROP_ANGLE,180-7.5);
ObjectSet("Óãîë 45/8ãð"+Complect,OBJPROP_COLOR,point_col);
ObjectSet("Óãîë 45/8ãð"+Complect,OBJPROP_STYLE,2);
ObjectSet("Óãîë 45/8ãð"+Complect,OBJPROP_WIDTH,1);
ObjectSet ("Óãîë 45/8ãð"+Complect,OBJPROP_TIME2,Time[1]);
ObjectDelete("Óãîë 45/88ãð"+Complect);
ObjectCreate("Óãîë 45/88ãð"+Complect,OBJ_TRENDBYANGLE,0,Time[nP1],High[nP1]);
ObjectSet("Óãîë 45/88ãð"+Complect,OBJPROP_ANGLE,180-82.5);
ObjectSet("Óãîë 45/88ãð"+Complect,OBJPROP_COLOR,point_col);
ObjectSet("Óãîë 45/88ãð"+Complect,OBJPROP_STYLE,2);
ObjectSet("Óãîë 45/88ãð"+Complect,OBJPROP_WIDTH,1);
ObjectSet ("Óãîë 45/88ãð"+Complect,OBJPROP_TIME2,Time[1]);
}
}
//----
return(0);
}
//+------------------------------------------------------------------+
//+----------------------------------------------------------------------------+
//| Îïèñàíèå : Âîçâðàùàåò èíòåðâàë óñòàíîâêè ñèãíàëüíûõ óêàçàòåëåé |
//| Ïàðàìåòðû: |
//| pr - ïðîöåíò îòíîñèòåëüíî öåíîâîãî ðàçìåðà îêíà |
//+----------------------------------------------------------------------------+
int GetArrowInterval(int pr) {
if (pr<=0) pr=7;
//Print(WindowPriceMax()-WindowPriceMin());
return((WindowPriceMax()-WindowPriceMin())/100*pr/Point);
}
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
---