GANN_ugli_urovni

Author: Copyright � 2009, MetaQuotes Software Corp.
GANN_ugli_urovni
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 supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---