Miscellaneous
0
Views
0
Downloads
0
Favorites
HiLo_Activator_Profi_v2
//+------------------------------------------------------------------+
//| HiLo_Activator_Profi.mq4 |
//| Copyright © 2005, |
//| rvm_fam@fromru.com |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2005"
#property link "rvm_fam@fromru.com"
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 DeepSkyBlue
#property indicator_color2 Magenta
//---- input parameters
extern int Range=3;
//---- buffers
double Up[];
double Dn[];
double ur1[];
double ur2[];
double h1[];
double l1[];
//-----
int cb;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
IndicatorBuffers(6);
SetIndexStyle(0,DRAW_ARROW);
SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(0,159);
SetIndexArrow(1,159);
SetIndexBuffer(0,Up);
SetIndexBuffer(1,Dn);
SetIndexEmptyValue(0,0.0);
SetIndexEmptyValue(1,0.0);
SetIndexLabel(0,"HL_Act_Up");
SetIndexLabel(1,"HL_Act_Dn");
SetIndexBuffer(2,ur1);
SetIndexBuffer(3,ur2);
SetIndexBuffer(4,h1);
SetIndexBuffer(5,l1);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
//------ îáúÿâëåíèå ëîêàëüíûõ ïåðåìåííûõ
int counted_bars=IndicatorCounted();
int NumBars=1000, n=0, Nbar=0, k=0, hh=0, ll=0, mm=0;
double MaH=0.0, MaL=0.0;
//-----
if(Bars<Range*12-10) return(0);
if(counted_bars>=Bars-1)
{
NumBars=0;
}
else
{
NumBars=MathMax(Bars-1-counted_bars-(Range*12-10),Range*12-10);
}
//
for( cb=NumBars; cb>=0; cb--)
{
Nbar=-1;
k=1;
mm=0;
Dn[cb]=0.0;
Up[cb]=0.0;
ur1[cb]=0.0;
ur2[cb]=0.0;
h1[cb]=0.0;
l1[cb]=0.0;
//-----------------------------------------------------------------------------
if( Period()==5 ) //åñëè ãðàôèê - Ì5
{
//Print("Òåêóùàÿ ñâå÷êà "+cb+" äàòà "+TimeToStr(Time[cb]) );
//Print("---- Dn[cb]= "+Dn[cb]+" Up[cb]= "+Up[cb] );
if( TimeHour(Time[cb+1])!=TimeHour(Time[cb]) )
{
//Print("---- Nbar= "+Nbar+" k= "+k+" mm= "+mm );
n=cb-15;
//Print("---- n= "+n );
while( n<=cb+Range*12+5 )
{
if( n<0 )
{
Nbar=0;
n=1;
//Print("---- n= "+n+" Nbar= "+Nbar );
}
if( TimeHour(Time[n+1])!=TimeHour(Time[n]) )
{
if( Nbar==-1 )
{
Nbar=n;
mm=n;
n++;
//Print("---- n= "+n+" Nbar= "+Nbar+" mm= "+mm );
continue;
}
else
{
h1[k]=High[Highest(NULL,0,MODE_HIGH,(n-Nbar),n)];
l1[k]=Low[Lowest(NULL,0,MODE_LOW,(n-Nbar),n)];
//Print("---- k= "+k+" Nbar= "+Nbar+" n= "+n+" h1["+k+"]= "+h1[k]+" l1["+k+"]= "+l1[k]+" "+(Low[Lowest(NULL,0,MODE_LOW,(n-Nbar),n)])+" "+(High[Lowest(NULL,0,MODE_HIGH,(n-Nbar),n)]) );
k++;
Nbar=n;
}
}
n++;
}
MaH=0;
MaL=0;
for( n=1;n<=Range;n++)
{
MaH=MaH+h1[n];
MaL=MaL+l1[n];
}
MaH=MaH/Range;
MaL=MaL/Range;
ur1[cb]=MaH;
ur2[cb]=MaL;
//Print("---- MaH= "+MaH+" MaL= "+MaL+" ur1["+cb+"]= "+ur1[cb]+" ur2["+cb+"]= "+ur2[cb] );
if( Close[mm+1]>=MaH )
{
ll=1;
hh=0;
//Print("---- Close["+(mm+1)+"]"+Close[mm+1]+">="+"MaH"+MaH+" ="+(Close[mm+1]>=MaH) );
}
if( Close[mm+1]<=MaL )
{
hh=1;
ll=0;
//Print("---- Close["+(mm+1)+"]"+Close[mm+1]+"<="+"MaL"+MaL+" ="+(Close[mm+1]<=MaL) );
}
//Print("---- ll= "+ll+" hh= "+hh );
}
if( ur1[cb]==0.0 )
{
ur1[cb]=ur1[cb+1];
ur2[cb]=ur2[cb+1];
//Print("---- ur1["+cb+"]= "+ur1[cb]+" ur2["+cb+"]= "+ur2[cb] );
}
if( ll==1 )
{
Up[cb]=ur2[cb];
//Print("---- Dn["+cb+"]= "+Dn[cb]+" Up["+cb+"]= "+Up[cb] );
//Print("---- 1 Up["+cb+"]= "+Up[cb]+" ur2[cb]="+ur2[cb] );
}
else
{
if( hh==1 )
{
Dn[cb]=ur1[cb];
//Print("---- Dn["+cb+"]= "+Dn[cb]+" Up["+cb+"]= "+Up[cb] );
//Print("---- 2 Up["+cb+"]= "+Up[cb] );
}
else
{
Dn[cb]=Dn[cb+1];
Up[cb]=Up[cb+1];
}
}
}
else {
//-----------------------------------------------------------------------------
if( Period()==15 ) //åñëè ãðàôèê - Ì15
{
if( TimeHour(Time[cb+1])!=TimeHour(Time[cb]) ) //åñëè íàñòóïèë íîâûé ÷àñ
{
n=cb-5;
while( n<=cb+Range*4+2 )
{
if( n<0 )
{
Nbar=0;
n=1;
}
if( TimeHour(Time[n+1])!=TimeHour(Time[n]) ) //åñëè âðåìÿ ì15 íå ñîâïàäàåò ñ í1
{
if( Nbar==-1 ) //åñëè ðàññ÷èòûâàåòñÿ ïåðâàÿ èòåðàöèÿ
{
Nbar=n;
mm=n;
n++;
continue;
}
else
{
h1[k]=High[Highest(NULL,0,MODE_HIGH,(n-Nbar),n)];
l1[k]=Low[Lowest(NULL,0,MODE_LOW,(n-Nbar),n)];
k++;
Nbar=n;
}
}
n++;
}
MaH=0;
MaL=0;
for( n=1;n<=Range;n++ )
{
MaH=MaH+h1[n];
MaL=MaL+l1[n];
}
MaH=MaH/Range;
MaL=MaL/Range;
ur1[cb]=MaH;
ur2[cb]=MaL;
if( Close[mm+1]>=MaH )
{
ll=1;
hh=0;
}
if( Close[mm+1]<=MaL )
{
hh=1;
ll=0;
}
}
if( ur1[cb]==0.0 )
{
ur1[cb]=ur1[cb+1];
ur2[cb]=ur2[cb+1];
}
if( ll==1 )
{
Up[cb]=ur2[cb];
}
else
{
if( hh==1 )
{
Dn[cb]=ur1[cb];
}
}
}
else {
//-----------------------------------------------------------------------------
if( Period()==30 ) //åñëè ãðàôèê - Ì30
{
if( (TimeMinute(Time[cb])==0 && (TimeHour(Time[cb])==0 || TimeHour(Time[cb])==4 || TimeHour(Time[cb])==8 ||
TimeHour(Time[cb])==12 || TimeHour(Time[cb])==16 || TimeHour(Time[cb])==20)) )
{
n=cb-10;
while( n<=cb+Range*8+5 )
{
if( n<0 )
{
Nbar=0;
n=1;
}
if( (TimeMinute(Time[n])==0 && (TimeHour(Time[n])==0 || TimeHour(Time[n])==4 || TimeHour(Time[n])==8 |
TimeHour(Time[n])==12 || TimeHour(Time[n])==16 || TimeHour(Time[n])==20)) )
{
if( Nbar==-1 )
{
Nbar=n;
mm=n;
n++;
continue;
}
else
{
h1[k]=High[Highest(NULL,0,MODE_HIGH,(n-Nbar),n)];
l1[k]=Low[Lowest(NULL,0,MODE_LOW,(n-Nbar),n)];
k++;
Nbar=n;
}
}
n++;
}
MaH=0;
MaL=0;
for( n=1;n<=Range;n++ )
{
MaH=MaH+h1[n];
MaL=MaL+l1[n];
}
MaH=MaH/Range;
MaL=MaL/Range;
ur1[cb]=MaH;
ur2[cb]=MaL;
if( Close[mm+1]>=MaH )
{
ll=1;
hh=0;
}
if( Close[mm+1]<=MaL )
{
hh=1;
ll=0;
}
}
if( ur1[cb]==0 )
{
ur1[cb]=ur1[cb+1];
ur2[cb]=ur2[cb+1];
}
if( ll==1 )
{
Up[cb]=ur2[cb];
}
else
{
if( hh==1 )
{
Dn[cb]=ur1[cb];
}
}
}
else {
//-----------------------------------------------------------------------------
if( Period()==60 ) //åñëè ãðàôèê - H1
{
if( (TimeMinute(Time[cb])==0 && (TimeHour(Time[cb])==0 || TimeHour(Time[cb])==4 || TimeHour(Time[cb])==8 ||
TimeHour(Time[cb])==12 || TimeHour(Time[cb])==16 || TimeHour(Time[cb])==20)) )
{
n=cb-6;
while( n<=cb+Range*4+3 )
{
if( n<0 )
{
Nbar=0;
n=1;
}
if( (TimeMinute(Time[n])==0 && (TimeHour(Time[n])==0 || TimeHour(Time[n])==4 || TimeHour(Time[n])==8 |
TimeHour(Time[n])==12 || TimeHour(Time[n])==16 || TimeHour(Time[n])==20)) )
{
if( Nbar==-1 )
{
Nbar=n;
mm=n;
n++;
continue;
}
else
{
h1[k]=High[Highest(NULL,0,MODE_HIGH,(n-Nbar),n)];
l1[k]=Low[Lowest(NULL,0,MODE_LOW,(n-Nbar),n)];
k++;
Nbar=n;
}
}
n++;
}
MaH=0;
MaL=0;
for( n=1;n<=Range;n++ )
{
MaH=MaH+h1[n];
MaL=MaL+l1[n];
}
MaH=MaH/Range;
MaL=MaL/Range;
ur1[cb]=MaH;
ur2[cb]=MaL;
if( Close[mm+1]>=MaH )
{
ll=1;
hh=0;
}
if( Close[mm+1]<=MaL )
{
hh=1;
ll=0;
}
}
if( ur1[cb]==0 )
{
ur1[cb]=ur1[cb+1];
ur2[cb]=ur2[cb+1];
}
if( ll==1 )
{
Up[cb]=ur2[cb];
}
else
{
if( hh==1 )
{
Dn[cb]=ur1[cb];
}
}
}
else {
//-----------------------------------------------------------------------------
if( Period()==240 ) //åñëè ãðàôèê - H4
{
if( TimeDay(Time[cb+1])!=TimeDay(Time[cb]) )
{
n=cb-8;
while( n<=cb+Range*8+4 )
{
if( n<0 )
{
Nbar=0;
n=1;
}
if( TimeDay(Time[n+1])!=TimeDay(Time[n]) )
{
if( Nbar==-1 )
{
Nbar=n;
mm=n;
n++;
continue;
}
else
{
h1[k]=High[Highest(NULL,0,MODE_HIGH,(n-Nbar),n)];
l1[k]=Low[Lowest(NULL,0,MODE_LOW,(n-Nbar),n)];
k++;
Nbar=n;
}
}
n++;
}
MaH=0;
MaL=0;
for( n=1;n<=Range;n++ )
{
MaH=MaH+h1[n];
MaL=MaL+l1[n];
}
MaH=MaH/Range;
MaL=MaL/Range;
ur1[cb]=MaH;
ur2[cb]=MaL;
if( Close[mm+1]>=MaH )
{
ll=1;
hh=0;
}
if( Close[mm+1]<=MaL )
{
hh=1;
ll=0;
}
}
if( ur1[cb]==0 )
{
ur1[cb]=ur1[cb+1];
ur2[cb]=ur2[cb+1];
}
if( ll==1 )
{
Up[cb]=ur2[cb];
}
else
{
if( hh==1 )
{
Dn[cb]=ur1[cb];
}
}
}
else {
//-----------------------------------------------------------------------------
if( Period()==1440 ) //åñëè ãðàôèê - D1
{
if( TimeDayOfWeek(Time[cb+1])==5 && TimeDayOfWeek(Time[cb])==1 )
{
n=cb-6;
while( n<=cb+Range*5+3 )
{
if( n<0 )
{
Nbar=0;
n=1;
}
if( TimeDayOfWeek(Time[n+1])==6 || TimeDayOfWeek(Time[n])==2 )
{
if( Nbar==-1 )
{
Nbar=n;
mm=n;
n++;
continue;
}
else
{
h1[k]=High[Highest(NULL,0,MODE_HIGH,(n-Nbar),n)];
l1[k]=Low[Lowest(NULL,0,MODE_LOW,(n-Nbar),n)];
k++;
Nbar=n;
}
}
n++;
}
MaH=0;
MaL=0;
for( n=1;n<=Range;n++ )
{
MaH=MaH+h1[n];
MaL=MaL+l1[n];
}
MaH=MaH/Range;
MaL=MaL/Range;
ur1[cb]=MaH;
ur2[cb]=MaL;
if( Close[mm+1]>=MaH )
{
ll=1;
hh=0;
}
if( Close[mm+1]<=MaL )
{
hh=1;
ll=0;
}
}
if( ur1[cb]==0 )
{
ur1[cb]=ur1[cb+1];
ur2[cb]=ur2[cb+1];
}
if( ll==1 )
{
Up[cb]=ur2[cb];
}
else
{
if( hh==1 )
{
Dn[cb]=ur1[cb];
}
}
}
else {
//-----------------------------------------------------------------------------
if( Period()== 10080 ) //åñëè ãðàôèê - W1
{
if( TimeMonth(Time[cb+1])!=TimeMonth(Time[cb]) )
{
n=cb-8;
while( n<=cb+Range*8+4 )
{
if( n<0 )
{
Nbar=0;
n=1;
}
if( TimeMonth(Time[n+1])!=TimeMonth(Time[n]) )
{
if( Nbar==-1 )
{
Nbar=n;
mm=n;
n++;
continue;
}
else
{
h1[k]=High[Highest(NULL,0,MODE_HIGH,(n-Nbar),n)];
l1[k]=Low[Lowest(NULL,0,MODE_LOW,(n-Nbar),n)];
k++;
Nbar=n;
}
}
n++;
}
MaH=0;
MaL=0;
for( n=1;n<=Range;n++ )
{
MaH=MaH+h1[n];
MaL=MaL+l1[n];
}
MaH=MaH/Range;
MaL=MaL/Range;
ur1[cb]=MaH;
ur2[cb]=MaL;
if( Close[mm+1]>=MaH )
{
ll=1;
hh=0;
}
if( Close[mm+1]<=MaL )
{
hh=1;
ll=0;
}
}
if( ur1[cb]==0 )
{
ur1[cb]=ur1[cb+1];
ur2[cb]=ur2[cb+1];
}
if( ll==1 )
{
Up[cb]=ur2[cb];
}
else
{
if( hh==1 )
{
Dn[cb]=ur1[cb];
}
}
}
}}}}}}
//-----------------------------------------------------------------------------
if (Dn[cb+1]==0.0 && Dn[cb]!=0.0)
{
if(cb==0) Alert("Òðè ðàçà äçèíü!!! :) Ïîðà ïðîäàâàòü.");
SetSymbol("sell_sig",cb,0,Time[cb],High[cb]+15*Point,Magenta,2,218);
}
if (Up[cb+1]==0.0 && Up[cb]!=0.0)
{
if(cb==0) Alert("Òðè ðàçà äçèíü!!! :) Ïîðà ïîêóïàòü.");
SetSymbol("buy_sig",cb,0,Time[cb],Low[cb]-15*Point,DeepSkyBlue,2,217);
}
}
//-----
return(0);
}
//+------------------------------------------------------------------+
//****************************************************************************//
// Ôóíêöèÿ óñòàíîâêè ñèìâîëà //
//****************************************************************************//
void SetSymbol(string txt,int cb,int win,datetime stime, double sprice,int scol,int swidth,int scode)
{
//----
if(ObjectFind(txt+" "+cb) == -1)
{
ObjectCreate(txt+" "+cb,OBJ_ARROW,win,stime,sprice);
ObjectSet(txt+" "+cb,OBJPROP_COLOR,scol);
ObjectSet(txt+" "+cb,OBJPROP_WIDTH,swidth);
ObjectSet(txt+" "+cb,OBJPROP_ARROWCODE,scode);
}
else
{
ObjectMove(txt+" "+cb,0,stime,sprice);
}
//----
return(0);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit() {
//---- TODO: add your code here
int cb;
for(cb=Bars-1-Range;cb>=0;cb--)
{
if( ObjectFind("buy_sig "+cb)!=-1 )
{
ObjectDelete("buy_sig "+cb);
}
else
{
if( ObjectFind("sell_sig "+cb)!=-1)
{
ObjectDelete("sell_sig "+cb);
}
}
}
//----
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
---