The Perfect Channel Trading System


The Perfect Channel Trading System
The Perfect Channel Trading System

//www.aflcode.com
BckGndColor=ParamColor
("BackGroundColor",colorBlack);
GraphXSpace=1;
P1=Param("ShortTerm Period",9,3,15,1); 
P2=Param("MidTerm Period",15,9,24,1); 
P3=Param("LongTerm Period",24,15,50,1); 
P4=Param("Invesment Term",5,1,12,1); 
P5=Param("ATR Period",5,1,25,1); 
Sm=2*P5/10; 
ATRX=Sm*ATR(P4); 
S=EMA(C,P1) - ATRX; 
M=EMA(C,P2) -ATRX; 
lg=EMA(C,P3) -ATRX; 

Sht=IIf(C==HHV(C,3),S,Ref(EMA(C,9),-1)-ATRX); 
Mid=IIf(C==HHV(C,3),M,Ref(EMA(C,15),-1)-ATRX); 
Lng=IIf(C==HHV(C,3),Lg,Ref(EMA(C,24),-1)-ATRX); 

ColorSys3=IIf( Sht>Mid AND C > Sht ,colorBrightGreen ,IIf( C < lng OR Sht<lng ,colorRed,
IIf(BarsSince(Sht>Mid AND C > Sht) < BarsSince(C < lng OR Sht<lng ) ,colorBrightGreen ,colorRed))); 
Plot(C,"",ColorSys3,64);  
//.........................................................................................//
//.........................................................................................//
//.........................................................................................//


BuySys3=ColorSys3==colorBrightGreen AND Ref(ColorSys3,-1)!=colorBrightGreen ;
SellSys3=ColorSys3==colorRed AND Ref(ColorSys3,-1)!=colorRed ;

PlotShapes(shapeUpArrow*(BuySys3==1),colorSkyblue,0,L,Offset=-60);
PlotShapes(shapeDownArrow*(SellSys3==1),colorSkyblue,0,H,Offset=-60);
PlotShapes(shapeDigit7*(BuySys3==1),colorSkyblue,0,L,Offset=-75);
PlotShapes(shapeDigit7*(SellSys3==1),colorSkyblue,0,H,Offset=75);

//.........................................................................................//
//.........................................................................................//
//.........................................................................................//
//..........................................................................................//


//Level 6//


Length=21;//21,15
Smooth=5; //5,3
FixV=5;
Factor=1;
cmopds=Length;
CMO_1=Sum( IIf( C > Ref( C, -1 ) , ( C - Ref( C ,-1 ) ) ,0 ) ,cmopds ) ;
CMO_2=Sum( IIf( C < Ref( C ,-1 ) , ( Ref( C ,-1 ) - C )  ,0 ) ,cmopds );

CMO=100 * (( CMO_1 -CMO_2)  /( CMO_1+CMO_2)); 

AbsCMO=( abs(CMO) )/100;

SC=2/(Smooth+1);

Chaloke=AMA( C, SC*AbsCMO );

Sys2Up=Chaloke+(Factor*StDev(Chaloke,FixV));
Sys2Dn=Chaloke-(Factor*StDev(Chaloke,FixV)); 


Chaloke_Color=IIf(C > sys2up ,colorBrightGreen,IIf(C < sys2dn ,colorRed,colorBlack));

ChalokeSwitch=Param(".ChalokeSwitch",0,0,1,1);
Plot(Chaloke,"Kook Novice Chaloke System2",colorBlack, IIf(Chalokeswitch==1,1,styleNoLine) );
Plot(Sys2Up,"Sys2Up",colorBlue, IIf(Chalokeswitch==1,1,styleNoLine) );
Plot(sys2Dn,"Sys2Dn",colorRed, IIf(Chalokeswitch==1,1,styleNoLine) );  
Plot(C,"Close",Chaloke_Color,64);
PlotShapes(shapeUpArrow*Cross(C,Sys2UP),colorPink,0,L,Offset=-27);
PlotShapes(shapeDownArrow*Cross(Sys2Dn,C),colorPink,0,H,Offset=-27);
PlotShapes(shapeDigit6*Cross(C,Sys2UP),colorPink,0,L,Offset=-40);
PlotShapes(shapeDigit6*Cross(Sys2Dn,C),colorPink,0,H,Offset=40);


//.........................................................................................//
//.........................................................................................//
//.........................................................................................//
//.........................................................................................//

//Level 5//
Tghlow=Trough(C,1.5);
PKHg=Peak(C,1.5);
PlotShapes(shapeUpArrow*(tghlow>Ref(tghlow,-1)),colorLightGrey,0,L,Offset=-5);
PlotShapes(shapeDigit5*(tghlow>Ref(tghlow,-1)),colorLightGrey,0,L,Offset=-15);
PlotShapes(shapeDownArrow*(PKHg<Ref(PKHg,-1)),colorLightGrey,0,H,Offset=-5);
PlotShapes(shapeDigit5*(PKHg<Ref(PKHg,-1)),colorLightGrey,0,H,Offset=15);
//.........................................................................................//
//.........................................................................................//
//.........................................................................................//



//lEVEL 4/////
///// Chaloke Modified ATR Trailing Stop --


Prev=Ref(HHV(H-2.5*ATR(5),10),-BarsSince(C>HHV(H-2.5*ATR(5),10) AND C>Ref(C,-1)));
AT=IIf( Cum(1)<16 , C,
IIf( C > HHV(H-2.5*ATR(5),10) AND C > Ref(C,-1),HHV(H-2.5*ATR(5),10),
Prev));
Plot(AT,"Chaloke Modified ATR Trailing Stop",IIf(Ref(AT,-1)<C,colorYellow,BckGndColor),1);
//PlotShapes(shapeDownArrow*Cross(AT,C),colorBlue,0,H,Offset=-24);
Plot( IIf( Cross(AT,C) ,L*0.95,Null) ,"",BckGndColor,styleHistogram+styleNoLabel);
Plot( IIf( Cross(AT,C) ,H*1.05,Null) ,"",colorYellow,styleHistogram+styleNoLabel);
PlotShapes(shapeDigit4*( Cross(AT,C) ),colorYellow,0,H*1.05,Offset=-10);
PlotShapes(shapeDigit4*( Cross(C,AT) ) ,colorYellow,0,L,Offset=-10);
//PlotShapes(shapeUpArrow*( Cross(C,AT) ) ,colorYellow,0,L*0.95,Offset=5);
//.........................................................................................//
//.........................................................................................//
//.........................................................................................//
//.........................................................................................//


//--Level 3 
//Kook Auto SEC 
//AUTO SEC Version 1.0// 
// v.1.0 Created By Kook 16 Nov 2005 // 
// v.1.1 1st Update By Kook 17 Nov 2005 // 
// v.1.2 2nd Update By Kook 20 Nov 2005 //Bugs(Last SEC) reported from Mink 

Heading="AUTO SEC Version 1.2"; 

SECUpColor=ParamColor("SEC-UpColor",colorBrightGreen); 
SECDnColor=ParamColor("SEC-DownColor",colorRed); 
SECLastColor=ParamColor("SEC-LastColor",10); 
BckGndColor=ParamColor("BackGroundColor",colorBlack); 
ZZSwitch=Param("ZZSwitch",0,0,1,1); 
Sens=Param("Sens",5,0.5,15,0.5); 
SECSwitch=Param("SECSwitch",1,0,1,1); 

BarPK=BarsSince(Zig(C,Sens)==Peak(C,Sens)); 
BarTGH= BarsSince(Zig(C,Sens)==Trough(C,Sens)); 
Turnpoint=Min(BarPK,BarTGH); 
x = Cum(1); 
lastx = ValueWhen(Turnpoint==0,( x )); 
Daysback = ValueWhen(Turnpoint==0,(Max(PeakBars(C,Sens,1),TroughBars(C,Sens,1))))+1; 

aa =ValueWhen(Turnpoint==0,LinRegIntercept( Close, Daysback) ); 
bb =ValueWhen(Turnpoint==0,LinRegSlope( Close, Daysback)); 
y = Aa + bb * ( x - (Lastx - DaysBack+1) ); 

e= ValueWhen(Turnpoint==0,StdErr(C,Daysback)); 
eU= y + 2*e; 
eL= y - 2*e; 

ColorSEC=IIf(Cross(bb,0) OR Cross(0,bb),BckGndColor,IIf(bb<0,SECDnColor,SECUpColor)); 
Plot( IIf( x >= (lastx - Daysback), IIf( Ref(C,-1) <eU AND Ref(C,-1) >eL,y,Null) , -1e10 ) , "LinReg", colorSEC,4 ); 
Plot(IIf( x >= (lastx - Daysback), IIf( Ref(C,-1) <eU AND Ref(C,-1) >eL,eU,Null) , -1e10 ) ,"",ColorSEC,4); 
Plot(IIf( x >= (lastx - Daysback), IIf( Ref(C,-1) <eU AND Ref(C,-1) >eL,eL,Null) , -1e10 ) ,"",ColorSEC,4); 


PlotShapes(shapeUpArrow*Cross(C,eU),colorWhite,0,L,Offset=-40); 
PlotShapes(shapeDownArrow*Cross(eL,C),colorWhite,0,H,Offset=-40); 
PlotShapes(shapeDigit3*Cross(C,eU),colorWhite,0,L,Offset=-55); 
PlotShapes(shapeDigit3*Cross(eL,C),colorWhite,0,H,Offset=55); 

DaysbackL = LastValue(Min(PeakBars(C,Sens,1),TroughBars(C,Sens,1))); 

Slope= ValueWhen(Turnpoint==0,bb,0); 
Level= ValueWhen(Turnpoint==0,aa,0); 
Err= ValueWhen(Turnpoint==0,e,0); 

Mback= Level + slope*( Turnpoint) ; 
Uback= MBack + 2*Err; 
Lback= MBack - 2*Err; 

ColorSEC2=IIf(Cross(bb,0) OR Cross(0,bb),BckGndColor,IIf(bb<0,SECUpColor,SECDnColor)); 

Plot( IIf( (X>(LastValue(x)-DaysbackL) ),Null ,Mback) ,"",ColorSEC2); 
Plot( IIf( (X>(LastValue(x)-DaysbackL) ),Null ,Uback) ,"",ColorSEC2); 
Plot( IIf( (X>(LastValue(x)-DaysbackL) ),Null ,Lback) ,"",ColorSEC2); 

///////Last SEC/////////////////// 
x = Cum(1); 
lastxL = LastValue( x ); 
DaysbackL = LastValue(Min(PeakBars(C,Sens,1),TroughBars(C,Sens,1)))+1; 
Endbars = IIf(PeakBars(C,Sens,1)<TroughBars(C,Sens,1),LastValue(ValueWhen(C==LLV(C,DaysbackL),X)),LastValue(ValueWhen( C==HHV(C,DaysbackL),X))); 
BarsL=Min(PeakBars(C,Sens,1),TroughBars(C,Sens,1)) ; 

aaL = ValueWhen( Ref(Endbars,-1)!=Ref(x,-1) AND Endbars==x , LinRegIntercept( Close, DaysbackL-(LastValue(x)-Endbars)) ); 
bbL = ValueWhen( Ref(Endbars,-1)!=Ref(x,-1) AND Endbars==x , LinRegSlope( Close, DaysbackL-(LastValue(x)-Endbars)) ); 
eL= ValueWhen( Ref(Endbars,-1)!=Ref(x,-1) AND Endbars==x , StdErr(C,DaysbackL-(LastValue(x)-Endbars)) ); 
SlopeL= LastValue(bbL); 
LevelL= LastValue(aaL); 
ErrL= LastValue(eL); 

MbackL= LevelL + slopeL*( BarsL) ; 
UbackL= MBackL + 2*ErrL; 
LbackL= MBackL - 2*ErrL; 
WL=(UbackL-LbackL)/sqrt((SlopeL*SlopeL)+1); 

Plot( IIf(X>(LastValue(x)-DaysbackL) AND MbackL!=0,MbackL,Null) ,"",SECLastColor,styleNoLabel); 
Plot( IIf(X>(LastValue(x)-DaysbackL) AND MbackL!=0,UbackL,Null) ,"",SECLastColor,styleNoLabel); 
Plot( IIf(X>(LastValue(x)-DaysbackL) AND MbackL!=0,LbackL,Null) ,"",SECLastColor,styleNoLabel); 

PlotShapes( IIf(X>(LastValue(x)-DaysbackL),shapeHollowUpArrow*Cross(C,UbackL) ,Null),11,0,L,Offset=-30); 
PlotShapes( IIf(X>(LastValue(x)-DaysbackL),shapeHollowDownArrow*Cross(LbackL,C) ,Null),11,0,H,Offset=-30); 
PlotShapes( IIf(X>(LastValue(x)-DaysbackL),shapeDigit3*Cross(C,UbackL) ,Null),11,0,L,Offset=-44); 
PlotShapes( IIf(X>(LastValue(x)-DaysbackL),shapeDigit3*Cross(LbackL,C) ,Null),11,0,H,Offset=44); 

aat =LastValue(ValueWhen(Turnpoint==0,LinRegIntercept( Close, Daysback) )); 
bbt =LastValue(ValueWhen(Turnpoint==0,LinRegSlope( Close, Daysback))); 
yt = Aat + bbt * ( x - (Lastx - DaysBack+1) ); 
et= ValueWhen(Turnpoint==0,StdErr(C,Daysback)); 
eUt= yt + 2*et; 
eLt= yt - 2*et; 

//Plot( IIf( x >= (lastx - Daysback) , IIf( x>= LastValue(lastx) AND SECswitch==1 AND MbackL!=0,yt,Null) , -1e10 ) , "LinReg", ColorSEC,styleNoLabel); 
//Plot(IIf( x >= (lastx - Daysback) , IIf( x>= LastValue(lastx) AND SECswitch==1 AND MbackL!=0,eUt,Null) , -1e10 ) ,"",ColorSEC,styleNoLabel); 

//Plot(IIf( x >= (lastx - Daysback) , IIf( x>= LastValue(lastx) AND SECswitch==1 AND MbackL!=0,eLt,Null) , -1e10 ),"",ColorSEC,styleNoLabel); 

//Price & ZigZag// 
Plot(Zig(C,Sens),"",IIf(ZZSwitch==1,colorSkyblue,BckGndColor),8+styleNoLabel); 

//.........................................................................................// 
//.........................................................................................// 
//.........................................................................................// 
//.........................................................................................//


//--Level 2
// RSI with SEC 
//RSI with AUTO SEC Version 1.0//
// v.1.0 Created By Kook 17 Nov 2005    //
// v.1.1  1st Update By Kook 18 Nov 2005 //
SECUpColor=ParamColor("SEC-UpColor",colorBrightGreen);
SECDnColor=ParamColor("SEC-DownColor",colorRed);
SECLastColor=ParamColor("SEC-LastColor",10);
BckGndColor=ParamColor("BackGroundColor",colorBlack);
ZZSwitch=Param("ZZSwitch",0,0,1,1);
SensInd=Param("SensInd",35,0.5,100,0.5);
SECLastColorInd=ParamColor("SECLastColorInd",10);
Ind=RSI(14);
Heading="RSI with AUTO SEC Version 1.0  RSI(14) = ";

BarPKInd=BarsSince(Zig(Ind,SensInd)==Peak(Ind,SensInd));
BarTGHInd= BarsSince(Zig(Ind,SensInd)==Trough(Ind,SensInd));
TurnpointInd=Min(BarPKInd,BarTGHInd);
xInd = Cum(1);
lastxInd = ValueWhen(TurnpointInd==0,( xInd ));
DaysbackInd= ValueWhen(TurnpointInd==0,(Max(PeakBars(Ind,SensInd,1),TroughBars(Ind,SensInd,1))))+1;

aaInd =ValueWhen(TurnpointInd==0,LinRegIntercept( Ind, DaysbackInd) );
bbInd =ValueWhen(TurnpointInd==0,LinRegSlope( Ind, DaysbackInd));
yInd = aaInd + bbInd * ( xInd - (lastxInd - DaysbackInd+1) );

eInd= ValueWhen(TurnpointInd==0,StdErr(Ind,DaysbackInd));
eUInd= yInd + 2*eInd;
eLInd= yInd - 2*eInd;

Color=IIf(Cross(bbInd,0) OR Cross(0,bbInd),BckGndColor,IIf(bbInd<0,SECDnColor,SECUpColor));
aatInd =LastValue(ValueWhen(TurnpointInd==0,LinRegIntercept( Ind, DaysbackInd) ));
bbtInd =LastValue(ValueWhen(TurnpointInd==0,LinRegSlope( Ind, DaysbackInd)));
ytInd = aatInd + bbtInd * ( xInd - (lastxInd - DaysbackInd+1) );
etInd= ValueWhen(TurnpointInd==0,StdErr(Ind,DaysbackInd));
eUtInd= ytInd + 2*etInd;
eLtInd= ytInd - 2*etInd;


PlotShapes(shapeUpArrow*Cross(Ind,eUInd),colorLightOrange,0,L,offset=-60);
PlotShapes(shapeDownArrow*Cross(eLInd,Ind),colorLightOrange,0,H,Offset=-60);
PlotShapes(shapeDigit2*Cross(Ind,eUInd),colorLightOrange,0,L,offset=-75);
PlotShapes(shapeDigit2*Cross(eLInd,Ind),colorLightOrange,0,H,Offset=75);


DaysbackLInd = LastValue(Min(PeakBars(Ind,SensInd,1),TroughBars(Ind,SensInd,1)));
SlopeInd= ValueWhen(TurnpointInd==0,bbInd,0);
LevelInd= ValueWhen(TurnpointInd==0,aaInd,0);
ErrInd= ValueWhen(TurnpointInd==0,eInd,0);

MbackInd= LevelInd + SlopeInd*( TurnpointInd) ;
UbackInd= MbackInd + 2*ErrInd;
LbackInd= MbackInd - 2*ErrInd;
WInd=(UbackInd-LbackInd)/sqrt((SlopeInd*SlopeInd)+1);
WInd2=ValueWhen(TurnpointInd==0,WInd,2);
WInd3=ValueWhen(TurnpointInd==0,WInd,3);
WInd4=ValueWhen(TurnpointInd==0,WInd,4);
WInd5=ValueWhen(TurnpointInd==0,WInd,5);
WInd6=ValueWhen(TurnpointInd==0,WInd,6);
WIndMean=(WInd2+WInd3+WInd4+WInd5+WInd6)/5;

///////Last SEC///////////////////
xInd = Cum(1);
lastxLInd = LastValue( xInd );
DaysbackLInd = LastValue(Min(PeakBars(Ind,SensInd,1),TroughBars(Ind,SensInd,1)))+1;
EndbarsInd= IIf(PeakBars(Ind,SensInd,1)<TroughBars(Ind,SensInd,1),LastValue(ValueWhen(Ind==LLV(Ind,DaysbackLInd),xInd)),LastValue(ValueWhen( Ind==HHV(Ind,DaysbackLInd),xInd)));
BarsLInd=Min(PeakBars(Ind,SensInd,1),TroughBars(Ind,SensInd,1)) ;

aaLInd = ValueWhen( Ref(EndbarsInd,-1)!=Ref(xInd,-1) AND EndbarsInd==xInd , LinRegIntercept( Ind, DaysbackLInd-(LastValue(xInd)-EndbarsInd)) );
bbLInd = ValueWhen( Ref(EndbarsInd,-1)!=Ref(xInd,-1) AND EndbarsInd==xInd , LinRegSlope( Ind, DaysbackLInd-(LastValue(xInd)-EndbarsInd)) );
eLInd= ValueWhen( Ref(EndbarsInd,-1)!=Ref(xInd,-1) AND EndbarsInd==xInd , StdErr(Ind,DaysbackLInd-(LastValue(xInd)-EndbarsInd)) );
SlopeLInd= LastValue(bbLInd); 
LevelLInd= LastValue(aaLInd); 
ErrLInd= LastValue(eLInd);

MbackLInd= LevelLInd + SlopeLInd*( BarsLInd) ;
UbackLInd= MbackLInd + 2*ErrLInd;
LbackLInd= MbackLInd - 2*ErrLInd;
WLInd=(UbackLInd-LbackLInd)/sqrt((SlopeLInd*SlopeLInd)+1);


PlotShapes( IIf(XInd>(LastValue(XInd)-DaysbackLInd),shapeHollowUpArrow*Cross(Ind,UbackLInd)  ,Null),10,0,L,Offset=-30);
PlotShapes( IIf(XInd>(LastValue(XInd)-DaysbackLInd),shapeHollowDownArrow*Cross(LbackLInd,Ind)  ,Null),10,0,H,Offset=-30);
PlotShapes( IIf(XInd>(LastValue(XInd)-DaysbackLInd),shapeDigit2*Cross(Ind,UbackLInd)  ,Null),10,0,L,Offset=-40);
PlotShapes( IIf(XInd>(LastValue(XInd)-DaysbackLInd),shapeDigit2*Cross(LbackLInd,Ind)  ,Null),10,0,H,Offset=40);
//.........................................................................................//
//.........................................................................................//
//.........................................................................................//
//.........................................................................................//


//-- Level1
//Divergence
PKD1=Peak(RSI(14),15,1);
PKD2=Peak(RSI(14),15,2);
PKDD1=PeakBars(RSI(14),15,1);
PKDD2=PeakBars(RSI(14),15,2);
TGD1=Trough(RSI(14),15,1);
TGD2=Trough(RSI(14),15,2);
TGDD1=TroughBars(RSI(14),15,1);
TGDD2=TroughBars(RSI(14),15,2);
Bullish=IIf((TGDD2-TGDD1)>7 AND TGD1 <50 AND TGD2<50 AND TGD1>TGD2 AND ( Ref(C,-TGDD1) < Ref(C,-TGDD2)),1,0);
Bearish=IIf((PKDD2-PKDD1)>7 AND PKD1 >50 AND PKD2>50 AND PKD1<PKD2 AND ( Ref(C,-PKDD1) > Ref(C,-PKDD2)),1,0);
PlotShapes(shapeDigit1*(Bullish==1 AND Ref(Bullish,-1)!=1),10,0,L,Offset=-50);
PlotShapes(shapeDigit1*(Bearish==1 AND Ref(Bearish,-1)!=1),10,0,H,Offset=50);
 



SensPT=Param("SensPT",1.5,0.5,15,0.5); 
PKPT=Peak(Close,SensPT,1); 
TGHPT=Trough(Close,SensPT,1); 
ColorPT=IIf(BarsSince(Cross(C,Ref(PKPT,-1)))<BarsSince(Cross(Ref(TGHPT,-1),C)),colorBrightGreen,colorRed); 
//Plot(Zig(C,SensPT),"",colorWhite);
PlotShapes( Cross(C,Ref(PKPT,-1)) *shapeUpArrow,colorPaleGreen,0,L,Offset=-55); 
PlotShapes( Cross(Ref(TGHPT,-1),C) *shapeDownArrow,colorPaleGreen,0,H,Offset=-55); 

//Title Module Begin
Change=C-Ref(C,-1);
Title=Name()+"   "+Date()+"   "+EncodeColor(colorPink)+""+EncodeColor(colorSkyblue)+" Vol="+NumToStr(Volume,1.2)+"\n         "+"O="+Open+"   H="+HHV(H,1)+"   L="+LLV(L,1)+"    Close="+ Close+"  ("+NumToStr(Change,1.2)+" )" +"\n";//Title Module End 
 

Previous
Next Post »