Indicators Used
Miscellaneous
0
Views
0
Downloads
0
Favorites
ang_ALR(V)
//------at_ALR(V)-------------------
#property indicator_separate_window
#property indicator_buffers 5
#property indicator_color1 Blue
#property indicator_color2 Red
#property indicator_color3 SlateGray
#property indicator_color4 SlateGray
#property indicator_color5 Gold
#property indicator_width1 2
#property indicator_width2 2
#property indicator_style3 2
#property indicator_style4 2
#property indicator_style5 2
#property indicator_level1 0
//---------------------------------
extern double hrLR=24;
extern double kSig=0.3;
extern double k=1.0;
extern double Rd=0.05;
//---------------------------------
double alr[],alra[],alrH[],alrL[],sqH[],sqL[],ma[];
//---------------------------------
double sx,sy,syp,sxy,sxyp,sxx,aa,bb,S;
double rd,abs;
int p,pma,fs,fss;
//------------------------------------
int init()
{
IndicatorBuffers(7);
//---------------------------------------------------
IndicatorShortName("ang_ALR(V) "+DoubleToStr(hrLR,0));
//---------------------------------------------------
SetIndexBuffer(0,alrH);
SetIndexBuffer(1,alrL);
SetIndexBuffer(2,sqH);
SetIndexBuffer(3,sqL);
SetIndexBuffer(4,ma);
//------------------------
SetIndexBuffer(5,alr);
SetIndexBuffer(6,alra);
//------------------------
SetIndexEmptyValue(0,0.0);
SetIndexEmptyValue(1,0.0);
//-------------------------------
SetIndexStyle(0,DRAW_HISTOGRAM);
SetIndexStyle(1,DRAW_HISTOGRAM);
//-------------------------------
return(0);
}
//*************************************************
int start()
{
int cbi,cbi2,IC=IndicatorCounted();
if (Bars-IC<3) cbi=Bars-IC-1; else
{
p=hrLR*60/Period()+1;
pma=p*kSig;
cbi=Bars-p-1;
cbi2=cbi-p-pma;
}
//==========================================
for(int i=cbi; i>=0; i--)
{
sx=0.0; sy=0.0; sxy=0.0; sxx=0.0;
for (int n=i; n<i+p; n++)
{
sx+=n;
sy+=Close[n];
sxy+=n*Close[n];
sxx+=MathPow(n,2);
}
aa=(sx*sy-p*sxy)/(MathPow(sx,2)-p*sxx);
bb=(sy-aa*sx)/p;
//-----------------------------
alr[i]=-aa*p/Point/hrLR;
alra[i]=MathAbs(alr[i]);
if (Rd!=0)
{
if (alr[i]>0) {if (fss==2) rd=0.0; fss=1;}
if (alr[i]<0) {if (fss==1) rd=0.0; fss=2;}
if (alr[i]>=rd+Rd || alr[i]<=rd-Rd) rd=MathRound(alr[i]/Rd)*Rd;
alr[i]=rd;
}
if (alr[i]>alr[i+1]) fs=1;
if (alr[i]<alr[i+1]) fs=2;
if (fs==1) {alrH[i]=alr[i]; alrL[i]=0.0;}
if (fs==2) {alrL[i]=alr[i]; alrH[i]=0.0;}
}
//===========================================
for (i=cbi2; i>=0; i--)
{
ma[i]=iMAOnArray(alr,0,pma,0,0,i);
abs=iMAOnArray(alra,0,p,0,0,i)*k;
sqH[i]=abs;
sqL[i]=-abs;
}
//===========================================
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
---