Miscellaneous
0
Views
0
Downloads
0
Favorites
GannZigZag_v2
//+------------------------------------------------------------------+
//| GannZIGZAG.mq4 |
//| Copyright © 2005, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright ""
#property link ""
//----
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 DeepSkyBlue
#property indicator_color2 Black
//---- input parameters
extern int GSv_range=2;
//---- buffers
double GSv_sl[];
double GSv_m[];
//----
bool draw_up=0,draw_dn=0,initfl=0;
int fPoint_i,sPoint_i,s_up,s_dn,drawf,lb,idFile;
double h,l;
bool cur_h=0,cur_l=0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_SECTION,STYLE_DOT);
//SetIndexStyle(1,DRAW_SECTION);
SetIndexBuffer(0,GSv_sl);
//SetIndexBuffer(1,GSv_m);
SetIndexEmptyValue(0,0.0);
//SetIndexEmptyValue(1,0.0);
FileDelete("Gann.txt");
idFile=FileOpen("Gann.txt",FILE_READ|FILE_WRITE," ");
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
int cb,limit,i;
//----
if(GSv_range<1 )
{
Alert("Èíäèêàòîð ðàññ÷èòûâàåò çíà÷åíèÿ /n ïðè ïàðàìåòðå GSv_range íå ìåíüøå 1!!!");
return(-1);
}
if(counted_bars<0 )
{
return(-1);
}
else
{
if(Bars-1-counted_bars<=0 )
{
limit=0;
}
else
{
limit=Bars-1-counted_bars;
}
}
//ïåðâîíà÷àëüíàÿ èíèöèàëèçàöèÿ
if(initfl!=1 )
{
myInit();
}
//FileWrite(idFile," 0. Áàðîâ íà ãðàôèêå "+Bars);
//öèêë ïî áàðàì
for( cb=limit;cb>=0;cb--)
{
if(cb==0)FileWrite(idFile,"---- èíäåêñ òåêóùåãî áàðà "+cb+" "+(Bars-1-cb)+" âðåìÿ "+TimeToStr(Time[cb])+" áàðîâ íà ãðàôèêå "+Bars);
//åñëè íà ïðåäûäóùåì áàðå áûë îòðèñîâàí ýêñòðåìóì
if(GSv_sl[cb+1]>0 && lb!=Bars-1-cb )
{
if(draw_up!=0 )
{
s_dn=0;
if(cb==0)FileWrite(idFile," 1. Áûë îòðèñîâàí ìàêñèìóì, ñ÷åò÷èê ìèíèìóìîâ îáíóëåí");
}
else
{
if(draw_dn!=0 )
{
s_up=0;
if(cb==0)FileWrite(idFile," 2. Áûë îòðèñîâàí ìèíèìóì, ñ÷åò÷èê ìàêñèìóìîâ îáíóëåí");
}
}
}
if(lb!=Bars-1-cb )
{
cur_h=0;
cur_l=0;
if(cb==0)FileWrite(idFile," 2.1 íîâûé áàð ôëàãè íàëè÷èÿ ìàêñèìóìà è ìèíèìóìà ñáðîøåíû");
}
if(cb>Bars-2-drawf || (High[cb]<=High[cb+1] && Low[cb]>=Low[cb+1]) )
{
if(cb==0)FileWrite(idFile," 3. Áàð ëèáî 'âíóòðåííèé', ëèáî äî ïåðâîãî ýêñòðåìóìà");
continue;
}
if(draw_up!=0 )
{
if(cb==0)FileWrite(idFile," 4. Èíäèêàòîð íàïðàâëåí ââåðõ");
//åñëè ëèíèÿ íàïðàâëåíà ââåðõ
if(High[cb]>h )
{
//åñëè äîñòèãíóò íîâûé ìàêñèìóì
h=High[cb];
cur_h=1;
if(cb==0)FileWrite(idFile," 5. Äîñòèãíóò íîâûé ìàêñèìóì = "+h+" cur_h "+cur_h);
}
if(Low[cb]<l )
{
//åñëè äîñòèãíóò íîâûé ìèíèìóì
l=Low[cb];
if(cb==0)FileWrite(idFile," 6. Äîñòèãíóò íîâûé ìèíèìóì = "+l);
//åñëè ýòî íå òîò æå ñàìûé áàð
if(lb!=Bars-1-cb || cur_l!=1)s_dn++;
cur_l=1;
if(cb==0)FileWrite(idFile," 7. Áàð íîâûé, ñ÷åò÷èê ìèíèìóìîâ óâåëè÷åí "+s_dn+" cur_l "+cur_l);
}
//åñëè ñ÷åò÷èêè ðàâíû
if(s_up==s_dn )
{
if(cb==0)FileWrite(idFile," 8. Ñ÷åò÷èêè ðàâíû");
//åñëè ïîñëåäíèé áàð îäíîâðåìåííî íîâûé ìàêñèìóì è ìèíèìóì
if(cur_h==cur_l && cur_l==1 )
{
if(cb==0)FileWrite(idFile," 9. Åñòü äâà ýêñòðåìóìà");
//åñëè ñâå÷à ìåäâåæüÿ
if(Close[cb]<=Open[cb] )
{
draw_up=0;
draw_dn=1;
fPoint_i=sPoint_i;
sPoint_i=Bars-1-cb;
GSv_sl[cb]=l;
for( i=cb+1;i<Bars-1-fPoint_i;i++ )
{
GSv_sl[i]=0;
}
if(cb==0)FileWrite(idFile," 10. Ñâå÷à ìåäâåæüÿ, ëèíèÿ ââåðõ = "+draw_up+", ëèíèÿ âíèç,"+draw_dn+" fPoint_i = "+fPoint_i+" sPoint_i "+sPoint_i+" èíäèêàòîð = "+GSv_sl[cb]);
}
else
{
//åñëè ñâå÷à áû÷üÿ
sPoint_i=Bars-1-cb;
GSv_sl[cb]=h;
for( i=cb+1;i<Bars-1-fPoint_i;i++ )
{
GSv_sl[i]=0;
}
if(cb==0)FileWrite(idFile," 11. Ñâå÷à áû÷üÿ, ëèíèÿ ââåðõ = "+draw_up+", ëèíèÿ âíèç,"+draw_dn+" fPoint_i = "+fPoint_i+" sPoint_i "+sPoint_i+" èíäèêàòîð = "+GSv_sl[cb]);
}
}
else
{
//åñëè ïîñëåäíèé áàð òîëüêî íîâûé ìàêñèìóì
if(cur_h==1 )
{
sPoint_i=Bars-1-cb;
GSv_sl[cb]=h;
l=Low[cb];
for( i=cb+1;i<Bars-1-fPoint_i;i++ )
{
GSv_sl[i]=0;
}
if(cb==0)FileWrite(idFile," 12. Òîëüêî ìàêñèìóì, èíäèêàòîð = "+GSv_sl[cb]+" sPoint_i "+sPoint_i+" l "+l);
}
else
{
if(cur_l==1 )
{
//åñëè ïîñëåäíèé áàð òîëüêî íîâûé ìèíèìóì
draw_up=0;
draw_dn=1;
fPoint_i=sPoint_i;
sPoint_i=Bars-1-cb;
GSv_sl[cb]=l;
h=High[cb];
for( i=cb+1;i<Bars-1-fPoint_i;i++ )
{
GSv_sl[i]=0;
}
if(cb==0)FileWrite(idFile," 13. Òîëüêî ìèíèìóì, èíäèêàòîð = "+GSv_sl[cb]+" fPoint_i "+fPoint_i+" sPoint_i "+sPoint_i+" draw_up "+draw_up+" draw_dn "+draw_dn+" h "+h);
}
}
}
}
else
{
//èíà÷å åñëè ñìåíû íàïðàâëåíèÿ íåò ÿâíî (ñ÷åò÷èê Dn ñâå÷åé íå ðàâåí GSv_range)
if(cb==0)FileWrite(idFile," 14. Ñ÷åò÷èêè íå ðàâíû");
//åñëè äîñòèãíóò íîâûé ìàêñèìóì
if(cur_h==1 )
{
sPoint_i=Bars-1-cb;
GSv_sl[cb]=h;
for( i=cb+1;i<Bars-1-fPoint_i;i++ )
{
GSv_sl[i]=0;
}
l=Low[cb];
if(cb==0)FileWrite(idFile," 15. Åñòü íîâûé ìàêñèìóì, èíäèêàòîð "+GSv_sl[cb]+" sPoint_i "+sPoint_i+" l "+l);
}
}
}
else
{
//åñëè ëèíèÿ íàïðàâëåíà âíèç
if(cb==0)FileWrite(idFile," 16. Èíäèêàòîð íàïðàâëåí âíèç");
if(High[cb]>h )
{
//åñëè äîñòèãíóò íîâûé ìàêñèìóì
h=High[cb];
if(cb==0)FileWrite(idFile," 17. Äîñòèãíóò íîâûé ìàêñèìóì "+h);
if(lb!=Bars-1-cb || cur_h!=1)s_up++;
cur_h=1;
//åñëè ýòî íå òîò æå ñàìûé áàð
if(cb==0)FileWrite(idFile," 18. Íîâûé áàð, ñ÷åò÷èê ìàêñèìóìîâ óâåëè÷åí "+s_up+" cur_h "+cur_h+" h "+h);
}
if(Low[cb]<l )
{
//åñëè äîñòèãíóò íîâûé ìèíèìóì
l=Low[cb];
cur_l=1;
if(cb==0)FileWrite(idFile," 19. Äîñòèãíóò íîâûé ìèíèìóì "+l+" cur_l "+cur_l);
}
//åñëè ñ÷åò÷èêè ðàâíû
if(s_up==s_dn )
{
if(cb==0)FileWrite(idFile," 20. Ñ÷åò÷èêè ðàâíû");
//åñëè ïîñëåäíèé áàð îäíîâðåìåííî íîâûé ìàêñèìóì è ìèíèìóì
if(cur_h==cur_l && cur_l==1 )
{
if(cb==0)FileWrite(idFile," 21. Åñòü äâà ýêñòðåìóìà");
//åñëè ñâå÷à ìåäâåæüÿ
if(Close[cb]<=Open[cb] )
{
sPoint_i=Bars-1-cb;
GSv_sl[cb]=l;
for( i=cb+1;i<Bars-1-fPoint_i;i++ )
{
GSv_sl[i]=0;
}
if(cb==0)FileWrite(idFile," 22. Ñâå÷à ìåäâåæüÿ, èíäèêàòîð "+GSv_sl[cb]+" sPoint_i "+sPoint_i);
}
else
{
//åñëè ñâå÷à áû÷üÿ
draw_up=1;
draw_dn=0;
fPoint_i=sPoint_i;
sPoint_i=Bars-1-cb;
GSv_sl[cb]=h;
for( i=cb+1;i<Bars-1-fPoint_i;i++ )
{
GSv_sl[i]=0;
}
if(cb==0)FileWrite(idFile," 23. Ñâå÷à áû÷üÿ, èíäèêàòîð "+GSv_sl[cb]+" draw_up "+draw_up+" draw_dn "+draw_dn+" sPoint_i "+sPoint_i+" fPoint_i "+fPoint_i);
}
}
else
{
//åñëè ïîñëåäíèé áàð òîëüêî íîâûé ìàêñèìóì
if(cur_h==1 )
{
draw_up=1;
draw_dn=0;
fPoint_i=sPoint_i;
sPoint_i=Bars-1-cb;
GSv_sl[cb]=h;
l=Low[cb];
for( i=cb+1;i<Bars-1-fPoint_i;i++ )
{
GSv_sl[i]=0;
}
if(cb==0)FileWrite(idFile," 24. Òîëüêî ìàêñèìóì, èíäèêàòîð "+GSv_sl[cb]+" draw_up "+draw_up+" draw_dn "+draw_dn+" sPoint_i "+sPoint_i+" fPoint_i "+fPoint_i+" l "+l);
}
else
{
if(cur_l==1 )
{
//åñëè ïîñëåäíèé áàð òîëüêî íîâûé ìèíèìóì
sPoint_i=Bars-1-cb;
GSv_sl[cb]=l;
h=High[cb];
for( i=cb+1;i<Bars-1-fPoint_i;i++ )
{
GSv_sl[i]=0;
}
if(cb==0)FileWrite(idFile," 25. Òîëüêî ìèíèìóì, èíäèêàòîð "+GSv_sl[cb]+" sPoint_i "+sPoint_i+" h "+h);
}
}
}
}
else
{
//èíà÷å åñëè ñìåíû íàïðàâëåíèÿ íåò ÿâíî (ñ÷åò÷èê Up ñâå÷åé íå ðàâåí GSv_range)
if(cb==0)FileWrite(idFile," 26. Ñ÷åò÷èêè íå ðàâíû");
//åñëè äîñòèãíóò íîâûé ìèíèìóì
if(cur_l==1 )
{
sPoint_i=Bars-1-cb;
GSv_sl[cb]=l;
for( i=cb+1;i<Bars-1-fPoint_i;i++ )
{
GSv_sl[i]=0;
}
h=High[cb];
if(cb==0)FileWrite(idFile," 27. Äîñòèãíóò íîâûé ìèíèìóì, èíäèêàòîð "+GSv_sl[cb]+" sPoint_i "+sPoint_i+" h "+h);
}
}
}
if(lb!=Bars-1-cb)lb=Bars-1-cb;
}
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
FileClose(idFile);
//----
return(0);
}
//+------------------------------------------------------------------+
// Ôóíêöèÿ íà÷àëüíîé èíèöèàëèçàöèè èíäèêàòîðà |
//+------------------------------------------------------------------+
void myInit()
{
//----
int cb;
fPoint_i=0;
h=High[Bars-1];
l=Low[Bars-1];
for( cb=Bars-2;cb>=0;cb--)
{
if(High[cb]>High[cb+1] || Low[cb]<Low[cb+1] )
{
if(High[cb]>h && High[cb]>High[cb+1] )
{
s_up++;
}
if(Low[cb]<l && Low[cb]<Low[cb+1] )
{
s_dn++;
}
}
else
{
continue;
}
if(s_up==s_dn && s_up==GSv_range )
{
h=High[cb];
l=Low[cb];
sPoint_i=Bars-1-cb;
if(Close[cb]>=Open[cb] )
{
s_dn=0;
GSv_sl[Bars-1]=Low[Bars-1];
GSv_sl[cb]=High[cb];
draw_up=1;
break;
}
else
{
s_up=0;
GSv_sl[Bars-1]=High[Bars-1];
GSv_sl[cb]=Low[cb];
draw_dn=1;
break;
}
}
else
{
h=High[cb];
l=Low[cb];
sPoint_i=Bars-1-cb;
if(s_up==GSv_range )
{
s_dn=0;
GSv_sl[Bars-1]=Low[Bars-1];
GSv_sl[cb]=High[cb];
draw_up=1;
break;
}
else
{
if(s_dn==GSv_range )
{
s_up=0;
GSv_sl[Bars-1]=High[Bars-1];
GSv_sl[cb]=Low[cb];
draw_dn=1;
break;
}
}
}
}
initfl=1;
drawf=sPoint_i;
//----
return(0);
}
//+------------------------------------------------------------------+
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
---