Stock Portfolio Organizer

The ultimate porfolio management solution.

Shares, Margin, CFD's, Futures and Forex
EOD and Realtime
Dividends and Trust Distributions
And Much More ....
For Portfolio Manager Click Here

WiseTrader Toolbox

#1 Selling Amibroker Plugin featuring:

Advanced Adaptive Indicators
Advanced Pattern Exploration
Neural Networks
And Much More ....
Find Out More Here

Nirvana XeL MOD 1.5a for Amibroker (AFL)
xel
over 11 years ago
Amibroker (AFL)

Rating:
3 / 5 (Votes 4)
Tags:
trading system, amibroker, advanced

Hi Folks, I like this time to share with you my personal MOD of the so popular Nirvana Indicator, originally coded and freely shared by MRTQ13.

I tweaked some indicators for my personal use, and added an “Information HUD” that additionaly can show RealTime DATA. But all the main functionality and logic given by the original Nirvana still’s there.

Please note that in order to use this AFL, you need to download the includes and pluggins distributed with “The Foundation by Southwind 13.00 Int” from that you should found here: http://www.wisestocktrader.com/indicators/174-the-foundation-by-southwind-v-13-00-int.

Enjoy!

X e L
2012

Screenshots

Similar Indicators / Formulas

Visual BackTest
Submitted by sethmo over 10 years ago
TD Setup
Submitted by ferpa almost 11 years ago
10 Day Moving Average System
Submitted by sonyhiren11 almost 11 years ago
Komunitas Modified
Submitted by tm832 over 13 years ago
NMA-swing-trading-system-NMA I.T v-3
Submitted by cnbondre almost 14 years ago
TTS system V 4
Submitted by jaipal7786 about 11 years ago

Indicator / Formula

Copy & Paste Friendly
//Nirvana Indicator
//Original ensable AFL by MRTQ13. 
//XeL MOD Ver. 1.5a - 20 08 2012
//@XeL_Arjona 2012
//====================================================================================

SetChartOptions(0,chartShowArrows|chartShowDates);


_SECTION_BEGIN("Title Information");
// The Title
Title =
EncodeColor(colorYellow)+ "NiRVANA INDICATOR : "+ EncodeColor(colorOrange) + "XeL MOD Ver. 1.5a   |   "
+EncodeColor(colorTurquoise)+ "Time Frame : "+ EncodeColor(colorGold)+ Title = Interval (2) + "   |   " 
+EncodeColor(colorTurquoise)+ "Date : "+ EncodeColor(colorLightGrey) + Date() + "   |   " 
+EncodeColor(colorTurquoise)+ "Open : "+ EncodeColor(colorLightGrey)+ O + "    "
+EncodeColor(colorTurquoise)+ "High : "+ EncodeColor(colorLightGrey)+ H + "    "
+EncodeColor(colorTurquoise)+ "Low : "+ EncodeColor(colorLightGrey)+ L + "   |   " 

+EncodeColor(colorTurquoise)+ "Volume : " + WriteIf(V > Ref(V, -1),EncodeColor(colorBrightGreen),EncodeColor(colorRed))+ WriteVal(V,1)
;
_SECTION_END(); 

_SECTION_BEGIN("Information Ticker 1.00.b by XeL");
if ( ParamToggle("XeL Information Hud","Off|On",1) )
{
// Price Background Plate
GfxSelectSolidBrush( colorBlack );
GfxSelectPen( colorBlack );
GfxRoundRect(135,149,360,59,8,8);
// Radar Title
//GfxSelectFont("Arial", 9, 700, italic = False, underline = False, True );
//GfxSetBkMode( colorWhite );
//GfxSetTextColor( colorTurquoise );
//GfxTextOut("SiGNAL RADAR", 30 , 157 );
// Ticker
GfxSelectFont("Arial", 25, 700, italic = True, underline = False, True );
GfxSetBkColor( colorBlack );
GfxSetBkMode( 2 );
GfxSetTextColor( ParamColor("Symbol Color:",colorLightBlue) );
GfxTextOut(Name(), 142 , 20 );
// DescriptionGfxSelectFont("Arial", 10, 700, italic = False, underline = False, True );
GfxSelectFont("Arial", 10, 700, italic = False, underline = False, True );
GfxSetBkColor( colorBlack );
GfxSetBkMode( 2 );
GfxSetTextColor( ParamColor("Description Color:",colorLightGrey) );
GfxTextOut(FullName(), 142 , 60 );
// Close Price
GfxSelectFont("Arial", 9, 700, italic = False, underline = False, True );
GfxSetBkColor( colorBlack );
GfxSetBkMode( 2 );
GfxSetTextColor( colorTurquoise );
GfxTextOut("CLOSED PRICE", 142 , 85 );
GfxSelectFont("Arial", 14, 700, italic = False, underline = False, True );
GfxSetBkColor( colorBlack );
GfxSetBkMode( 2 );
gfxcup	= SelectedValue(C > Ref(C,-1));
gfxpcolor = IIf(gfxcup,colorBrightGreen,colorRed);
GfxSetTextColor(gfxpcolor);
GfxTextOut( ""+ WriteVal(C,1.3), 242 , 78 );
// Price Change
GfxSelectFont("Arial", 8.5, 700, italic = False, underline = False, True );
GfxSetBkColor( colorBlack );
GfxSetBkMode( 2 );
GfxSetTextColor( colorTurquoise );
GfxTextOut("Change:", 182 , 104 );
GfxSelectFont("Arial", 9, 700, italic = False, underline = False, True );
GfxSetBkColor( colorBlack );
GfxSetBkMode( 2 );
GfxSetTextColor(gfxpcolor);
GfxTextOut( "[ "+WriteVal(abs(C-Ref(C,-1)),1.3,separator=False)+" / "+WriteVal(abs( ROC( C, 1 )),1.3,separator=False)+" % ]", 242 , 103 );
// Money Flow
GfxSelectFont("Arial", 9, 700, italic = False, underline = False, True );
GfxSetBkColor( colorBlack );
GfxSetBkMode( 2 );
GfxSetTextColor( colorTurquoise );
GfxTextOut("MONEY FLOW", 142 , 129 );
GfxSelectFont("Arial", 9, 700, italic = True, underline = False, True );
GfxSetBkColor( colorBlack );
GfxSetBkMode( 2 );
gfxvolup = SelectedValue(V > Ref(V,-1));
gfxvolcolor = IIf(gfxvolup,colorBrightGreen,colorRed);
GfxSetTextColor(gfxpcolor);
GfxTextOut( ""+WriteVal(V*C,1), 242 , 129 );
if ( ParamToggle("RealTime Information","Off|On",1) )
{
//	BID - ASK Hud
//		Variables
// 		RealTime Variables
rtBid			=	GetRTData("Bid");
rtAsk			=	GetRTData("Ask");
rtBz			=	GetRTData("BidSize");
rtAz			=	GetRTData("AskSize");
rtSpdz			=	abs( rtBz - rtAz );
rtSpd			=	abs( rtBid - rtAsk );
rtSpdPct		=	(( rtSpd / C) * 100 );
rtSpdBuyCol	=	SelectedValue( rtBid > rtAsk );
rtSpdColor		=	IIf( rtSpdBuyCol, colorBrightGreen,colorRed );
rtSpdzBuyCol	=	SelectedValue( rtBz > rtAz );
rtSpdzColor	=	IIf( rtSpdzBuyCol, colorBrightGreen,colorRed );
//		Background Boxes
//		MAIN Box
GfxSelectSolidBrush( colorBlack );
GfxSelectPen( colorBlack );
GfxRoundRect(10,158,130,302,8,8);
//		BID Box
GfxSelectSolidBrush( colorBrightGreen );
GfxSelectPen( colorBrightGreen );
GfxRoundRect(10,158,69,240,8,8);
//		ASK Box
GfxSelectSolidBrush( colorRed );
GfxSelectPen( colorRed );
GfxRoundRect(71,158,130,240,8,8);
// BID Header
GfxSelectFont("Arial",12, 700, italic = False, underline = False, True );
GfxSetBkColor( colorBlack );
GfxSetBkMode( 1 );
GfxSetTextColor( colorBlack );
GfxTextOut( "B I D", 23 , 168 );
GfxSelectFont("Arial",8, 700, italic = False, underline = False, True );
GfxTextOut( "Size", 29 , 208 );
// BID Price
GfxSelectFont("Arial",10, 700, italic = False, underline = False, True );
GfxSetBkColor ( colorBlack );
GfxSetBkMode( 1 );
GfxSetTextColor( colorBlack );
GfxTextOut( ""+WriteVal(rtBid,1.2, separator = False), 15 , 190 );
GfxSelectFont("Arial",8, 700, italic = False, underline = False, True );
GfxTextOut( ""+WriteVal(rtBz,1), 15 , 222 );
// ASK Header
GfxSelectFont("Arial",12, 700, italic = False, underline = False, True );
GfxSetBkColor( colorWhite );
GfxSetBkMode( 1 );
GfxSetTextColor( colorWhite );
GfxTextOut( "A S K", 78 , 168 );
GfxSelectFont("Arial",8, 700, italic = False, underline = False, True );
GfxTextOut( "Size", 89 , 208 );
// ASK Price
GfxSelectFont("Arial",10, 700, italic = False, underline = False, True );
GfxSetBkColor ( colorBlack );
GfxSetBkMode( 1 );
GfxSetTextColor( colorWhite );
GfxTextOut( ""+WriteVal(rtAsk,1.2, separator = False), 78 , 190 );
GfxSelectFont("Arial",8, 700, italic = False, underline = False, True );
GfxTextOut( ""+WriteVal(rtAz,1), 78 , 222 );
// Spread Header
GfxSelectFont("Arial",8, 700, italic = False, underline = False, True );
GfxSetBkColor( colorBlack );
GfxSetBkMode( 1 );
GfxSetTextColor( colorTurquoise );
GfxTextOut( "S     P     R     E     A     D", 11 , 242 );
// Spread Value
GfxSelectFont("Arial",9, 700, italic = False, underline = False, True );
GfxSetBkColor ( colorBlack );
GfxSetBkMode( 1 );
GfxSetTextColor( rtSpdColor );
GfxTextOut( ""+WriteVal(rtSpd,1.2)+"   [ "+WriteVal(rtSpdPct,1.2)+" % ]", 11 , 255 );
GfxSelectFont("Arial",8, 700, italic = False, underline = False, True );
GfxSetTextColor( colorTurquoise );
GfxTextOut( "S i z e   D i f f", 34 , 272 );
GfxSelectFont("Arial",9, 700, italic = False, underline = False, True );
GfxSetBkColor ( colorBlack );
GfxSetTextColor( rtSpdzColor );
GfxTextOut( ""+WriteVal(rtSpdz,1), 45 , 285 );
}
// Change & Performance
//GfxSelectFont("Arial", 15, 700, italic = False, underline = False, True );
//GfxSetBkMode( colorWhite );
//GfxSetTextColor( colorTurquoise );
//GfxTextOut("CHANGE : [                        /                  ]", 140 , 127 );
//GfxSelectFont("Arial", 15, 700, italic = False, underline = False, True );
//GfxSetBkMode(colorWhite);
//gfxcup	= SelectedValue(C > Ref(C,-1));
//gfxcolor = IIf(gfxcup,colorLime,colorRed);
//GfxSetTextColor(gfxcolor);
//GfxTextOut( ""+WriteVal(C-Ref(C,-1))+" pts.   "+WriteVal( ROC( C, 1 ))+" %", 255 , 127 );
}
_SECTION_END();

_SECTION_BEGIN("Haiken");

Show_color = ParamToggle("Display CandleColor", "No|Yes", 1);
r1 =5; //Param( "ColorFast avg", 5, 2, 200, 1 );
r2 =10; //Param( "ColorSlow avg", 10, 2, 200, 1 );
r3 =5; //Param( "ColorSignal avg", 5, 2, 200, 1 );

Prd1=4; //Param("ATR Period",4,1,20,1);
Prd2=7; //Param("Look Back",7,1,20,1);
green = HHV(LLV(L,Prd1)+ATR(Prd1),Prd2);
red = LLV(HHV(H,Prd1)-ATR(Prd1),Prd2);

HaClose =EMA((O+H+L+C)/4,3); // Woodie 
//HaClose =(O+H+L+C)/4; 
HaOpen = AMA( Ref( HaClose, -1 ), 0.5 ); 
HaHigh = Max( H, Max( HaClose, HaOpen ) ); 
HaLow = Min( L, Min( HaClose, HaOpen ) ); 
//HaClose = ( HaClose + HaOpen + HaHigh + HaLow )/4; // // Velvoort is using not original, but modified Heikin-Ashi close
Temp = Max(High, HaOpen);
Temp = Min(Low,HaOpen);


m1=MACD(r1,r2);
s1=Signal(r1,r2,r3);
mycolor=IIf(m1<0 AND m1>s1, ColorRGB(230,230,0),IIf(m1>0 AND m1>s1,colorBrightGreen,IIf(m1>0 AND m1<s1,colorOrange,colorDarkRed)));

if(Show_color)

{
ColorHighliter = myColor;
SetBarFillColor( ColorHighliter );


}

//////////
m1=MACD(r1,r2);
s1=Signal(r1,r2,r3);
mycolor=IIf(m1<0 AND m1>s1, ColorRGB(230,230,0),IIf(m1>0 AND m1>s1,colorWhite,IIf(m1>0 AND m1<s1,colorOrange,colorDarkRed)));
if(Show_color)

{
ColorHighliter = mycolor;
SetBarFillColor( ColorHighliter );
}

barColor=IIf(C>Green ,colorWhite,IIf(C < RED,colorRed,colorYellow));
barColor2=IIf(Close > Open, colorWhite, colorRed);




if( ParamToggle("Plot Normal Candle", "No,Yes", 1 ) )
PlotOHLC( HaOpen, HaHigh, HaLow, HaClose, " " , barcolor, styleCandle | styleThick );
else
PlotOHLC( Open, High, Low, Close, " " , barcolor2, styleCandle | styleThick );

_SECTION_END();

_SECTION_BEGIN("Breakout Setting");
Buyperiods=Param("Breakout periods best is usually 18",5,1,100,1,1);
Sellperiods=Param("Exit Breakout",5,1,100,1,1);
Buy= C>Ref(HHV(High,Buyperiods),-1);
Sell= C<Ref(LLV(Low,Sellperiods),-1);

/* exrem is one method to remove surplus strade signals. It removes excessive signals of arrow */
Buy = ExRem(Buy, Sell);
Sell = ExRem(Sell, Buy);
PlotShapes( IIf( Buy, shapeUpTriangle, shapeNone ), colorWhite, layer = 0,yposition = HaLow, offset = -40);
//PlotShapes( IIf( Buy, shapeSmallCircle, shapeNone ), colorWhite, layer = 0,yposition = HaLow, offset = -8);



PlotShapes( IIf( Sell, shapeDownTriangle, shapeNone ), colorRed, layer = 0, yposition = HaHigh, offset = -40);
//PlotShapes( IIf( Sell, shapeSmallCircle, shapeNone ), colorRed, layer = 0, yposition = HaHigh, offset = 8);


_SECTION_END();

_SECTION_BEGIN("Pivot Box");
Hi=Param("High_Period",7,1,50,1);
Lo=Param("Low_Period",7,1,50,1);
A1=ExRemSpan(Ref(High,-2)==HHV(High,Hi),3);
A2=ExRemSpan(Ref(Low,-2)==LLV(Low,Lo),3);
A3=Cross(A1,0.9);
A4=Cross(A2,0.9);
TOP=Ref(HaHigh,-BarsSince(A3));


breakoutLine=Param("BrOutLineLength",10,2,30,0.1);
upDaysback1 = breakoutLine; 
upFirstBar1 = BarCount - upDaysBack1; 
upst2=TOP;

upYYY2=IIf(BarIndex() >= upFirstbar1,EndValue(upSt2),Null);

Plot(upYYY2,"",ParamColor("BreakoutColor", colorOrange) ,ParamStyle("BreakoutLine",styleLine|styleThick|styleStaircase,maskAll));
//Plot(top,"",11,styleDots+styleLine+styleThick);


bot=Ref(HaLow,-BarsSince(A4));
breakDownLine=Param("BrDownLineLength",10,2,30,0.1 );
dnDaysback1 = breakDownLine; 
dnFirstBar1 = BarCount - dnDaysBack1; 
dnst2=BOT;

dnYYY2=IIf(BarIndex() >= dnFirstbar1,EndValue(dnSt2),Null);


Plot(dnYYY2,"",ParamColor("BreakDownColor", colorBrightGreen) ,ParamStyle("BreakdownLine",styleLine|styleThick|styleStaircase,maskAll));
//Plot(bot,"",6,styleDots+styleLine);
_SECTION_END();

#include <T3_include.AFL>;







//************************************************** ********************************
// Plot price horizontal line *
//************************************************** ********************************/
_SECTION_BEGIN("Price Line");

PriceLineColor=colorGrey40; //ParamColor("PriceLineColor",ColorRGB(82,82,82));
PriceLevel = ParamField("PriceField", field = 3 ); 

Daysback = Param("Bars Back",500,10,900,1); 
FirstBar = BarCount - DaysBack; 
YY = IIf(BarIndex() >= Firstbar,EndValue(PriceLevel),Null); 

Plot(YY,"Current Price",PriceLineColor,ParamStyle("LineStyle",styleLine|styleDashed|styleNoTitle|styleNoLabel|styleThick,maskAll)); 

_SECTION_END();



_SECTION_BEGIN("Average 0");
//Average_switch = ParamToggle("Candle On/off", "Off|On");
P = HaClose;
Type = ParamList("Type", "Weighted,Lagless-21,Hull-26,Linear
Regression-45,Exponential,Double Exponential,Tripple
Exponential,Wilders,Simple");
Periods = Param("Periods", 20, 2, 200 );
Displacement = Param("Displacement", 1, -50, 50 );
m = 0;

if( Type == "Weighted" ) m= WMA( P, Periods );
if( Type == "Lagless-21" )	 m= 2*EMA(P, Periods)-EMA(EMA(P, Periods),
Periods); 
if( Type == "Hull-26" )	 m= WMA(2*(WMA(P, Periods/2))-WMA(P, Periods) ,4
);
if( Type == "Linear Regression-45" ) m= LinearReg( P, Periods );
if( Type == "Exponential" ) m = EMA( P, Periods );
if( Type == "Double Exponential" ) m = DEMA( P, Periods );
if( Type == "Tripple Exponential" ) m = TEMA( P, Periods );
if( Type == "Wilders" ) m = Wilders( P, Periods );
if( Type == "Simple" ) m = MA( P, Periods );

Plot( m, _DEFAULT_NAME(), ParamColor("Color", colorDarkYellow),ParamStyle("Style",styleLine |styleThick|styleDots|styleNoTitle ,maskAll),Displacement );

_SECTION_END();


_SECTION_BEGIN("Average 1");
//Average_switch = ParamToggle("Candle On/off", "Off|On");
P = HaClose;
Type = ParamList("Type", "Weighted,Lagless-21,Hull-26,Linear
Regression-45,Exponential,Double Exponential,Tripple
Exponential,Wilders,Simple");
Periods = Param("Periods", 60, 2, 200 );
Displacement = Param("Displacement", 1, -50, 50 );
m = 0;

if( Type == "Weighted" ) m= WMA( P, Periods );
if( Type == "Lagless-21" )	 m= 2*EMA(P, Periods)-EMA(EMA(P, Periods),
Periods); 
if( Type == "Hull-26" )	 m= WMA(2*(WMA(P, Periods/2))-WMA(P, Periods) ,4
);
if( Type == "Linear Regression-45" ) m= LinearReg( P, Periods );
if( Type == "Exponential" ) m = EMA( P, Periods );
if( Type == "Double Exponential" ) m = DEMA( P, Periods );
if( Type == "Tripple Exponential" ) m = TEMA( P, Periods );
if( Type == "Wilders" ) m = Wilders( P, Periods );
if( Type == "Simple" ) m = MA( P, Periods );

Plot( m, _DEFAULT_NAME(), ParamColor("Color", colorDarkGreen),ParamStyle("Style",styleLine |styleThick|styleDots|styleNoTitle ,maskAll),Displacement );

_SECTION_END();

_SECTION_BEGIN("Average 2");
//Average_switch = ParamToggle("Candle On/off", "Off|On");
P = HaClose;
Type = ParamList("Type", "Weighted,Lagless-21,Hull-26,Linear
Regression-45,Exponential,Double Exponential,Tripple
Exponential,Wilders,Simple");
Periods = Param("Periods", 100, 2, 200 );
Displacement = Param("Displacement", 1, -50, 50 );
m = 0;

if( Type == "Weighted" ) m= WMA( P, Periods );
if( Type == "Lagless-21" )	 m= 2*EMA(P, Periods)-EMA(EMA(P, Periods),
Periods); 
if( Type == "Hull-26" )	 m= WMA(2*(WMA(P, Periods/2))-WMA(P, Periods) ,4
);
if( Type == "Linear Regression-45" ) m= LinearReg( P, Periods );
if( Type == "Exponential" ) m = EMA( P, Periods );
if( Type == "Double Exponential" ) m = DEMA( P, Periods );
if( Type == "Tripple Exponential" ) m = TEMA( P, Periods );
if( Type == "Wilders" ) m = Wilders( P, Periods );
if( Type == "Simple" ) m = MA( P, Periods );

Plot( m, _DEFAULT_NAME(), ParamColor("Color", ColorRGB(70,70,70)),ParamStyle("Style",styleLine |styleThick|stylehidden|styleDots|styleNoTitle ,maskAll),Displacement );

_SECTION_END();


_SECTION_BEGIN("Average 5");
P = HaClose;
Type = ParamList("Type", "Weighted,Lagless-21,Hull-26,Linear
Regression-45,Exponential,Double Exponential,Tripple
Exponential,Wilders,Simple");
Periods = Param("Periods", 120 ,2, 200 );
Displacement = Param("Displacement", 1, -50, 50 );
m = 0;

if( Type == "Weighted" ) m= WMA( P, Periods );
if( Type == "Lagless-21" )	 m= 2*EMA(P, Periods)-EMA(EMA(P, Periods),
Periods); 
if( Type == "Hull-26" )	 m= WMA(2*(WMA(P, Periods/2))-WMA(P, Periods) ,4
);
if( Type == "Linear Regression-45" ) m= LinearReg( P, Periods );
if( Type == "Exponential" ) m = EMA( P, Periods );
if( Type == "Double Exponential" ) m = DEMA( P, Periods );
if( Type == "Tripple Exponential" ) m = TEMA( P, Periods );
if( Type == "Wilders" ) m = Wilders( P, Periods );
if( Type == "Simple" ) m = MA( P, Periods );

Plot( m, _DEFAULT_NAME(), ParamColor("Color", colorCustom13),ParamStyle("Style",styleLine |styleThick|styleDots|styleNoTitle ,maskAll),Displacement );
_SECTION_END();


_SECTION_BEGIN("Sell Average 3");
P = HaClose;
Type = ParamList("Type", "Weighted,Lagless-21,Hull-26,Linear
Regression-45,Exponential,Double Exponential,Tripple
Exponential,Wilders,Simple");
Periods = Param("Periods", 180, 2, 800 );
Displacement = Param("Displacement", 1, -50, 50 );
m = 0;

if( Type == "Weighted" ) m= WMA( P, Periods );
if( Type == "Lagless-21" )	 m= 2*EMA(P, Periods)-EMA(EMA(P, Periods),
Periods); 
if( Type == "Hull-26" )	 m= WMA(2*(WMA(P, Periods/2))-WMA(P, Periods) ,4
);
if( Type == "Linear Regression-45" ) m= LinearReg( P, Periods );
if( Type == "Exponential" ) m = EMA( P, Periods );
if( Type == "Double Exponential" ) m = DEMA( P, Periods );
if( Type == "Tripple Exponential" ) m = TEMA( P, Periods );
if( Type == "Wilders" ) m = Wilders( P, Periods );
if( Type == "Simple" ) m = MA( P, Periods );

Plot( m, _DEFAULT_NAME(), ParamColor("Color", ColorRGB(150,150,150)),ParamStyle("Style",styleLine |styleThick|styleDots|styleNoTitle ,maskAll),Displacement );
_SECTION_END();


_SECTION_BEGIN("Average 4");
P = HaClose;
Type = ParamList("Type", "Weighted,Lagless-21,Hull-26,Linear
Regression-45,Exponential,Double Exponential,Tripple
Exponential,Wilders,Simple");
Periods = Param("Periods", 500, 2, 800 );
Displacement = Param("Displacement", 1, -50, 50 );
m = 0;

if( Type == "Weighted" ) m= WMA( P, Periods );
if( Type == "Lagless-21" )	 m= 2*EMA(P, Periods)-EMA(EMA(P, Periods),
Periods); 
if( Type == "Hull-26" )	 m= WMA(2*(WMA(P, Periods/2))-WMA(P, Periods) ,4
);
if( Type == "Linear Regression-45" ) m= LinearReg( P, Periods );
if( Type == "Exponential" ) m = EMA( P, Periods );
if( Type == "Double Exponential" ) m = DEMA( P, Periods );
if( Type == "Tripple Exponential" ) m = TEMA( P, Periods );

Plot( m, _DEFAULT_NAME(), ParamColor("Color", ColorRGB(190,190,190)),ParamStyle("Style",styleLine |styleThick|stylehidden|styleDots|styleNoTitle ,maskAll),Displacement );
_SECTION_END();




_SECTION_BEGIN("Bands_Short");
BandDays= Param("DaysBack",40,10,900,1); 
HighestHigh = HHV( H, BandDays ) ; 
LowestLow = LLV( L, BandDays) ; 

KS = ( HHV( H, BandDays ) + LLV( L, BandDays) )/2; 

//Plot(HighestHigh ,"HighestHigh ",colorBlue,styleLine | styleStaircase|styleNoRescale| styleNoLabel|styleNoTitle ); 
//Plot(LowestLow ,"LowestLow ",colorRed,styleLine | styleStaircase ); 
Plot(KS,"KS",50,styleLine |styleThick | styleStaircase ); 

//Plot((KS+HighestHigh )/2,"",colorYellow, styleLine | styleThick | styleStaircase );
//Plot((KS+LowestLow )/2,"",colorYellow, styleLine | styleThick | styleStaircase );



CloudUpColor1=ParamColor("ShortupColor1",ColorRGB( 0,55,55));
CloudUpColor2=ParamColor("ShortupColor2",ColorRGB( 60,15,0));
CloudDownColor1=ParamColor("ShortDnColor1",ColorRGB(0,0,83));
CloudDownColor2= ParamColor("ShortDnColor2",ColorRGB(43,43,89));

CU1=HighestHigh;
CU2=(KS+HighestHigh )/2;

CD1=LowestLow = LLV( L, 22) ; 
CD2=(KS+LowestLow )/2;



PlotOHLC( CU1, CU1,CU2,CU2, "", CloudUpColor1, styleCloud || styleStaircase|styleNoRescale| styleNoLabel|styleNoTitle );
PlotOHLC( CU2, CU2,KS,KS, "", CloudUpColor2, styleCloud || styleStaircase|styleNoRescale| styleNoLabel|styleNoTitle );

PlotOHLC( KS, KS,CD2,CD2, "", CloudDownColor1, styleCloud || styleStaircase|styleNoRescale| styleNoLabel|styleNoTitle );
PlotOHLC( CD2, CD2,CD1,CD1, "", CloudDownColor2, styleCloud || styleStaircase|styleNoRescale| styleNoLabel|styleNoTitle );





_SECTION_END();

_SECTION_BEGIN("Bands_Long");

SupResB = Param("Sup-Res Short",30,0,100,1);
//SupResB2 = Param("Sup-Res Short2",12,0,100,1);
SupResC=Param("Res Long",160,0,350,1);
ResL=Param("SupLong",60,0,350,1);

nn=SupResB;


nn2=SupResC;
nn3=ResL;

Hh=HHV(HaHigh,nn);
Ll=LLV(HaLow,nn);

Hh2=HHV(HaHigh,nn2);
L2=LLV(HaLow,nn3);


//Plot(Hh2,"",ColorRGB(13,32,29),ParamStyle("LongRes Line",styleLine|styleStaircase|styleNoRescale |styleNoTitle|styleNoLabel|styleThick,maskAll));


//Plot(L2,"",ColorRGB(12,12,52),ParamStyle("LongSupL ine",styleLine|styleStaircase|styleNoRescale |styleNoTitle|styleNoLabel|styleThick,maskAll));





_SECTION_END();

_SECTION_BEGIN("Cloud Setting Long");
//Cloud

ParmCloud = ParamToggle("CloudLong", "No|Yes", 1);

CloudResColor=ParamColor("CloudResColorLong",colorDarkGrey);
BrCount7=Param("CloudResLengthLong",300,1,500,1);
for (i=0;i<BarCount-BrCount7;i++) //hide the line except most recent 10 bars
{
CloudResColor[i] = colorBlack;
}


CS1=LLV(HaLow,nn3);
CR1=HHV(HaHigh,nn2);


if(parmCloud == 1)
{
PlotOHLC( CS1, CS1, CR1,CR1, "", CloudResColor, styleCloud |styleStaircase| styleNoLabel|styleNoRescale |styleNoTitle); 
}

_SECTION_END();




_SECTION_BEGIN("Pivot"); 
nBars = Param("Number of bars", 25, 5, 40); 
LP=Param("LookBack Period",250,1,500,1);
bShowTCZ = Param("Show TCZ", 0, 0, 1); 
nExploreBarIdx = 0;
nExploreDate = 0;
nCurDateNum = 0;
DN = DateNum();
DT = DateTime();
bTCZLong = False;
bTCZShort = False;
nAnchorPivIdx = 0;
ADX8 = ADX(8);
if(Status("action")==1) {
bDraw = True;
bUseLastVis = 1;
} else {
bDraw = False;
bUseLastVis = False;
bTrace = 1;
nExploreDate = Status("rangetodate");
for (i=LastValue(BarIndex());i>=0;i--) {
nCurDateNum = DN[i];
if (nCurDateNum == nExploreDate) {
nExploreBarIdx = i;
}
}
}
GraphXSpace=7;
if (bDraw) {
}
aHPivs = H - H;
aLPivs = L - L;
aHPivHighs = H - H;
aLPivLows = L - L;
aHPivIdxs = H - H;
aLPivIdxs = L - L;
aAddedHPivs = H - H;
aAddedLPivs = L - L;
aLegVol = H - H;
aRetrcVol = H - H;
nHPivs = 0;
nLPivs = 0;
lastHPIdx = 0;
lastLPIdx = 0;
lastHPH = 0;
lastLPL = 0;
curPivBarIdx = 0;
aHHVBars = HHVBars(H, nBars);
aLLVBars = LLVBars(L, nBars);
aHHV = HHV(H, nBars);
aLLV = LLV(L, nBars);
nLastVisBar = LastValue(
Highest(IIf(Status("barvisible"), BarIndex(), 0)));
curBar = IIf(nlastVisBar > 0 AND bUseLastVis, nlastVisBar, 
IIf(Status("action")==4 AND nExploreBarIdx > 0, nExploreBarIdx,
LastValue(BarIndex())));
curTrend = "";
if (aLLVBars[curBar] < aHHVBars[curBar]) 
curTrend = "D";
else 
curTrend = "U";
if (curBar >= LP) {
for (i=0; i<LP; i++) { 
curBar = IIf(nlastVisBar > 0 AND bUseLastVis, 
nlastVisBar-i, 
IIf(Status("action")==4 AND nExploreBarIdx > 0, 
nExploreBarIdx-i,
LastValue(BarIndex())-i));
if (aLLVBars[curBar] < aHHVBars[curBar]) {
if (curTrend == "U") {
curTrend = "D";
curPivBarIdx = curBar - aLLVBars[curBar];
aLPivs[curPivBarIdx] = 1;
aLPivLows[nLPivs] = L[curPivBarIdx];
aLPivIdxs[nLPivs] = curPivBarIdx;
nLPivs++;
}
} else {
if (curTrend == "D") {
curTrend = "U";
curPivBarIdx = curBar - aHHVBars[curBar];
aHPivs[curPivBarIdx] = 1;
aHPivHighs[nHPivs] = H[curPivBarIdx];
aHPivIdxs[nHPivs] = curPivBarIdx;
nHPivs++;
}
}	
} 
}
curBar = 
IIf(nlastVisBar > 0 AND bUseLastVis, 
nlastVisBar, 
IIf(Status("action")==4 AND nExploreBarIdx > 0, 
nExploreBarIdx,
LastValue(BarIndex()))
);
if (nHPivs >= 2 AND nLPivs >= 2) {
lastLPIdx = aLPivIdxs[0];
lastLPL = aLPivLows[0];
lastHPIdx = aHPivIdxs[0];
lastHPH = aHPivHighs[0];
nLastHOrLPivIdx = Max(lastLPIdx, lastHPIdx);
nAddPivsRng = curBar - nLastHOrLPivIdx;
aLLVAfterLastPiv = LLV(L, nAddPivsRng); 
nLLVAfterLastPiv = aLLVAfterLastPiv[curBar];
aLLVIdxAfterLastPiv = LLVBars(L, nAddPivsRng); 
nLLVIdxAfterLastPiv = curBar - aLLVIdxAfterLastPiv[curBar];
aHHVAfterLastPiv = HHV(H, nAddPivsRng); 
nHHVAfterLastPiv = aHHVAfterLastPiv[curBar];
aHHVIdxAfterLastPiv = HHVBars(H, nAddPivsRng); 
nHHVIdxAfterLastPiv = curBar - aHHVIdxAfterLastPiv[curBar];
if (lastHPIdx > lastLPIdx) {

/*	There are at least two possibilities here. One is that
the previous high was higher, indicating that this is a 
possible short retracement or one in the making.
The other is that the previous high was lower, indicating 
that this is a possible long retracement in the working. 
However, both depend on opposing pivots. E.g., if I find 
higher highs, what if I have lower lows? 

If the highs are descending, then I can consider:
- a lower low, and leave it at that
- a higher high and higher low
- a lower low and another lower high
*/
if (aHPivHighs[0] < aHPivHighs[1]) {

if (nLLVAfterLastPiv < aLPivLows[0] AND 
(nLLVIdxAfterLastPiv - lastHPIdx - 1) >= 1
AND nLLVIdxAfterLastPiv != curBar	) {

// -- OK, we'll add this as a pivot. 
// Mark it for plotting...
aLPivs[nLLVIdxAfterLastPiv] = 1;
aAddedLPivs[nLLVIdxAfterLastPiv] = 1;

// ...and then rearrange elements in the 
// pivot information arrays
for (j=0; j<nLPivs; j++) {
aLPivLows[nLPivs-j] = aLPivLows[nLPivs-(j+1)];
aLPivIdxs[nLPivs-j] = aLPivIdxs[nLPivs-(j+1)];
}
aLPivLows[0] = nLLVAfterLastPiv;
aLPivIdxs[0] = nLLVIdxAfterLastPiv;
nLPivs++;

// -- Test whether to add piv given last piv is high 
// AND we have lower highs	
}

// -- Here, the last piv is a high piv, and we have 
// higher-highs. The most likely addition is a 
// Low piv that is a retracement.
} else {

if (nLLVAfterLastPiv > aLPivLows[0] AND 
(nLLVIdxAfterLastPiv - lastHPIdx - 1) >= 1
AND nLLVIdxAfterLastPiv != curBar	) {

// -- OK, we'll add this as a pivot. 
// Mark it for plotting...
aLPivs[nLLVIdxAfterLastPiv] = 1;
aAddedLPivs[nLLVIdxAfterLastPiv] = 1;

// ...and then rearrange elements in the 
// pivot information arrays
for (j=0; j<nLPivs; j++) {
aLPivLows[nLPivs-j] = aLPivLows[nLPivs-(j+1)];
aLPivIdxs[nLPivs-j] = aLPivIdxs[nLPivs-(j+1)];
}
aLPivLows[0] = nLLVAfterLastPiv;
aLPivIdxs[0] = nLLVIdxAfterLastPiv;
nLPivs++;

// -- Test whether to add piv given last piv is high 
// AND we have lower highs	
}	
// -- The last piv is a high and we have higher highs 
// OR lower highs
}

/* ************************************************** **************
Still finding missed pivot(s). Here, the last piv is a low piv.
************************************************** ************** */
} else {

// -- First case, lower highs
if (aHPivHighs[0] < aHPivHighs[1]) {

if (nHHVAfterLastPiv < aHPivHighs[0] AND 
(nHHVIdxAfterLastPiv - lastLPIdx - 1) >= 1
AND nHHVIdxAfterLastPiv != curBar	) {

// -- OK, we'll add this as a pivot. 
// Mark that for plotting
aHPivs[nHHVIdxAfterLastPiv] = 1;
aAddedHPivs[nHHVIdxAfterLastPiv] = 1;

// ...and then rearrange elements in the 
// pivot information arrays
for (j=0; j<nHPivs; j++) {
aHPivHighs[nHPivs-j] = aHPivHighs[nHPivs-(j+1)];
aHPivIdxs[nHPivs-j] = aHPivIdxs[nhPivs-(j+1)];
}
aHPivHighs[0] = nHHVAfterLastPiv;
aHPivIdxs[0] = nHHVIdxAfterLastPiv;
nHPivs++;

// -- Test whether to add piv given last piv is high 
// AND we have lower highs	
}

// -- Second case when last piv is a low piv, higher highs 
// Most likely addition is high piv that is a retracement.
// Considering adding a high piv as long as it is higher
} else {

// -- Where I have higher highs,
if (nHHVAfterLastPiv > aHPivHighs[0] AND 
(nHHVIdxAfterLastPiv - lastLPIdx - 1) >= 1
AND nHHVIdxAfterLastPiv != curBar	) {

// -- OK, we'll add this as a pivot. 
// Mark it for plotting...
aHPivs[nHHVIdxAfterLastPiv] = 1;
aAddedHPivs[nHHVIdxAfterLastPiv] = 1;

// ...and then rearrange elements in the 
// pivot information arrays
for (j=0; j<nHPivs; j++) {
aHPivHighs[nHPivs-j] = aHPivHighs[nHPivs-(j+1)];
aHPivIdxs[nHPivs-j] = aHPivIdxs[nhPivs-(j+1)];
}
aHPivHighs[0] = nHHVAfterLastPiv;
aHPivIdxs[0] = nHHVIdxAfterLastPiv;
nHPivs++;

// -- Test whether to add piv given last piv is high 
// AND we have lower highs	
}

}

} 

// -- If there are at least two of each
}

/* ****************************************
// -- Done with finding pivots
***************************************** */ 


if (bDraw) {

// -- OK, let's plot the pivots using arrows

/*PlotShapes( IIf(aHPivs==1, shapeHollowSmallSquare, shapeNone), colorRed, layer = 0, yposition = HaHigh, offset = 10);
PlotShapes( IIf(aHPivs==1, shapeSmallCircle, shapeNone), colorRed, layer = 0, yposition = HaHigh, offset = 10);



PlotShapes( IIf(aAddedLPivs==1, shapeHollowSmallSquare, shapeNone), colorYellow, layer = 0, yposition = HaLow, offset = -10);
PlotShapes( IIf(aAddedLPivs==1, shapeSquare, shapeNone), colorBlack, layer = 0, yposition = HaLow, offset = -14);


//PlotShapes( IIf(aAddedLPivs==1, shapeSmallCircle, shapeNone), colorYellow, layer = 0, yposition = HaLow, offset = -9);*/


//PlotShapes( IIf(aHPivs==1, shapeSmallCircle, shapeNone), colorCustom12, layer = 0, yposition = HaHigh, offset = 9);
PlotShapes( IIf(aHPivs==1, shapeHollowSmallSquare, shapeNone), colorCustom12, layer = 0, yposition = HaHigh, offset = 12);

//PlotShapes( IIf(aAddedHPivs==1, shapeSmallCircle, shapeNone), colorCustom10,layer = 0, yposition = HaHigh, offset = 9);
PlotShapes( IIf(aAddedHPivs==1, shapeHollowSmallSquare, shapeNone), colorYellow, layer = 0, yposition = HaHigh, offset = 12);

//PlotShapes( IIf(aLPivs==1, shapeSmallCircle, shapeNone), colorPaleGreen, layer = 0, yposition = HaLow, offset = -9);
PlotShapes( IIf(aLPivs==1, shapeHollowSmallSquare, shapeNone), colorGreen, layer = 0, yposition = HaLow, offset = -12);

//PlotShapes( IIf(aAddedLPivs==1, shapeSmallCircle, shapeNone), colorYellow, layer = 0, yposition = HaLow, offset = -10);
PlotShapes( IIf(aAddedLPivs==1, shapeHollowSmallSquare, shapeNone), colorYellow, layer = 0, yposition = HaLow, offset = -13);

}



/* ****************************************
// -- Done with discovering and plotting pivots 
***************************************** */ 

// -- I'm going to want to look for possible retracement
risk = 0;
profInc = 0;
nLeg0Pts = 0;
nLeg0Bars = 0;
nLeg0Vol = 0;
nLeg1Pts = 0;
nLeg1Bars = 0;
nLeg1Vol = 0;
nLegBarsDiff = 0;
nRtrc0Pts = 0;
nRtrc0Bars = 0;
nRtrc0Vol = 0;
nRtrc1Pts = 0;
nRtrc1Bars = 0;
nRtrc1Vol = 0;

minRtrc = 0;
maxRtrc = 0;
minLine = 0;
maxLine = 0;
triggerLine = 0;
firstProfitLine = 0;
triggerInc = 0;
triggerPrc = 0;
firstProfitPrc = 0;
retrcPrc = 0;
retrcBar = 0;
retrcBarIdx = 0;
retrcRng = 0;
aRetrcPrc = H-H;
aRetrcPrcBars = H-H;
aRetrcClose = C;
retrcClose = 0;

// -- Do TCZ calcs. Arrangement of pivs very specific
// for this setup.
if (nHPivs >= 2 AND 
nLPivs >=2 AND 
aHPivHighs[0] > aHPivHighs[1] AND
aLPivLows[0] > aLPivLows[1]) {

tcz500 = 
(aHPivHighs[0] -
(.5 * (aHPivHighs[0] - aLPivLows[1])));

tcz618 = 
(aHPivHighs[0] -
(.618 * (aHPivHighs[0] - aLPivLows[1])));

tcz786 = 
(aHPivHighs[0] -
(.786 * (aHPivHighs[0] - aLPivLows[0])));

retrcRng = curBar - aHPivIdxs[0];
aRetrcPrc = LLV(L, retrcRng);
aRetrcPrcBars = LLVBars(L, retrcRng);

retrcPrc = aRetrcPrc[curBar];
retrcBarIdx = curBar - aRetrcPrcBars[curBar];
retrcClose = aRetrcClose[retrcBarIdx];

// -- bTCZLong setup?
bTCZLong = (

// -- Are retracement levels arranged in
// tcz order?

// .500 is above .786 for long setups
tcz500 >= (tcz786 * (1 - .005))
AND 
// .681 is below .786 for long setups
tcz618 <= (tcz786 * (1 + .005))
AND

// -- Is the low in the tcz range
// -- Is the close >= low of tcz range
// and low <= high of tcz range
retrcClose >= ((1 - .01) * tcz618)
AND
retrcPrc <= ((1 + .01) * tcz500)
); 

// -- risk would be high of signal bar minus low of zone
//risk = 0;

// -- lower highs and lower lows
} else if (nHPivs >= 2 AND nLPivs >=2 
AND aHPivHighs[0] < aHPivHighs[1] 
AND aLPivLows[0] < aLPivLows[1]) {

tcz500 = 
(aHPivHighs[1] -
(.5 * (aHPivHighs[1] - aLPivLows[0])));

tcz618 = 
(aHPivHighs[0] -
(.618 * (aHPivHighs[1] - aLPivLows[0])));

tcz786 = 
(aHPivHighs[0] -
(.786 * (aHPivHighs[0] - aLPivLows[0])));

retrcRng = curBar - aLPivIdxs[0];
aRetrcPrc = HHV(H, retrcRng);
retrcPrc = aRetrcPrc[curBar];
aRetrcPrcBars = HHVBars(H, retrcRng);
retrcBarIdx = curBar - aRetrcPrcBars[curBar];
retrcClose = aRetrcClose[retrcBarIdx];

bTCZShort = (
// -- Are retracement levels arranged in
// tcz order?

// .500 is below .786 for short setups
tcz500 <= (tcz786 * (1 + .005))
AND	
// .681 is above .786 for short setups
tcz618 >= (tcz786 * (1 - .005)) 
AND

// -- Is the close <= high of tcz range
// and high >= low of tcz range
retrcClose <= ((1 + .01) * tcz618)
AND
retrcPrc >= ((1 - .01) * tcz500)
); 

// -- Risk would be top of zone - low of signal bar 
//risk = 0;
}

// -- Show zone if present
if (bTCZShort OR bTCZLong) { 

// -- Be prepared to see symmetry
if (bTCZShort) {
if (aLPivIdxs[0] > aHPivIdxs[0]) {	
// -- Valuable, useful symmetry information 
nRtrc0Pts = aHPivHighs[0] - aLPivLows[1];
nRtrc0Bars = aHPivIdxs[0] - aLPivIdxs[1] + 1;
nRtrc1Pts = retrcPrc - aLPivLows[0];
nRtrc1Bars = retrcBarIdx - aLPivIdxs[0] + 1;
} else {
nRtrc0Pts = aHPivHighs[1] - aLPivLows[1];
nRtrc0Bars = aHPivIdxs[1] - aLPivIdxs[1] + 1;
nRtrc1Pts = aHPivHighs[0] - aLPivLows[0];
nRtrc1Bars = aHPivIdxs[0] - aLPivIdxs[0] + 1;
}
} else { // bLongSetup
if (aLPivIdxs[0] > aHPivIdxs[0]) {	
nRtrc0Pts = aHPivHighs[0] - aLPivLows[1];
nRtrc0Bars = aHPivIdxs[0] - aLPivIdxs[1] + 1;
nRtrc1Pts = retrcPrc - aLPivLows[0];
nRtrc1Bars = retrcBarIdx - aLPivIdxs[0] + 1;
} else {
nRtrc0Pts = aHPivHighs[1] - aLPivLows[0];
nRtrc0Bars = aLPivIdxs[0] - aHPivIdxs[1] + 1;
nRtrc1Pts = aHPivHighs[0] - aLPivLows[0];
nRtrc1Bars = aLPivIdxs[0] - aHPivIdxs[0] + 1;
}
}

if (bShowTCZ) {
Plot(
LineArray(	IIf(bTCZLong, aHPivIdxs[0], aLPivIdxs[0]),
tcz500, curBar, tcz500 , 0), 
"tcz500", colorPaleBlue, styleLine);
Plot(
LineArray(	IIf(bTCZLong, aHPivIdxs[0], aLPivIdxs[0]),
tcz618, curBar, tcz618, 0), 
"tcz618", colorPaleBlue, styleLine);
Plot(
LineArray(	IIf(bTCZLong, aHPivIdxs[0], aLPivIdxs[0]),
tcz786, curBar, tcz786, 0), 
"tcz786", colorTurquoise, styleLine);
}

// -- if (bShowTCZ)
}


// **************************
// END INDICATOR CODE
// **************************
_SECTION_END();

///********************************************//

flowerClose = EMA((Open+High+Low+Close)/4,3) ;
flowerOpen = EMA((Ref(Open,-1) + Ref(flowerClose,-1))/2,3);
Temp = Max(High, flowerOpen);
flowerHigh = EMA(Max(Temp, flowerClose),3);
Temp = Min(Low,flowerOpen);
flowerLow = EMA(Min(Temp, flowerClose),3);

//------------//


//#include <T3.AFL>;
_SECTION_BEGIN("Weekly_trend");

//AT=ParamColor("AT", colorRed );

Prd1=4; //Param("Weekly_Period1",4,1,200,1);
Prd2=5;// Param("Weekly_Period2",5,1,200,1);

TimeFrameSet (inWeekly);

TM = T3 ( Close , Prd1 ) ; 
TM2 = T3 ( Close , Prd2 ) ; 
TimeFrameRestore();
BullishRevers=Close>TM AND Close<TM2;
Bullish=Close>TM AND Close>TM2;
BearishRevers=Close<TM AND Close>TM2;
Bearish=Close<TM AND Close<TM2;

Type1 = WriteIf( BullishRevers,"bullishrevers", "");
Type2 = WriteIf( Bullish,"bullish", "");
Type3 = WriteIf( BearishRevers,"bearishrevers", "");
Type4 = WriteIf( Bearish,"bearish", "");


RequestTimedRefresh( 0 );
GfxSelectFont( "Tahoma", 12, 100 );
GfxSetBkMode( 1 );
GfxSetTextColor( colorWhite );

if ( Type1 =="bullishrevers")
{
GfxSelectSolidBrush( colorYellow ); 

}
else

if ( Type2 =="bullish")

{
GfxSelectSolidBrush( ColorRGB(0,50,0)); 

}

else

if ( Type3 =="bearishrevers")

{
GfxSelectSolidBrush( colorGrey40 ); 

}

else

if ( Type4 =="bearish")

{
GfxSelectSolidBrush( ColorRGB(50,0,0)); 

}



GfxSelectPen( colorTeal,2 ); // broader color 
//GfxRoundRect( 2,320,150,200, 5, 5 );

GfxCircle( 70,90,60 );
_SECTION_END();


_SECTION_BEGIN("trending ribbon");

//BT=ParamColor("BT", colorRed );

TimeFrameSet (inDaily);
uptrend=PDI()>MDI()AND Signal()<MACD();
downtrend=MDI()>PDI()AND Signal()>MACD();
UTM3=IIf( uptrend, colorGreen, IIf( downtrend, colorRed, colorLightGrey ));

TimeFrameRestore();

UpA=uptrend;
DownB=downtrend;


Trend1 = WriteIf( UpA,"Up1", "");
Trend2 = WriteIf( DownB,"Down1", "");


RequestTimedRefresh( 0 );
GfxSelectFont( "Tahoma", 12, 100 );
GfxSetBkMode( 1 );
GfxSetTextColor( colorWhite );

if ( Trend1 =="Up1")
{
GfxSelectSolidBrush( ColorRGB(0,70,0) ); 

}
else

if ( Trend2 =="Down1")

{
GfxSelectSolidBrush( ColorRGB(70,0,0)); 

}
else

if ( Trend2 =="")

{
GfxSelectSolidBrush( colorPaleBlue ); 

}


GfxSelectPen( colorBlack, 0 ); // broader color 
//GfxRoundRect( 15,305,135,215, 5, 5 );
GfxCircle( 70,90,54 );
_SECTION_END();


_SECTION_BEGIN("Trendslong");

//CT=ParamColor("CT", colorRed );

UpTrendCond3 = Cross ( T3( flowerclose, 7), T3( flowerclose, 9) );
dnTrendCond3 = Cross ( T3( flowerclose, 9),T3( flowerclose, 7) );


upt3= T3( flowerclose, 7)> T3( flowerclose, 9) ;
dnTrend3 = T3( flowerclose, 9)>T3( flowerclose, 7) ;


//for Trend1

Trendslongup= WriteIf(upt3,"trendlongup", "");
Trendslongdown= WriteIf( dnTrend3,"trendlongdn", "");
//Trendslongcon= WriteIf( UpTrendCond3,"trendlongcon", "");

if ( Trendslongup =="trendlongup")
{
GfxSelectSolidBrush(ColorRGB(0,90,0) ); 

}
else

if (Trendslongdown =="trendlongdn")

{
GfxSelectSolidBrush( ColorRGB(90,0,0)); 

}

else

if (Trendslongdown =="")

{
GfxSelectSolidBrush( colorYellow ); 

}

GfxSelectFont( "Arial", 10, 100 );
GfxSetBkMode( 1 );
GfxSetTextColor( colorBlack );

GfxSelectPen( colorBlack, 1 ); // broader color 
GfxCircle( 70,90,48 );




_SECTION_END();


_SECTION_BEGIN("Trendsmid");

//DT=ParamColor("DT", colorRed );

UpTrendCond2 = Cross ( T3( flowerclose, 5), T3( flowerclose, 7) );
dnTrendCond2 = Cross (T3( flowerclose, 7), T3( flowerclose, 5) );
upt2= T3( flowerclose, 5)> T3( flowerclose, 7) ;
dnTrend2 = T3( flowerclose, 7)>T3( flowerclose, 5) ;



//for trend2

Trendmidup= WriteIf(upt2,"trendmidup", "");
Trendmiddown= WriteIf( dnTrend2,"trendmiddn", "");
Trendmidcon= WriteIf( UpTrendCond2,"trendmidcon", "");

if ( Trendmidup =="trendmidup")
{
GfxSelectSolidBrush( ColorRGB(0,120,0) ); 

}
else

if (Trendmiddown =="trendmiddn")

{
GfxSelectSolidBrush( ColorRGB(120,0,0)); 

}

else

if (Trendmidcon =="trendmidcon")

{
GfxSelectSolidBrush( colorYellow ); 

}

GfxSelectFont( "Arial", 10, 100 );
GfxSetBkMode( 1 );
GfxSetTextColor( colorBlack );

GfxSelectPen( colorBlack, 1 ); // broader color 
GfxCircle( 70,90,42 );

_SECTION_END();

_SECTION_BEGIN("Trendsshort");

//ET=ParamColor("ET", colorRed );

UpTrendCond1 = Cross( flowerClose, T3( flowerClose, 5 ) );
dnTrendCond1 = Cross( T3( flowerClose, 5 ),flowerClose );
upt1=flowerClose > T3( flowerClose, 5 ) ;
dnTrend1 = flowerClose< T3( flowerClose, 5 );



//for Trend1

Trendshortup= WriteIf(upt1,"trendup", "");
Trendshortdown= WriteIf( dnTrend1,"trenddn", "");
Trendshortcon= WriteIf( UpTrendCond1,"trendcon", "");

if ( Trendshortup =="trendup")
{
GfxSelectSolidBrush( ColorRGB(0,150,0) ); 

}
else

if (Trendshortdown =="trenddn")

{
GfxSelectSolidBrush( ColorRGB(150,0,0)); 

}

else

if (Trendshortcon =="trendcon")

{
GfxSelectSolidBrush( colorYellow ); 

}

GfxSelectFont( "Arial", 10, 100 );
GfxSetBkMode( 1 );
GfxSetTextColor( colorBlack );

GfxSelectPen( colorBlack, 1 ); // broader color 
GfxCircle( 70,90,36 );




_SECTION_END();



_SECTION_BEGIN("Rays");

//FT=ParamColor("FT", colorRed );

Pp1=3;
Pp2=2;

CS33=HHV(LLV(flowerHigh,Pp1)-ATR(Pp2),4); 
CR33=HHV(LLV(flowerHigh,Pp1)-ATR(Pp2),5);

AtrupTrendCond1 = flowerClose> CS33 ;
AtrdnTrendCond1 =CS33>flowerClose ;


ATRup = WriteIf(AtrupTrendCond1,"atrup", "");
ATRdown= WriteIf( AtrdnTrendCond1,"atrdn", "");

if ( ATRup =="atrup")
{
GfxSelectSolidBrush( ColorRGB(0,180,0) ); 

}
else

if (ATRdown =="atrdn")

{
GfxSelectSolidBrush( ColorRGB(180,0,0)); 

}

else

if ( ATRdown =="")

{
GfxSelectSolidBrush( colorGrey40 ); 

}

GfxSelectFont( "Arial", 10, 100 );
GfxSetBkMode( 1 );
GfxSetTextColor( colorBlack );

GfxSelectPen( colorBlack, 1 ); // broader color 
GfxCircle( 70,90,30 );

_SECTION_END();


_SECTION_BEGIN("Exit_Beast-3");

//GT=ParamColor("GT", colorRed );

EntrylookbackPeriod=10;
EntryATRperiod=1.9;
EntrySig = C > ( LLV( flowerLow, EntrylookbackPeriod ) + EntryATRperiod * ATR( 10 ) );
ExitSig = C < ( HHV( flowerHigh, EntrylookbackPeriod ) -EntryATRperiod * ATR( 10 ) );


RequestTimedRefresh( 0 );
GfxSelectFont( "Tahoma", 12, 100 );
GfxSetBkMode( 1 );
GfxSetTextColor( colorWhite );

EntryB = WriteIf( EntrySig,"eu", "");
ExitB = WriteIf( ExitSig,"ed", "");

if ( EntryB =="eu")
{
GfxSelectSolidBrush( ColorRGB(0,210,0) ); 

}
else

if ( ExitB =="ed")

{
GfxSelectSolidBrush( ColorRGB(210,0,0)); 

}

else

if ( ExitB =="")

{
GfxSelectSolidBrush( colorGrey40 ); 

}

GfxSelectFont( "Arial", 10, 100 );
GfxSetBkMode( 1 );
GfxSetTextColor( colorBlack );

GfxSelectPen( colorBlack, 1 ); // broader color 
GfxCircle( 70,90,24 );

_SECTION_END();



_SECTION_BEGIN("CCI9-2");

//HT=ParamColor("HT", colorRed );

ccidn=CCI(8) < 0;
cciup=CCI(9) > 0;


ccresult1 = WriteIf( cciup,"cu", "");
ccresult2 = WriteIf( ccidn,"cd", "");




RequestTimedRefresh( 0 );
GfxSelectFont( "Tahoma", 12, 100 );
GfxSetBkMode( 1 );
GfxSetTextColor( colorWhite );

if ( ccresult1 =="cu")
{
GfxSelectSolidBrush( ColorRGB(0,240,0) ); 

}
else

if ( ccresult2 =="cd")

{
GfxSelectSolidBrush( ColorRGB(240,0,0)); 

}

else

if ( ccresult2 =="")

{
GfxSelectSolidBrush( colorGrey40 ); 

}

GfxSelectFont( "Arial", 10, 100 );
GfxSetBkMode( 1 );
GfxSetTextColor( colorBlack );

GfxSelectPen( colorBlack, 1 ); // broader color 
GfxCircle( 70,90,18 );




_SECTION_END();




_SECTION_BEGIN("%BB7-1");

//IT=ParamColor("IT", colorRed );
p=7;
x=((C+2*StDev(C,p)-MA(C,p))/(4*StDev(C,p)))*100;
bbdown= x < 40;
bbup= x > 40;

bbresult1 = WriteIf( bbup,"bu", "");
bbresult2 = WriteIf( bbdown,"bd", "");
bbresult3 = WriteIf( C,"bearishrevers", "");



RequestTimedRefresh( 0 );
GfxSelectFont( "Tahoma", 12, 100 );
GfxSetBkMode( 1 );
GfxSetTextColor( colorWhite );

if ( bbresult1 =="bu")
{
GfxSelectSolidBrush( ColorRGB(62,255,62) ); 

}
else

if ( bbresult2 =="bd")

{
GfxSelectSolidBrush( ColorRGB(255,62,62) ); 

}

else

if ( bbresult2 =="")

{
GfxSelectSolidBrush( colorGrey40 ); 

}

GfxSelectFont( "Arial", 10, 100 );
GfxSetBkMode( 1 );
GfxSetTextColor( colorBlack );

GfxSelectPen( colorBlack, 1 ); // broader color 
GfxCircle( 70,90,12 );


_SECTION_END();


_SECTION_BEGIN("Fast_trend");
//JT=ParamColor("JT", colorRed );

Prd3=5; //Param("Daily_Period1",8,1,200,1);
Prd4=8; //Param("Daily_Period2",15,1,200,1);
TimeFrameSet (inDaily);


TM3 = T3 ( C , Prd3) ; 
TM4 = T3 ( C , Prd4) ; 

TimeFrameRestore();

A=C>TM3 AND C<TM4;
B=C>TM3 AND C>TM4;
C=C<TM3 AND C>TM4;
D=C<TM3 AND C<TM4;

result1 = WriteIf( A,"bullrevers", "");
result2 = WriteIf( B,"bull", "");
result3 = WriteIf( C,"bearishrevers", "");
result4 = WriteIf( D,"bear", "");


RequestTimedRefresh( 0 );
GfxSelectFont( "Tahoma", 12, 100 );
GfxSetBkMode( 1 );
GfxSetTextColor( colorWhite );

if ( result1 =="bullrevers")
{
GfxSelectSolidBrush( colorWhite ); 

}
else

if ( result2 =="bull")

{
GfxSelectSolidBrush( ColorRGB(113,255,113) ); 

}

else

if ( result3 =="bearishrevers")

{
GfxSelectSolidBrush( colorGrey40 ); 

}

else

if ( result4 =="bear")

{
GfxSelectSolidBrush( ColorRGB(255,113,113) ); 
OP = "M"; 

}

GfxSelectFont( "Arial", 10, 100 );
GfxSetBkMode( 1 );
GfxSetTextColor( colorBlack );

GfxSelectPen( colorBlack,1); // broader color 
GfxCircle( 70,90,6 );

//GfxTextOut( OP ,92,235) ;

_SECTION_END();

6 comments

1. xel

FYI

Trading Rules and guide for using the indicator:

http://xtrator.wordpress.com/2012/05/21/nirvana/

… and for understanding the Bands:

http://xtrator.wordpress.com/2011/07/28/pandora-my-new-bands-for-trading/

Cheers.

2. Mayur

some error when the past 293 plotting

3. xel

You mean T3 function…? You need the AFL function, or add this code replacing the include line:

/////////////////////////////////////////////////
function T3(price,periods) //AMA-based
{
//s=Param("Hot ?",0.618,0,10,0.001,0);
s = 0.618;
periods = 2/(periods+1);
e1=AMA(price,periods);
e2=AMA(e1,Periods);
e3=AMA(e2,Periods);
e4=AMA(e3,Periods);
e5=AMA(e4,Periods);
e6=AMA(e5,Periods);
c1=-s*s*s;
c2=3*s*s+3*s*s*s;
c3=-6*s*s-3*s-3*s*s*s;
c4=1+3*s+s*s*s+3*s*s;
Ti3=c1*e6+c2*e5+c3*e4+c4*e3;
return ti3;
}


Cheers !
4. rajeshsingh75

not working with 5.40 even stalling dll plugin .guide how to use .

5. Mayur

not working bro. kindly update new afl

6. sezer32

thanks

Leave Comment

Please login here to leave a comment.

Back