Monday, June 13, 2011

Still working on Mean Reversion system

I am trying to impliment mean reversion using David stendhal chart system.

Basic code -

#include ;
//// Vchart
//This was converted from code created for TradeStation by Mark W. Helweg of
//ValueCharts.com
VarNumbars = Param("Number of Bars",5,2,1000,1);
Color = Param("Bar Color",colorBlue);
Top = Param("Top Chart Line",7);
TopMid = Param("Top Mid Chart Line",4);
BottomMid = Param("Bottom Mid Chart Line",-4);
Bottom = Param("Bottom Chart Line",-7);
Plot(Top,"Top Chart Line",colorRed);
Plot(TopMid,"Top Mid Chart Line",colorLightGrey);
Plot(BottomMid,"Bottom Mid Chart Line",colorLightGrey);
Plot(Bottom,"Bottom Chart Line",colorRed);

LRange = 0;
VarP = round(VarNumBars/5);
if (VarNumBars > 7)
{
VarA=HHV(H,VarP)-LLV(L,VarP);
VarR1 = IIf(VarA==0 AND VarP==1,abs(C-Ref(C,-Varp)),VarA);
VarB=Ref(HHV(H,VarP),-VarP+1)-Ref(LLV(L,VarP),-VarP);
VarR2 = IIf(VarB==0 AND VARP==1,abs( Ref(C,-VarP)-Ref(C,-Varp*2) ),VarB);
VarC=Ref(HHV(H,VarP),-VarP*2)-Ref(LLV(L,VarP),-VarP*2);
VarR3 = IIf(VarC == 0 AND VarP==1,abs(Ref(C,-Varp*2)-Ref(C,-Varp*3)),VarC);
VarD = Ref(HHV(H,VarP),-VarP*3)-Ref(LLV(L,VarP),-VarP*3);
VarR4 = IIf(VarD == 0 AND VarP==1,abs(Ref(C,-Varp*3)-Ref(C,-Varp*4)),VarD);
VarE = Ref(HHV(H,VarP),-VarP*4)-Ref(LLV(L,VarP),-VarP*4);
VarR5 = IIf(VarE == 0 AND VarP==1,abs(Ref(C,-Varp*4)-Ref(C,-Varp*5)),VarE);
LRange=((VarR1+VarR2+VarR3+VarR4+VarR5)/5)*.2;
};


CDelta = abs(C - Ref(C,-1));
if (VarNumBars <=7) { Var0 = IIf(CDelta > (H-L) OR H==L,CDelta,(H-L));
LRange = MA(Var0,5)*.16;
}
MidBarAverage = MA( (H+L)/2,VarNumbars);
VOpen = (Open- MidBarAverage)/LRange;
VHigh = (High-MidBarAverage)/LRange;
VLow = (Low-MidBarAverage)/LRange;
VClose = (Close-MidBarAverage)/LRange;
MAFilter2 = ROC(Foreign("SPY","C"),50) > 0 ;
MAFilter4 = ROC(Foreign("SPY","C"),50) < 0 ; BuyCond = VClose < -6 AND MAFilter2 ;//AND DVO(180) < 20;// AND Ref(DVO,-1)< DVO AND MAFilter2 AND MAFilter ; //PositionScore = IIf(BuyCond, (100-DVO),(IIf(ShortCond,DVO,0))); Buy = BuyCond ; Sell = VClose > 6 OR DVO(180) > 70 ;//AND AggregateM < .7 ;// Short = VClose > 8 AND MAFilter4 AND C