Miscellaneous
0
Views
0
Downloads
0
Favorites
rvmGann_sv2
//+------------------------------------------------------------------+
//| rvmGann_sv2.mq4 |
//| Copyright © 2005, MetaQuotes Software Corp. |
//| rvm_fam íà fromru òî÷êà êîì |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2005, MetaQuotes Software Corp."
#property link "rvm_fam íà fromru òî÷êà êîì"
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 DodgerBlue
#property indicator_color2 DodgerBlue
//---- input parameters
extern int GSv_tend=2;
//---- buffers
double GSv_sl[];
double GSv_Up[];
bool initfl,draw_up,draw_dn;
bool curH,curL;
int sH,sL,lb,lhi,lli,fpoint,spoint;
int idFile;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_SECTION,STYLE_DOT);
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID);
SetIndexBuffer(0,GSv_sl);
SetIndexBuffer(1,GSv_Up);
SetIndexEmptyValue(0,0.0);
SetIndexEmptyValue(1,0.0);
SetIndexLabel(0,"Dawn trend");
SetIndexLabel(1,"Up trend");
//FileDelete("GSv.txt");
//idFile=FileOpen("GSv.txt",FILE_WRITE);
//----
return(0);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
int cb,ai,i,limit,index;
//----
if( initfl!=1 )
{
myInit();
if( initfl!=1 )
{
Alert("Ñáîé èíèöèàëèçàöèè èíäèêàòîðà!");
return(-1);
}
}
index=Bars-1;
if( counted_bars>=0 )
{
if( index-counted_bars<=0 )
{
limit=0;
}
else
{
limit=index-counted_bars;
if( limit>index-GSv_tend )
{
limit=index-GSv_tend;
}
}
}
else
{
Alert("Ñáîé ðàñ÷åòà èíäèêàòîðà!");
return(-1);
}
//FileWrite(idFile," Bars="+Bars+" index="+index+" limit="+limit+" counted_bars="+counted_bars);
//-------------------->> íà÷àëî öèêëà ïî áàðàì -------------------------------
for( cb=limit;cb>=0;cb-- )
{
ai=index-cb;
//-------------------->> äåéñòâèÿ ïðèçâîäèìûå åñëè ïîÿâèëñÿ íîâûé áàð --------
if( lb!=ai )
{
//FileWrite(idFile,"**Íîâûé áàð, ai="+ai+" "+TimeToStr(Time[cb]));
lb=ai;
//åñëè ïðåäûäóùèé áàð âíóòðåíèèé - îáíóëÿåì ñ÷åò÷èêè
if( High[cb+1]<=High[cb+2] && Low[cb+1]>=Low[cb+2] )
{
sH=0;
sL=0;
//FileWrite(idFile," Ïðåäûäóùèé áàð âíóòðåííèé, ñ÷åò÷èêè îáíóëåíû "+sH+" "+sL);
}
else
{
//åñëè ïðåäûäóùèé òîëüêî ìàêñèìóì
if( High[cb+1]>High[cb+2] && Low[cb+1]>=Low[cb+2] )
{
sL=0;
//FileWrite(idFile," Ïðåäûäóùèé-òîëüêî ìàêñèìóì, ñ÷åò÷èê ìèíèìóìîâ îáíóëåí "+sL);
}
else
{
//åñëè ïðåäûäóùèé òîëüêî ìèíèìóì
if( High[cb+1]<=High[cb+2] && Low[cb+1]<Low[cb+2] )
{
sH=0;
//FileWrite(idFile," Ïðåäûäóùèé-òîëüêî ìèíèìóì, ñ÷åò÷èê ìàêñèìóìîâ îáíóëåí "+sH);
}
}
}
//åñëè èíäèêàòîð ðèñîâàëñÿ ââåðõ
if( draw_up==1 )
{
//FileWrite(idFile," èíäèêàòîð ðèñîâàëñÿ ââåðõ");
//åñëè ñ÷åò÷èê ìèíèìóìîâ äîñòèã íóæíîãî çíà÷åíèÿ
if( sL==GSv_tend )
{
//FileWrite(idFile," ñ÷åò÷èê ìèíèìóìîâ äîñòèã íóæíîãî çíà÷åíèÿ");
// è ïîñëåäíèé ìèíèìóì èëè ñ÷åò÷èê ìàêñèìóìîâ íå èìååò íóæíîãî çíà÷åíèÿ
if( curL==1 || sH!=GSv_tend )
{
draw_up=0;
draw_dn=1;
fpoint=spoint;
spoint=ai-1;
//FileWrite(idFile," ïîñëåäíèì áûë ìèíèìóì, draw_up="+draw_up+" draw_dn="+draw_dn+" fpoint="+fpoint+" spoint="+spoint+" èëè ñ÷åò÷èê ìàêñèìóìîâ íå èìååò íóæíîãî çíà÷åíèÿ");
}
}
else
{
//èíà÷å åñëè ñ÷åò÷èê ìèíèìóìîâ íå äîñòèã íóæíîãî çíà÷åíèÿ
//åñëè íà ïðåäûäóùåé ñâå÷êå áûë ìàêñèìóì è îí âûøå ïðåäûäóùåãî îòðèñîâàííîãî
if( High[cb+1]>High[cb+2] && High[cb+1]>High[index-spoint] )
{
spoint=ai-1;
//FileWrite(idFile," ìàêñèìóì íà ïðåä.ñâå÷êå âûøå ïðåäûäóùåãî îòðèñîâàííîãî, ìåíÿåì spoint="+spoint);
}
}
}
else
{
//èíà÷å åñëè èíäèêàòîð ðèñîâàëñÿ âíèç
if( draw_dn==1 )
{
//FileWrite(idFile," èíäèêàòîð ðèñîâàëñÿ âíèç");
//åñëè ñ÷åò÷èê ìàêñèìóìîâ äîñòèã íóæíîãî çíà÷åíèÿ
if( sH==GSv_tend )
{
//FileWrite(idFile," ñ÷åò÷èê ìàêñèìóìîâ äîñòèã íóæíîãî çíà÷åíèÿ");
//è ïîñëåäíèé - ìàêñèìóì èëè ñ÷åò÷èê ìèíèìóìîâ íå èìååò íóæíîãî çíà÷åíèÿ
if( curH==1 || sL!=GSv_tend )
{
draw_up=1;
draw_dn=0;
fpoint=spoint;
spoint=ai-1;
//FileWrite(idFile," ïîñëåäíèì áûë ìàêñèìóì, draw_up="+draw_up+" draw_dn="+draw_dn+" fpoint="+fpoint+" spoint="+spoint+" èëè ñ÷åò÷èê ìèíèìóìîâ íå èìååò íóæíîãî çíà÷åíèÿ");
}
}
else
{
//èíà÷å åñëè ñ÷åò÷èê ìàêñèìóìîâ íå äîñòèã íóæíîãî çíà÷åíèÿ
//åñëè íà ïðåäûäóùåé ñâå÷êå áûë ìèíèìóì è îí íèæå ïðåäûäóùåãî îòðèñîâàííîãî
if( Low[cb+1]<Low[cb+2] && Low[cb+1]<Low[index-spoint] )
{
spoint=ai-1;
//FileWrite(idFile," ìèíèìóì íà ïðåä.ñâå÷êå íèæå ïðåäûäóùåãî îòðèñîâàííîãî, ìåíÿåì spoint="+spoint);
}
}
}
}
//FileWrite(idFile," íîâàÿ ñâå÷à, îáíóëÿåì íàëè÷èå ìàêñèìóìà, ìèíèìóìà");
curH=0;
curL=0;
}
//--------------------<< êîíåö äåéñòâèé ïðèçâîäèìûå åñëè ïîÿâèëñÿ íîâûé áàð --
//åñëè òåêóùèé áàð "âíóòðåííèé" ïåðåõîäèì ê ñëåäóþùåìó öèêëó
if( High[cb]<=High[cb+1] && Low[cb]>=Low[cb+1] )
{
//FileWrite(idFile," áàð âíóòðåííèé, ïåðåõîäèì ê ñëåäóþùåé ñâå÷å");
continue;
}
//-------------------->> âûÿñíåíèå òåêóùåãî ñîñòîÿíèÿ áàðà -------------------
//åñëè ýòî èñòîðèÿ
if( cb!=0 || counted_bars==0 )
{
//FileWrite(idFile," ïî èñòîðèè...");
if( High[cb]>High[cb+1] )
{
if( sH<GSv_tend ) sH++;
curH=1;
//FileWrite(idFile," ñ÷åò÷èê ìàêñèìóìîâ óâåëè÷åí, ïîñëåäíèé ìàêñèìóì "+sH);
}
if( Low[cb]<Low[cb+1] )
{
if( sH<GSv_tend ) sL++;
curL=1;
//FileWrite(idFile," ñ÷åò÷èê ìèíèìóìîâ óâåëè÷åí, ïîñëåäíèé ìèíèìóì "+sL);
}
if( curH==curL && curH==1 )
{
if( Close[cb]>=(High[cb]+Low[cb])/2 )
{
curL=0;
//FileWrite(idFile," âíåøíèé áàð, óòî÷íåíèå, ïîñëåäíèé ìàêñèìóì");
}
else
{
curH=0;
//FileWrite(idFile," âíåøíèé áàð, óòî÷íåíèå, ïîñëåäíèé ìèíèìóì");
}
}
}
else
{
//FileWrite(idFile," ðåàë-òàéì...");
if( Close[cb]==High[cb] )
{
if( sH<GSv_tend && lhi!=ai )
{
lhi=ai;
sH++;
}
curH=1;
curL=0;
//FileWrite(idFile," ïîñëåäíèé ìàêñèìóì");
}
else
{
if( Close[cb]==Low[cb] )
{
if( sL<GSv_tend && lli!=ai )
{
lli=ai;
sL++;
}
curH=0;
curL=1;
//FileWrite(idFile," ïîñëåäíèé ìèíèìóì");
}
}
}
//--------------------<< êîíåö âûÿñíåíèÿ òåêóùåãî ñîñòîÿíèÿ áàðà -------------
//FileWrite(idFile," îòðèñîâêà èíäèêàòîðà...");
//åñëè èíäèêàòîð óæå ðèñóåòñÿ
if( draw_up!=draw_dn )
{
//FileWrite(idFile," èíäèêàòîð óæå ðèñóåòñÿ "+draw_up+" "+draw_dn);
//åñëè èíäèêàòîð îòðèñîâûâàåòñÿ ââåðõ
if( draw_dn!=1 )
{
//åñëè ñ÷åò÷èê ìèíèìóìîâ äîñòèã íóæíîãî çíà÷åíèÿ è ïîñëåäíèé ìèíèìóì èëè ñ÷åò÷èê ìàêñèìóìîâ íå èìååò íóæíîãî çíà÷åíèÿ
if( (sL==GSv_tend && curL==1) || (sL==GSv_tend && sH!=GSv_tend) )
{
//FileWrite(idFile," ñ÷åò÷èê ìèíèìóìîâ äîñòèã íóæíîãî çíà÷åíèÿ è ïîñëåäíèé ìèíèìóì èëè ñ÷åò÷èê ìàêñèìóìîâ íå èìååò íóæíîãî çíà÷åíèÿ");
GSv_sl[cb]=Low[cb];
}
else
{
//åñëè ïîñëåäíèé ìàêñèìóì âûøå ïîñëåäíåãî îòðèñîâàííîãî
if( High[cb]>High[index-spoint] )
{
GSv_sl[cb]=High[cb];
for( i=cb+1;i<index-fpoint;i++ )
{
GSv_sl[i]=0;
}
}
}
}
else
{
//èíà÷å åñëè îòðèñîâûâàåòñÿ âíèç
//åñëè ñ÷åò÷èê ìàêñèìóìîâ äîñòèã íóæíîãî çíà÷åíèÿ è ìàêñèìóì ïîñëåäíèé èëè ñ÷åò÷èê ìèíèìóìîâ íå èìååò íóæíîãî çíà÷åíèÿ
if( (sH==GSv_tend && curH==1) || (sH==GSv_tend && sL!=GSv_tend) )
{
//FileWrite(idFile," ñ÷åò÷èê ìàêñèìóìîâ äîñòèã íóæíîãî çíà÷åíèÿ è ïîñëåäíèé ìàêñèìóì èëè ñ÷åò÷èê ìèíèìóìîâ íå èìååò íóæíîãî çíà÷åíèÿ");
GSv_sl[cb]=High[cb];
}
else
{
//åñëè ïîñëåäíèé ìèíèìóì íèæå ïîñëåäíåãî îòðèñîâàííîãî
if( Low[cb]<Low[index-spoint] )
{
GSv_sl[cb]=Low[cb];
for( i=cb+1;i<index-fpoint;i++ )
{
GSv_sl[i]=0;
}
}
}
}
}
else
{
//FileWrite(idFile," èíäèêàòîð ïîêà íå îòðèñîâûâàëñÿ "+draw_up+" "+draw_dn);
//èíà÷å åñëè èíäèêàòîð åùå íå ðèñóåòñÿ
//åñëè ñ÷åò÷èê ìàêñèìóìîâ äîñòèã íóæíîãî çíà÷åíèÿ
if( sH==GSv_tend )
{
//FileWrite(idFile," ñ÷åò÷èê ìàêñèìóìîâ äîñòèã íóæíîãî çíà÷åíèÿ");
if( sL!=GSv_tend || curH==1 )
{
//FileWrite(idFile," ïîñëåäíèé ìàêñèìóì èëè ñ÷åò÷èê ìèíèìóìîâ ìåíüøå íóæíîãî");
GSv_sl[index-fpoint]=Low[index-fpoint];
GSv_sl[cb]=High[cb];
draw_up=1;
draw_dn=0;
//FileWrite(idFile," íà÷àëüíàÿ òî÷êà "+fpoint+" "+GSv_sl[index-fpoint]+" êîíå÷íàÿ òî÷êà "+ai+" "+GSv_sl[cb]);
}
}
//åñëè ñ÷åò÷èê ìèíèìóìîâ äîñòèã íóæíîãî çíà÷åíèÿ
if( sL==GSv_tend )
{
//FileWrite(idFile," ñ÷åò÷èê ìèíèìóìîâ äîñòèã íóæíîãî çíà÷åíèÿ");
if( sH!=GSv_tend || curL==1 )
{
//FileWrite(idFile," ïîñëåäíèé ìèíèìóì èëè ñ÷åò÷èê ìàêñèìóìîâ ìåíüøå íóæíîãî");
GSv_sl[index-fpoint]=High[index-fpoint];
GSv_sl[cb]=Low[cb];
draw_up=0;
draw_dn=1;
//FileWrite(idFile," íà÷àëüíàÿ òî÷êà "+fpoint+" "+GSv_sl[index-fpoint]+" êîíå÷íàÿ òî÷êà "+ai+" "+GSv_sl[cb]);
}
}
}
//--------------------<< êîíåö öèêëà ïî áàðàì --------------------------------
}
return(0);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//FileClose(idFile);
//----
return(0);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Ôóíêöèÿ íà÷àëüíîé èíèöèàëèçàöèè èíäèêàòîðà |
//+------------------------------------------------------------------+
int myInit()
{
//----
//åñëè íåäîñòàòî÷íî äàííûõ
if( Bars<GSv_tend+1 )
{
Alert("Íåäîñòàòî÷íî äàííûõ íà ãðàôèêå!");
return(-1);
}
if( GSv_tend<1 )
{
Alert("Íåâåðíûé ïàðàìåòð èíäèêàòîðà!");
return(-1);
}
if( High[Bars-2]>High[Bars-1] ) sH++;
if( Low[Bars-2]<Low[Bars-1] ) sL++;
initfl=1;
//FileWrite(idFile,TimeToStr(CurTime())+" èíäèêàòîð èíèöèàëèçèðîâàí");
//FileWrite(idFile," áàðîâ íà ãðàôèêå = "+Bars+", âðåìÿ ïåðâîãî áàðà = "+TimeToStr(Time[Bars-1]));
//FileWrite(idFile," ñ÷åò÷èê ìàêñèìóìîâ = "+sH+", ñ÷åò÷èê ìèíèìóìîâ = "+sL);
//----
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
---