afl having errors
PHP:
/*These codes consist day to day 14 trading formulas namely
MACD,RSI,CCI,StochK,StochD,Money Flow Index,Ultimate,ROC(Close),Tom DeMark,ARSI,ProjOsc,DMI,StdevOsc,DeMarker
mostly in range of 0-100 that we use along with price charts n that execute our trade n along with these indicators i also put support n resistace zones for comfort of a trader namely trendlines, Fibonacc lines n standard deviation line
plus overbought n oversold zone(custom) in clouded area
plotted by - ankit dargan
*/
_SECTION_BEGIN("14 Oversold n Overbought indicators with Support n Resistance");
SetChartBkColor( colorGrey40 ) ;
SetChartOptions(0,0,ChartGrid30 | ChartGrid70 );
Pds=Param("Period",14,7,33,1);
Ob=Param("overbought",70,-200,200,5);
Os=Param("oversold",30,-200,200,5);
AutoOBOS = ParamToggle("Auto OS/OB", "No|Yes",1); //--Kelvinhand
/****Dimitri Code***********/
/*14-Day RSI of MACD()*/
//t=14; Replaced with pds= statement
/****Tom DeMark's Range Expansion Index***********/
function TDREI()
{
HighMom = H - Ref( H, -2 );
LowMom = L - Ref( L, -2 );
Cond1 = ( H >= Ref( L,-5) OR H >= Ref( L, -6 ) );
Cond2 = ( Ref( H, -2 ) >= Ref( C, -7 ) OR Ref( H, -2 ) >= Ref( C, -8 ) );
Cond3 = ( L <= Ref( H, -5 ) OR L <= Ref( H, -6) );
Cond4 = ( Ref( L, -2 ) <= Ref( C, -7 ) OR Ref( L, -2 ) <= Ref( C, -8 ) );
Cond = ( Cond1 OR Cond2 ) AND ( Cond3 OR Cond4 );
Num = IIf( Cond, HighMom + LowMom, 0 );
Den = abs( HighMom ) + abs( LowMom );
return 100 * Sum( Num, 5 )/Sum( Den, 5 ) ;
}
/****Tom DeMark's DeMarker***********/
function DeMarker(Prd)
{
highm = IIf( H > Ref( H, -1 ), H - Ref( H, - 1), 0 );
lowm = IIf( L < Ref( L, -1 ), Ref( L, - 1 ) - L, 0 );
return 100 * Sum( highm, Prd )/( Sum( lowm, Prd ) + Sum( highm, Prd ) );
}
/****ARSI formula***********/
// variable period version (backtest-safe)
function ARSI()
{
Chg = C - Ref( C, -1 );
UpCount = Sum( Chg >= 0, Pds );
DnCount = Pds - UpCount;
UpMove = AMA( Max( Chg, 0 ), 1/UpCount );
DnMove = AMA( Max( -Chg, 0 ), 1/DnCount );
RS = UpMove/DnMove;
return 100-(100/(1+RS));
}
/****Projection Oscillator***********/
function ProjOsc(Pds)
{
// Slope of High {n period regression line of High)}
SlopeHigh = ((Pds * (Sum( Cum(1) * High, Pds))) - (Sum( Cum(1),Pds) * (Sum(High, Pds)))) / ((Pds * Sum( Cum(1) ^ 2 , Pds)) - (Sum(Cum(1),Pds) ^ 2));
//Slope of Low {n period regression line of Low}
SlopeLow = ((Pds * (Sum( Cum(1) * Low, Pds))) - (Sum( Cum(1), Pds) * (Sum(Low, Pds)))) / ((Pds * Sum( Cum(1)^ 2, Pds)) - ( Sum(Cum(1),Pds) ^ 2));
//Upper Projection Band
UpProjBand = 0;
LoProjBand = 10000;
for (i=0; i<Pds-1; i++)
{
UpProjBand = Max(Max(Ref(High,-i)+i*slopehigh,Ref(High,-i-1)+(i+1)*slopehigh),UpProjBand);
LoProjBand = Min(Min(Ref(Low,-i)+i*slopelow,Ref(Low,-i-1)+(i+1)*slopelow),LoProjBand);
}
return 100 * (Close - LoProjBand) / (UpProjBand - LoProjBand);
}
/* -- sample usage
aa= ProjOsc(Pds);
bb= MA(ProjOsc(Pds),av);
Plot(aa,"Projection Osc",colorBrightGreen,styleLine);
Plot(bb,"MA ProjOsc",colorRed,styleLine);
*/
/****Dynamic Momentum Index***********/
//period = Param( "RSI Period", 13, 1, 100, 1 );
//MAperiod = Param( "MA Period", 5, 1, 100, 1 );
//StDevperiod = Param( "StDev Period", 8, 1, 100, 1 );
function DMI(MA_prd, StDPrd)
{
upday=IIf(C>Ref(C,-1),C-Ref(C,-1),0);
downday=IIf(Ref(C,-1)> C,Ref(C,-1)-C,0);
Stda=MA(sd=StDev(C,StDPrd),MA_prd);//by default 5 is maperiod n 8 is stdevperiod
V1=SD/Stda;
TD=int(Pds/V1);
Su=Sum(upday,TD);
Sd=Sum(downday,TD);
M1=(Su-Sd);
M2=abs(Su+Sd);
return 50*(M1+M2)/M2;
}
//xs=Param("Smoothing",3,1,10,1);
//xs1=Param("Trigger Line",5,1,10,1);
//Plot(EMA(DMI,xs),"Dynamic Momentum Index ",colorRed,1);
//Plot(MA(DMI,xs1),"trigger",colorBlue,1);
/****Stddev Oscillator***********/
StdevOsc=( ( C+2 * StDev( C,pds ) - MA( C,pds ) ) / ( 4 * StDev( C,pds ) ) ) * 100;
/*******Variables******************/
//--Kelvinhand Use Switch...Case for easier future expension
oc=ParamList("Oscillator choice","RSI of MACD|RSI|CCI|StochK|StochD|Money Flow Index|Ultimate|ROC(Close)|Tom DeMark|ARSI|ProjOsc|DMI|StdevOsc|DeMarker",1);
switch (Oc)
{
case "RSI of MACD":
Osc = RSIa(MACD(),Pds);
break;
case "RSI":
Osc = RSI(pds);
break;
case "CCI":
if (AutoOBOS) {
Ob=100; Os=-100;
}
Osc =CCI(pds);
break;
case "StochK":
if (AutoOBOS) {
Ob=80; Os=20;
}
addload=StochK(pds); //-- Kelvinhand:Stochk bug
Osc=StochK(pds);
break;
case "StochD":
if (AutoOBOS) {
Ob=80; Os=20;
}
addload=StochD(pds); //-- Kelvinhand:Stochk bug
Osc=StochD(pds);
break;
case "Money Flow Index":
Osc=MFI(pds);
break;
case "Ultimate":
Osc=Ultimate(pds);
break;
case "ROC(Close)":
Osc=ROC(C,pds);
break;
case "Tom DeMark":
Osc=TDREI();
break;
case "ARSI":
Osc=ARSI();
break;
case "ProjOsc":
Osc=ProjOsc(Pds);
break;
case "DMI":
Osc= DMI(5,8);
break;
case "StdevOsc":
Osc=StdevOsc;
break;
case "DeMarker":
Osc=DeMarker(13);
break;
//-- Extension from here ------
}
/*Value of Osc*/
Value1 = Osc;
Plot(Osc, Oc, colorBlue,styleThick);
PlotOHLC( Osc,Osc,50,Osc, "", IIf( Osc > 50, colorRed, colorGreen ), styleCloud|styleClipMinMax, Os, Ob );
Buy = Cross (Osc, Os);
Sell = Cross (Ob, Osc);
PlotShapes(Buy*shapeUpArrow,colorGreen);
PlotShapes(Sell*shapeDownArrow,colorRed);
Plot(Os,"",colorAqua,1+4);
Plot(Ob,"",colorPink,1+4);
_SECTION_END();
_SECTION_BEGIN("SUPPORT/RESISTANCE");
SelectedIndicator = ParamList( "SUPPORT/RESISTANCE", "Trendlines_Wedge,fibo,STDDEVLNES", 0);
_SECTION_BEGIN("STDDEVLNES");
Daysback = Param("Period for Liner Regression Line",21,1,44000,1);
shift = Param("Look back period",0,0,240,1);
LRColor = ParamColor("LR Color", colorRed );
SDP = Param("Standard Deviation", 1.3, 0, 13, 0.1);
SDColor = ParamColor("SD Color", colorYellow );
SDP2 = Param("2d Standard Deviation", 2.1, 0, 13, 0.1);
SDColor2 = ParamColor("2 SD Color", colorBrightGreen );
SDP3 = Param("3d Standard Deviation", 3.4, 0, 13, 0.1);
SDColor3 = ParamColor("3 SD Color", colorRed );
_SECTION_END();
switch ( SelectedIndicator )
{
case "STDDEVLNES":
_SECTION_BEGIN("STDDEVLNES");
P = Value1;
// =============================== Math Formula =============================================================
x = BarIndex();
lastx = LastValue( x ) - shift;
aa = LastValue( Ref(LinRegIntercept( p, Daysback), -shift) );
bb = LastValue( Ref(LinRegSlope( p, Daysback ), -shift) );
y = Aa + bb * ( x - (Lastx - DaysBack +1 ) );
// ==================Plot the Linear Regression Line ==========================================================
LRLine = IIf( x > (lastx - Daysback) AND x < Lastx, y, Null );
Plot( LRLine , "LinReg", LRCOLOR, styleLine+4 ); // styleDots );
// ========================== Plot 1st SD Channel ===============================================================
SD = SDP/2;
width = LastValue( Ref(SD*StDev(p, Daysback),-shift) ); // THIS IS WHERE THE WIDTH OF THE CHANELS IS SET
SDU = IIf( x > (lastx - Daysback) AND x < Lastx, y+width , Null ) ;
SDL = IIf( x > (lastx - Daysback) AND x < Lastx, y-width , Null ) ;
Plot( SDU , "Upper Lin Reg", SDColor,styleLine );
Plot( SDL , "Lower Lin Reg", SDColor,styleLine );
// ========================== Plot 2d SD Channel ===============================================================
SD2 = SDP2/2;
width2 = LastValue( Ref(SD2*StDev(p, Daysback),-shift) ); // THIS IS WHERE THE WIDTH OF THE CHANELS IS SET
SDU2 = IIf( x > (lastx - Daysback) AND x < Lastx, y+width2 , Null ) ;
SDL2 = IIf( x > (lastx - Daysback) AND x < Lastx, y-width2 , Null ) ;
Plot( SDU2 , "Upper Lin Reg", SDColor2,styleLine );
Plot( SDL2 , "Lower Lin Reg", SDColor2,styleLine );
// ========================== Plot 3d SD Channel ===============================================================
SD3 = SDP3/2;
width3 = LastValue( Ref(SD3*StDev(p, Daysback),-shift) ); // THIS IS WHERE THE WIDTH OF THE CHANELS IS SET
SDU3 = IIf( x > (lastx - Daysback) AND x < Lastx, y+width3 , Null ) ;
SDL3 = IIf( x > (lastx - Daysback) AND x < Lastx, y-width3 , Null ) ;
Plot( SDU3 , "Upper Lin Reg", SDColor3,styleDashed+4 );
Plot( SDL3 , "Lower Lin Reg", SDColor3,styleDashed+4 );
_SECTION_END();
break;
case "Trendlines_Wedge":
_SECTION_BEGIN("Trendlines_Wedge");
G=0;// set G=1, 2, 3, ... to see previous Resistance trendlines
GG=0;// set G=1, 2, 3, ... to see previous Support trendlines
x = Cum(1);
per = 1;// sensitivity calibration
s1=Value1;s11=Value1;
pS = TroughBars( s1, per, 1 ) == 0;
endt= LastValue(ValueWhen( pS, x, 1+GG ));
startt=LastValue(ValueWhen( pS, x, 2+GG ));
dtS =endt-startt;
endS = LastValue(ValueWhen( pS, s1, 1+GG ) );
startS = LastValue( ValueWhen( pS, s1, 2+GG ));
aS = (endS-startS)/dtS;
bS = endS;
trendlineS = aS * ( x -endt ) + bS;// the Support trendline equation
Plot(IIf(x>startt-6 AND TRENDLINES>0 AND TRENDLINES<100,trendlineS,-1e10),"Support",IIf(as>0,5,4),8);
pR = PeakBars( s11, per, 1 ) == 0;
endt1= LastValue(ValueWhen( pR, x, 1+G ));
startt1=LastValue(ValueWhen( pR, x, 2+G ));
dtR =endt1-startt1;
endR = LastValue(ValueWhen( pR, s11, 1+G ) );
startR = LastValue( ValueWhen( pR, s11, 2 +G ));
aR = (endR-startR)/dtR;
bR = endR;
trendlineR = aR * ( x -endt1 ) + bR;// the Resistance trendline equation
Plot(IIf(x>startT1-6 AND TRENDLINER>0 AND TRENDLINER<100,trendlineR,-1e10),"Resistance",IIf(Ar>0,5,4),8);
Ascwedge=Ar>0.5 AND As>sqrt(2)*Ar AND trendlineR>trendlineS;
Descwedge= As<-0.5 AND As>Ar/sqrt(2) AND trendlineR>trendlineS;
_SECTION_END();
break;
case "fibo":
_SECTION_BEGIN("fibo");
barvisible = Status("barvisible");
r = Value1;
maxr = LastValue( Highest( IIf( barvisible, r, 0 ) ) );
minr = LastValue( Lowest( IIf( barvisible, r, 100 ) ) );
ranr = maxr - minr;
Plot( maxr , "0%", colorGrey50,styleDashed );
Plot( maxr - 0.236 * ranr, "-23.6%", colorViolet,styleDashed+4 );
Plot( maxr - 0.382 * ranr, "-38.2%", colorYellow,styleDashed );
Plot( maxr - 0.50 * ranr, "-50.0%", colorOrange,styleDashed,styleDashed );
Plot( maxr - 0.618 * ranr, "-61.8%", colorViolet,styleDashed+4 );
Plot( minr , "-100%", colorGrey50,styleDashed );
GraphXSpace = 3;
_SECTION_END();
break;
}
_SECTION_END();