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