// Downloaded From https://www.WiseStockTrader.com
////////////////////////////////////
// CCI Price Panel For Amibroker
// Coded by Crasher_FL 
// Modified by Dennis 
/////////////////////////////// 
// Tic/PIP values: YM=1.0, ER2=0.10, NQ=0.25, EUR/USD=.0001, USD/JPY=0.01, Stocks=0.01
/////////////////////////////// 

// Background color
SetChartBkColor(ParamColor("Panel color ",colorPaleBlue)); 

TicDiv= Param("Tic or PIP value",1,0,1000000); 
Titledisplay= ParamToggle("Display pivot stats","No|Yes",1); 

barcolor = IIf(C > Open, colorWhite, IIf(C == Open, colorWhite, colorWhite)); 
Plot( C, "Close", barcolor,styleCandle | styleNoLabel);

EMA34 = EMA(C,34); 
LSMA = LinearReg(C,25); 
PI = atan(1.00) * 4; 
periods = 30; 
HighHigh = HHV(H, periods); 
LowLow = LLV(L, periods); 
range = 25 / (HighHigh - LowLow) * LowLow; 
x1_EMA34 = 0; 
x2_EMA34 = 2; 
y1_EMA34 = 0; 
y2_EMA34 = (Ref(EMA34, -2) - EMA34) / Avg * range; 
c_EMA34 = sqrt((x2_EMA34 - x1_EMA34)*(x2_EMA34 - x1_EMA34) + (y2_EMA34 -
y1_EMA34)*(y2_EMA34 - y1_EMA34)); 
angle_EMA34 = round(180 * acos((x2_EMA34 - x1_EMA34)/c_EMA34) / PI); 
TitleAngleEMA34 = EncodeColor(colorWhite) + "\nEMA34 angle = "; 
angle_EMA34 = IIf(y2_EMA34 > 0, - angle_EMA34, angle_EMA34); 
ColorANGLE_EMA = IIf(angle_EMA34 >=5,colorTurquoise,
IIf(angle_EMA34 <5 AND angle_EMA34 >=3.57,colorDarkGreen,
IIf(angle_EMA34 <3.57 AND angle_EMA34 >=2.14,colorPaleGreen,
IIf(angle_EMA34 <2.14 AND angle_EMA34 >=.71,colorLime,
IIf(angle_EMA34 <=-1*5,colorDarkRed,
IIf(angle_EMA34 >-1*5 AND angle_EMA34 <=-1*3.57,colorRed,
IIf(angle_EMA34 >-1*3.57 AND angle_EMA34 <=-1*2.14,colorOrange,
IIf(angle_EMA34 >-1*2.14 AND angle_EMA34 <=-1*.71,colorLightOrange,colorYellow))))))));
Plot(EMA34,"EMA 34",ColorANGLE_EMA, styleLine | styleThick | styleNoLabel ); 
Plot(lsma,"LSMA 25",IIf(C > lsma,colorBrightGreen, 
IIf(C == lsma,colorTeal,colorRed)), styleLine | styleThick |styleNoLabel);

//---- pivot points 
DayH = TimeFrameGetPrice("H", inDaily, -1);// yesterdays high 
DayL = TimeFrameGetPrice("L", inDaily, -1);//low 
DayC = TimeFrameGetPrice("C", inDaily, -1);//close 
DayO = TimeFrameGetPrice("O", inDaily);// current day open 
HiDay = TimeFrameGetPrice("H", inDaily); 
LoDay = TimeFrameGetPrice("L", inDaily); 
PP = (DayH + DayL + DayO + DayO) / 4 ; 
R1 = (2 * PP) - DayL; 
S1 = (2 * PP) - DayH; 
R2 = PP + R1 - S1; 
S2 = PP + S1 - R1; 
R3 = R2 + (R1 - PP); 
S3 = S2 - (PP - S1); 
style = styleLine | styleThick + styleNoRescale; 
rcolor = colorBlue; 
scolor = colorRed; 
pcolor = colorWhite; 
Plot(R1, "R1",rcolor,style); 
Plot(S1, "S1",scolor,style); 
Plot(R2, "R2",rcolor,style); 
Plot(S2, "S2",scolor,style); 
Plot(PP, "PP",pcolor,style); 
Plot(s3, "S3", scolor, style); 
Plot(R3, "R3", rcolor, style); 
RangeTitle = EncodeColor(colorWhite) + "Day Range= " + EncodeColor(colorWhite)
+ StrToNum(NumToStr(round((HiDay - LoDay)/ticdiv), 4.4));

// High/Low of the Day plotting. 
Hodcolorsheme=colorYellow;
LodColorscheme=colorDarkRed;
tempnum = TimeNum(); 
temphi[0] = H[0]; 
temphiColor[0] = Hodcolorsheme; 
templo[0] = L[0]; 
temploColor[0] = LodColorscheme; 
for( i = 1; i < BarCount; i++ ) 
{ 
if(tempnum[i] - tempnum[i-1] > Interval()) 
{ 
if(H[i] > temphi[i-1]) 
{ 
temphi[i] = H[i]; 

temphiColor[i] = Hodcolorsheme; 
} 
else 
{ 
temphi[i] = temphi[i-1]; 

temphiColor[i] = Hodcolorsheme; 
} 
if(L[i] < templo[i-1]) 
{ 
templo[i] = L[i]; 

temploColor[i] = LodColorscheme; 
} 
else 
{ 
templo[i] = templo[i-1]; 

temploColor[i] = LodColorscheme; 
} 
} 
else 
{ 
temphi[i] = H[i]; 

temphiColor[i] = Hodcolorsheme; 

templo[i] = L[i]; 

temploColor[i] = LodColorscheme; 
} 
} 
Plot(temphi,"", temphiColor,styleBar); 
Plot(templo,"", temploColor,styleBar);

Titledisplaycode = "\n"+"" +  EncodeColor(colorWhite) + Date() + "\n" + "\n" +
EncodeColor(colorWhite) + "O " + EncodeColor(colorWhite) + O + 
EncodeColor(colorWhite) + "     H " + EncodeColor(colorWhite) + H + 
EncodeColor(colorWhite) + "     L " + EncodeColor(colorWhite) + L + 
EncodeColor(colorWhite) + "     C " + EncodeColor(colorWhite) + C + "\n" + 
EncodeColor(rcolor) + "R3= " + EncodeColor(colorWhite) + R3 + "\n" +
EncodeColor(rcolor) + "R2= " + EncodeColor(colorWhite) + R2 + "\n" +
EncodeColor(rcolor) + "R1= " + EncodeColor(colorWhite) + R1 + "\n" +
EncodeColor(pcolor) + "PP= " + EncodeColor(colorWhite) + PP + "\n" +
EncodeColor(scolor) + "S1= " + EncodeColor(colorWhite) + S1 + "\n" +
EncodeColor(scolor) + "S2= " + EncodeColor(colorWhite) + S2+ "\n" +
EncodeColor(scolor) + "S3= " + EncodeColor(colorWhite) + S3 + "\n" +
EncodeColor(Hodcolorsheme) + "HOD= " + EncodeColor(colorWhite) + Hiday + "\n"
+
EncodeColor(LodColorscheme) + "LOD= " + EncodeColor(colorWhite) + Loday + "\n"
+ RangeTitle;

Title=WriteIf(Titledisplay==1,Titledisplaycode,"");