View Single Post
  #11 (permalink)  
Old 06-28-2006, 11:44 PM
Aaragorn's Avatar
Aaragorn Aaragorn is offline
Senior Member
 
Join Date: Jun 2006
Location: USA
Posts: 801
Aaragorn is on a distinguished road
here's the whole indicator for reference...

PHP Code:
#property  copyright "ANG3110@latchess.com"
//----------------------------------
#property indicator_chart_window
//----------------------------------
extern int Hours=24;
extern color col=SkyBlue;
//------------------
double lr,lr0,lrp;
double sx,sy,sxy,sx2,aa,bb;
int p,sName,fs;
int f,f0,f1;
double dh,dl,dh_1,dl_1,dh_2,dl_2;
int ai_1,ai_2,bi_1,bi_2
double hai,lai,dhi,dli,dhm,dlm,ha0,hap,la0,lap;
double price_p1,price_p0,price_p2,price_01,price_00,price_02;
int p1,p0,p2,fp;
//*****************************************
int init() {
p=Hours*60/Period();
if (
fs==0) {sName=CurTime(); fs=1;}
return(
0);}
//*******************************
int deinit() {
   
ObjectDelete("1"+sName);
   
ObjectDelete("0"+sName);
   
ObjectDelete("2"+sName); }
//*******************************
int start() {
int i,n;
//------------------------------------------------------------------------------
if (f==1) { 
p1=iBarShift(Symbol(),Period(),ObjectGet("1"+sName,OBJPROP_TIME1));
p0=iBarShift(Symbol(),Period(),ObjectGet("0"+sName,OBJPROP_TIME1));
p2=iBarShift(Symbol(),Period(),ObjectGet("2"+sName,OBJPROP_TIME1));
if (
fp==&& p!=p1) {p=p1fp=1;}
if (
fp==&& p!=p0) {p=p0fp=1;}
if (
fp==&& p!=p2) {p=p2fp=1;}
}
//====================================================
sx=0sy=0sxy=0sx2=0
for (
n=0n<=pn++) {sx+=nsy+=Close[n]; sxy+=n*Close[n]; sx2+=MathPow(n,2);}   
aa=(sx*sy-(p+1)*sxy)/(MathPow(sx,2)-(p+1)*sx2); bb=(sy-aa*sx)/(p+1);
//----------------------------------------------------
for (i=0i<=pi++) {
lr=bb+aa*i;
dh=High[i]-lrdl=Low[i]-lr;
//----------------------------------------------------
if (i<p/2) {if (i==0) {dh_1=0.0dl_1=0.0ai_1=ibi_1=i;} 
if (
dh>=dh_1) {dh_1=dhai_1=i;}
if (
dl<=dl_1) {dl_1=dlbi_1=i;}}  
//----------------------------------------------------
if (i>=p/2) {if (i==p/2) {dh_2=0.0dl_2=0.0ai_2=ibi_2=i;} 
if (
dh>=dh_2) {dh_2=dhai_2=i;}
if (
dl<=dl_2) {dl_2=dlbi_2=i;}}} 
//-------------------------------------
lr0=bblrp=bb+aa*(i+p);
//===================================================
if (MathAbs(ai_1-ai_2)>MathAbs(bi_1-bi_2)) f=1;
if (
MathAbs(ai_1-ai_2)<MathAbs(bi_1-bi_2)) f=2;
if (
MathAbs(ai_1-ai_2)==MathAbs(bi_1-bi_2)) {if (MathAbs(dh_1-dh_2)<MathAbs(dl_1-dl_2)) f=1; if (MathAbs(dh_1-dh_2)>=MathAbs(dl_1-dl_2)) f=2;} 
//=================================================
if (f==1) {
for (
n=0n<=20n++) { f1=0;
for (
i=0i<=pi++) {hai=High[ai_1]*(i-ai_2)/(ai_1-ai_2)+High[ai_2]*(i-ai_1)/(ai_2-ai_1);  
if (
i==|| i==p/2dhm=0.0
if (
High[i]-hai>dhm && i<p/2) {ai_1=if1=1;}
if (
High[i]-hai>dhm && i>=p/2) {ai_2=if1=1;} }
if (
f==0) break;} 
//----------------------------
for (i=0i<=pi++) {hai=High[ai_1]*(i-ai_2)/(ai_1-ai_2)+High[ai_2]*(i-ai_1)/(ai_2-ai_1);  
dli=Low[i]-hai
if (
i==0dlm=0.0; if (dli<dlmdlm=dli;}   
ha0=High[ai_1]*(0-ai_2)/(ai_1-ai_2)+High[ai_2]*(0-ai_1)/(ai_2-ai_1); 
hap=High[ai_1]*(p-ai_2)/(ai_1-ai_2)+High[ai_2]*(p-ai_1)/(ai_2-ai_1);
//----------------------------
price_p1=hap;
price_p0=hap+dlm/2;
price_p2=hap+dlm;
price_01=ha0;
price_00=ha0+dlm/2;
price_02=ha0+dlm;
}
//=================================================
if (f==2) {
for (
n=0n<=20n++) { f1=0;
for (
i=0i<=pi++) {lai=Low[bi_1]*(i-bi_2)/(bi_1-bi_2)+Low[bi_2]*(i-bi_1)/(bi_2-bi_1); 
if (
i==|| i==p/2dlm=0.0
if (
Low[i]-lai<dlm && i<p/2) {bi_1=if1=1;}
if (
Low[i]-lai<dlm && i>=p/2) {bi_2=if1=1;}} 
if (
f==0) break;}
//----------------------------
for (i=0i<=pi++) {lai=Low[bi_1]*(i-bi_2)/(bi_1-bi_2)+Low[bi_2]*(i-bi_1)/(bi_2-bi_1); 
dhi=High[i]-lai;
if (
i==0dhm=0.0; if (dhi>dhmdhm=dhi;}   
la0=Low[bi_1]*(0-bi_2)/(bi_1-bi_2)+Low[bi_2]*(0-bi_1)/(bi_2-bi_1); 
lap=Low[bi_1]*(p-bi_2)/(bi_1-bi_2)+Low[bi_2]*(p-bi_1)/(bi_2-bi_1);
//----------------------------------------------------------------
price_p1=lap;
price_p0=lap+dhm/2;
price_p2=lap+dhm;
price_01=la0;
price_00=la0+dhm/2;
price_02=la0+dhm;
}
//===================================================================================
ObjectCreate("1"+sName,20,Time[p],price_p1,Time[0],price_01);
ObjectCreate("0"+sName,20,Time[p],price_p0,Time[0],price_00);
ObjectCreate("2"+sName,20,Time[p],price_p2,Time[0],price_02);
//-----------------------------------------------------------------
ObjectSet("1"+sName,OBJPROP_COLOR,col);
ObjectSet("0"+sName,OBJPROP_COLOR,col);
ObjectSet("0"+sName,OBJPROP_STYLE,STYLE_DOT);
ObjectSet("2"+sName,OBJPROP_COLOR,col);
//---------------------------------------------
ObjectSet("1"+sName,OBJPROP_TIME1,Time[p]);
ObjectSet("1"+sName,OBJPROP_PRICE1,price_p1);
ObjectSet("1"+sName,OBJPROP_TIME2,Time[0]);
ObjectSet("1"+sName,OBJPROP_PRICE2,price_01);
ObjectSet("0"+sName,OBJPROP_TIME1,Time[p]);
ObjectSet("0"+sName,OBJPROP_PRICE1,price_p0);
ObjectSet("0"+sName,OBJPROP_TIME2,Time[0]);
ObjectSet("0"+sName,OBJPROP_PRICE2,price_00);
ObjectSet("2"+sName,OBJPROP_TIME1,Time[p]);
ObjectSet("2"+sName,OBJPROP_PRICE1,price_p2);
ObjectSet("2"+sName,OBJPROP_TIME2,Time[0]);
ObjectSet("2"+sName,OBJPROP_PRICE2,price_02);
//==================================================================
f=1p1=pp0=pp2=pfp=0
//*************************************************************************************
return(0);}
//===================================================================================== 
Attached Images
File Type: gif autochindicator.gif (14.1 KB, 79 views)

Last edited by Aaragorn; 06-28-2006 at 11:53 PM.
Reply With Quote