// Downloaded From https://www.WiseStockTrader.com
_SECTION_BEGIN("MA Difference 20 Period"); 
//------------------------------------------------------------------------------ 
// Note:  This formula is not my creation I found from my friends which work fine.
// T=20; /*Time Period for MA*/ 
// 
// KMA=((C-MA(C,T))/MA(C,T))*100; 
// 
// GRAPH0=KMA; 
// 
// GRAPH0STYLE=2+4; 
// 
// GRAPH0BARCOLOR=iif(KMA>0,5,4); 
// 
// graphxspace=5; 
// 
// title=name()+" "+date()+" The Close is 
// "+writeval(abs(KMA),format=1.2)+"%"+writeif(KM A>0, " above"," below")+" the 
// 20 period MA"; 
// 
// Mark Grid lines: 
// 
// Level 0 
// 
// Limits 
// 
// Show dates 
// 
// Percent 
// 
// Middle 
// 
//------------------------------------------------------------------------------ 
  
/*MA Diff 20*/
T=20; /*Time Period for MA*/
KMA=((C-MA(C,T))/MA(C,T))*100; 
Graph0=KMA; 
Graph0Style=2+4; 
Graph0BarColor=IIf(KMA>0,5,4); 
GraphXSpace=5; 
  
Title=Name()+" "+Date()+" The Close is "+WriteVal(abs(KMA),format=1.2)+"%"+WriteIf(KMA>0, " above"," below")+" the 13 period MA"; 
_SECTION_END(); 
  
_SECTION_BEGIN("Price"); 
SetChartOptions(0,chartShowArrows|chartShowDates); 
_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) )); 
Plot( C, "Close", ParamColor("Color", colorBlack ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() ); 
_SECTION_END(); 
  
//------------------------------------------------------------------------------ 
// 
_SECTION_BEGIN("ZIG - Zig"); 
P = ParamField( "Price field" ); 
change = Param("% change",5,0.1,25,0.1); 
Plot( Zig(P, change), _DEFAULT_NAME(), ParamColor( "Color", colorCycle ), ParamStyle("Style") ); 
_SECTION_END(); 
  
// Paste the code below to your price chart somewhere and green ribbon means both 
// both MACD and ADX trending up so if the red ribbon shows up the MACD and the ADX 
// are both trending down. 
  
_SECTION_BEGIN("trending ribbon"); 
uptrend=PDI()>MDI()AND Signal()<MACD(); 
downtrend=MDI()>PDI()AND Signal()>MACD(); 
  
  
Plot( 2, /* defines the height of the ribbon in percent of pane width */"ribbon", 
IIf( uptrend, colorGreen, IIf( downtrend, colorRed, 0 )), /* choose color */
styleOwnScale|styleArea|styleNoLabel, -0.5, 100 ); 
  
_SECTION_END(); 
  
_SECTION_BEGIN("EMA"); 
P = ParamField("Price field",-1); 
Periods = Param("Periods", 15, 2, 300, 1, 10 ); 
Plot( EMA( P, Periods ), _DEFAULT_NAME(), ParamColor( "Color", colorCycle ), ParamStyle("Style") ); 
_SECTION_END(); 
  
_SECTION_BEGIN("MACD Exploration"); 
r1 = Param( "Fast avg", 12, 2, 200, 1 ); 
r2 = Param( "Slow avg", 26, 2, 200, 1 ); 
r3 = Param( "Signal avg", 9, 2, 200, 1 ); 
Z=Param("zig",1,0,10,0.1); 
  
  
Cond1 = Cross(MACD(r1,r2),Signal(r1,r2,r3)); 
  
Cond3 = Zig(C,z)>Ref(Zig(C,z),-4); 
Buy = Cond1 AND Cond3; 
  
Cond4 = Cross(Signal(r1,r2,r3),MACD(r1,r2)); 
  
Cond6 = Zig(C,z)<Ref(Zig(C,z),-4); 
Sell = Cond4 AND Cond6; 
Trigger = WriteIf(Buy, "Buy", "") + WriteIf(Sell, "Sell", ""); 
  
_N(Title = StrFormat("{{NAME}} {{DATE}} {{INTERVAL}}: O=%1.2f, H=%1.2f, L=%1.2f, C=%1.2f, V=%1.0f\n{{VALUES}}", O, H, L, C, V)); 
  
BG = IIf(Buy, colorPaleGreen, IIf(Sell, colorRose, colorDefault)); 
FG = IIf(Buy, colorDarkGreen, IIf(Sell, colorDarkRed, colorDefault)); 
  
if(Status("action") == actionIndicator) 
{ 
Plot(C, "", colorGrey50, styleBar); 
PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorAqua, 0, L, Offset=-15); 
PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorPaleGreen, 0,L, Offset=-25); 
PlotShapes(IIf(Buy, shapeUpArrow, shapeNone),colorDarkGreen, 0,L, Offset=-20); 
PlotShapes(IIf(Sell, shapeSquare, shapeNone),colorRose, 0, H, Offset=15); 
PlotShapes(IIf(Sell, shapeSquare, shapeNone),colorPink, 0,H, Offset=25); 
PlotShapes(IIf(Sell, shapeDownArrow, shapeNone),colorRed, 0,H, Offset=-20); 
  
} 
  
if(Status("action") == actionExplore) 
  
Filter = Buy OR Sell; 
SetOption("NoDefaultColumns", True); 
  
AddTextColumn(Name(), "Symbol", 77, FG, BG, 120); 
AddColumn(DateTime(), "Date", formatDateTime, FG, BG, 100); 
AddColumn(TimeNum() ,"Time",1); 
AddColumn( C, "Close", 1.3 ); 
AddColumn( H, "High", 1.3 ); 
AddColumn(V, "Volume"); 
AddColumn(Ref(V,-1),"P-Vol"); 
AddColumn(V/Ref(V,-1)*100,"Increase in Vol"); 
AddColumn( Buy, "Buy", 1 ); 
AddColumn( Sell, "Sell", 1 ); 
  
shape = Buy * shapeHollowUpTriangle + Sell * shapeHollowDownTriangle; 
  
Plot( Close, "Price", colorBlack, styleCandle ); 
  
PlotShapes( shape, IIf( Buy, colorBlue, colorBlue ), 0, IIf( Buy, Low, High ) ); 
  
GraphXSpace = 7; 
  
shape = Buy * shapeUpTriangle + Sell * shapeHollowDownTriangle; 
  
Plot( Close, "Price", colorBlack, styleCandle ); 
  
PlotShapes( shape, IIf( Buy, colorBlue, colorBlue ), 0, IIf( Buy, Low, High ) ); 
  
GraphXSpace = 7; 
_SECTION_END(); 
  
_SECTION_BEGIN("EMA3"); 
P = ParamField("Price field",-1); 
Periods = Param("Periods", 15, 2, 300, 1, 10 ); 
Plot( EMA( P, Periods ), _DEFAULT_NAME(), ParamColor( "Color", colorCycle ), ParamStyle("Style") ); 
_SECTION_END(); 
  
_SECTION_BEGIN("Time Left"); 
function GetSecondNum() 
{ 
Time = Now( 4 ); 
Seconds = int( Time % 100 ); 
Minutes = int( Time / 100 % 100 ); 
Hours = int( Time / 10000 % 100 ); 
SecondNum = int( Hours * 60 * 60 + Minutes * 60 + Seconds ); 
return SecondNum; 
} 
RequestTimedRefresh( 1 ); 
TimeFrame = Interval(); 
SecNumber = GetSecondNum(); 
Newperiod = SecNumber % TimeFrame == 0; 
SecsLeft = SecNumber - int( SecNumber / TimeFrame ) * TimeFrame; 
SecsToGo = TimeFrame - SecsLeft; 
  
x=Param("xposn",300,0,1000,1); 
y=Param("yposn",50,0,1000,1); 
  
GfxSelectSolidBrush( ColorRGB( 230, 230, 230 ) ); 
GfxSelectPen( ColorRGB( 230, 230, 230 ), 2 ); 
if ( NewPeriod ) 
{ 
GfxSelectSolidBrush( colorYellow ); 
GfxSelectPen( colorYellow, 2 ); 
Say( "New period" ); 
} 
GfxRoundRect( x+45, y+17, x-3, y-2, 0, 0 ); 
GfxSetBkMode(1); 
GfxSelectFont( "Arial", 12, 700, False ); 
GfxSetTextColor( colorBlack ); 
GfxTextOut( ""+SecsToGo+" / "+NumToStr( TimeFrame, 1.0 ), x, y ); 
_SECTION_END();