Gann_levels_v3

Author: George Tischenko
0 Views
0 Downloads
0 Favorites
Gann_levels_v3
//+------------------------------------------------------------------+
//|                                               Gann_levels_v3.mq4 |
//|                                                 George Tischenko |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "George Tischenko"
//              0     1     2     3      4      5      6      7      8      9      10       
string L[11]={"L45","L60","L90","L120","L135","L180","L225","L240","L270","L300","L360"}; //ãîðèçîíòàëüíûå óðîâíè
int nil[6]={2,3,5,7,8,10}; //Number of Important Level - íîìåðà çíà÷èìûõ óðîâíåé (ïî Ãàííó)
double ang[11]={0.25,0.333,0.5,0.667,0.75,1.0,1.25,1.333,1.5,1.75,2.0}; //êîýôôèöèåíòû "óãëîâ" êâàäðàòà 9
color CLR[4]={Aqua,Yellow,HotPink,White}; //öâåòà îáúåêòîâ 
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
//----
  int i,count_HL;  
  
  if(ObjectFind("K")==-1) CreateLable("K","k =",5);
  if(ObjectFind("val_K")==-1) CreateLable("val_K","1",50);
  if(ObjectFind("HL")==-1) CreateHL("HL",Time[0],Time[20],Ask,2,0,CLR[3],false);  
  for(i=10;i>=0;i--)
    {
    color clr=CLR[0];
    if(ObjectFind(L[i])==-1) 
      {
      for(int k=0;k<6;k++)
        {
        if(i==nil[k])
          {
          clr=CLR[1];
          break;
          }
        }      
      CreateHL(L[i],0,0,0,1,1,clr,true);
      count_HL++;
      }
    }  
  if(count_HL>0) return(0); 
//----
  double P1=ObjectGet("HL",OBJPROP_PRICE1);
  double P2=ObjectGet("HL",OBJPROP_PRICE2);
  int t1=ObjectGet("HL",OBJPROP_TIME1);
  int t2=ObjectGet("HL",OBJPROP_TIME2);
  double Psq1=NormalizeDouble(MathSqrt(P1),10);
  double Psq2=NormalizeDouble(MathSqrt(P2),10);
  double inc=MathAbs(Psq2-Psq1);  //àíàëîã ïðèðàùåíèÿ íà óãëó, êðàòíîìó 180 ãðàäóñàõ â êâàäðàòå 9
  int t1_HL=MathMax(t1,t2);       //íà÷àëî îòðèñîâêè ãîðèçîíòàëüíûõ óðîâíåé
  int t2_HL=t1_HL+(Period()*600); //êîíåö îòðèñîâêè ãîðèçîíòàëüíûõ óðîâíåé
//----
  int CL;
  double P_start;
  if(t1<t2) //çíà÷èò íà÷àëî áàçîâîãî îòðåçêà íàõîäèòñÿ ëåâåå
    {
    P_start=MathSqrt(P2);
    if(P1<P2) CL=-1;
    else CL=1;
    }
  else //çíà÷èò íà÷àëî áàçîâîãî îòðåçêà íàõîäèòñÿ ïðàâåå
    {
    P_start=MathSqrt(P1);
    if(P1<P2) CL=1; 
    else CL=-1;
    }
//----
  P_start=NormalizeDouble(P_start,10);
  double P_lvl;
  double K_ang=NormalizeDouble(StrToDouble(ObjectDescription("val_K")),0); 
  if(CL!=0 && inc>0)
    { 
    for(i=0;i<11;i++)
      {
      P_lvl=MathPow(P_start+(CL*inc*ang[i]/K_ang),2);
      P_lvl=NormalizeDouble(P_lvl,Digits);
      ObjectSet(L[i],OBJPROP_PRICE1,P_lvl);
      ObjectSet(L[i],OBJPROP_PRICE2,P_lvl);
      ObjectSet(L[i],OBJPROP_TIME1,t1_HL);
      ObjectSet(L[i],OBJPROP_TIME2,t2_HL);
      }
    }
//----
  return(0);
  }
//+------------------------------------------------------------------+
//| ñîçäàíèå ãîðèçîíòàëüíûõ óðîâíåé                                  |
//+------------------------------------------------------------------+
void CreateHL(string name,int time1,int time2,double price,int w,int s,color clr,bool ray)
  {
//----
  ObjectCreate(name,OBJ_TREND,0,time1,price,time2,price);
  ObjectSet(name,OBJPROP_WIDTH,w);
  ObjectSet(name,OBJPROP_STYLE,s);
  ObjectSet(name,OBJPROP_COLOR,clr);
  ObjectSet(name,OBJPROP_RAY,ray);
//---
  }
//+------------------------------------------------------------------+
//| ñîçäàíèå íàäïèñåé                                                |
//+------------------------------------------------------------------+
void CreateLable(string name,string txt,int x)
  {
//----
  ObjectCreate(name,OBJ_LABEL,0,0,0);
  ObjectSet(name,OBJPROP_CORNER,2);
  ObjectSet(name,OBJPROP_XDISTANCE,x);
  ObjectSet(name,OBJPROP_YDISTANCE,10);
  ObjectSetText(name,txt,15,"Arial Black",CLR[2]);
//----
  }  
//+------------------------------------------------------------------+

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 ---