Home Shop

Selected System


Keltner Channel System


Generates buy and sell signals when the price closes above or below the upper or lower Keltner Bands. Uses r-squared and price oscillators as filters.

Long Entry Code(copy and paste into the Enhanced System Tester):
ktb:=Mov((H+L+C)/3,21,S) + Mov((H-L),21,S); pb:=Highest(Abs(OscP(3,10,S,$)))*.1; bsetup:=(C>ktb) AND (ROC(ktb,1,$)>0) AND (RSquared(C,14)>.25); bsig:= (Ref(Mov(OscP(3,10,S,$),16,S)+pb>OscP(3,10,S,$) AND OscP(3,10,S,$)>Mov(OscP(3,10,S,$),16,S) AND ROC(OscP(3,10,S,$),1,$)<0,-1) AND ROC(OscP(3,10,S,$),1,$)>0 ); bexit:=ROC(ktb,1,$)<0 OR ROC(OscP(3,10,S,$),1,$)<0; buy:=If(bsig AND (BarsSince(bsetup)<=BarsSince(bexit)),1,0); bt:=If(PREV<=0,If(buy,C,0),If(bexit,-1,PREV)); Cross(bt>0,0.5)
Long Exit Code(copy and paste into the Enhanced System Tester):
ktb:=Mov((H+L+C)/3,21,S) + Mov((H-L),21,S); pb:=Highest(Abs(OscP(3,10,S,$)))*.1; bsetup:=(C>ktb) AND (ROC(ktb,1,$)>0) AND (RSquared(C,14)>.25); bsig:= (Ref(Mov(OscP(3,10,S,$),16,S)+pb>OscP(3,10,S,$) AND OscP(3,10,S,$)>Mov(OscP(3,10,S,$),16,S) AND ROC(OscP(3,10,S,$),1,$)<0,-1) AND ROC(OscP(3,10,S,$),1,$)>0 ); bexit:=ROC(ktb,1,$)<0 OR ROC(OscP(3,10,S,$),1,$)<0; buy:=If(bsig AND (BarsSince(bsetup)<=BarsSince(bexit)),1,0); bt:=If(PREV<=0,If(buy,C,0),If(bexit,-1,PREV)); Cross(0,bt)
Short Entry Code(copy and paste into the Enhanced System Tester):
kbb:=Mov((H+L+C)/3,21,S) - Mov((H-L),21,S); pb:=Highest(Abs(OscP(3,10,S,$)))*.1; ssetup:=(C<kbb) AND (ROC(kbb,1,$)<0) AND (RSquared(C,14)>.25); ssig:= (Ref(Mov(OscP(3,10,S,$),16,S)-pb<OscP(3,10,S,$) AND OscP(3,10,S,$)<Mov(OscP(3,10,S,$),16,S) AND ROC(OscP(3,10,S,$),1,$)>0,-1) AND ROC(OscP(3,10,S,$),1,$)<0 ); sexit:=ROC(kbb,1,$)>0 OR ROC(OscP(3,10,S,$),1,$)>0; sell:=If(ssig AND (BarsSince(ssetup)<=BarsSince(sexit)),1,0); st:=If(PREV<=0,If(sell,C,0),If(sexit,-1,PREV)); Cross(st>0,0.5)
Short Exit Code(copy and paste into the Enhanced System Tester):
kbb:=Mov((H+L+C)/3,21,S) - Mov((H-L),21,S); pb:=Highest(Abs(OscP(3,10,S,$)))*.1; ssetup:=(C<kbb) AND (ROC(kbb,1,$)<0) AND (RSquared(C,14)>.25); ssig:= (Ref(Mov(OscP(3,10,S,$),16,S)-pb<OscP(3,10,S,$) AND OscP(3,10,S,$)<Mov(OscP(3,10,S,$),16,S) AND ROC(OscP(3,10,S,$),1,$)>0,-1) AND ROC(OscP(3,10,S,$),1,$)<0 ); sexit:=ROC(kbb,1,$)>0 OR ROC(OscP(3,10,S,$),1,$)>0; sell:=If(ssig AND (BarsSince(ssetup)<=BarsSince(sexit)),1,0); st:=If(PREV<=0,If(sell,C,0),If(sexit,-1,PREV)); Cross(0,st)