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

Gaan+Gap+Ema+Bull Harami for Amibroker (AFL)

Copy & Paste Friendly
_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("Graphics");
GrpPrm=Param("Graphic Space",4,-50,50);
GraphXSpace=GrpPrm;
_SECTION_END();
//======================================================================================







_SECTION_END();

Buy=Scolor=ParamColor( "Sup Color", colorBrown );





///////////////////////////////////////////////////////////////////////////////
//	Gap Finder
//	AFL that plots that unfilled Gaps encountered within the last N bars.
// Author : Adheer Pai (adheer@gmail.com)
///////////////////////////////////////////////////////////////////////////////

// Input : The number of bars ago from where to start looking for gaps.
// Default is 250 : So, by default we search for Gaps found in last 250 trading days ( 1 year )
period = Param("Lookback Period", 250, 15, 500);
// If we do not have enough bars, adjust the period accordingly.
if( BarCount - period - 1 < 0 ) period = BarCount - 2;

bIsGapUp = ( L > Ref(H, -1) );		// Identify GapUp bars
bIsGapDn = ( H < Ref(L, -1) );		// Identify GapDown bars

// We are not interested in Gap Ups and Gap Downs before the Period e.g. before the last 250 bars.
// So we clear the values for bars before the ones we are interested in.
for( i = 0 ; i < (BarCount - 1 - period) ; i++ )
{
	bIsGapUp[i] = False;
	bIsGapDn[i] = False;
}

// Now plot GapUp bars with a Up-Triangle below its low.
PlotShapes(IIf(bIsGapUp, shapeSmallUpTriangle, shapeNone), colorBlue, 0, L, -12 );
// Now plot GapDown bars with a Down-Triangle below its high.
PlotShapes(IIf(bIsGapDn, shapeSmallDownTriangle, shapeNone), colorRed, 0, H );

// Now walk from the first bar (e.g 250 bars ago, to the current bar)
for( i = (BarCount - period - 1) ; i <= (BarCount - 1) ; i++ )
{
	dUpper = 0.0; dLower = 0.0; bFilled = True;
	// Is the current bar a Gap-Up bar ?
	if( bIsGapUp[i] == True )
	{
		// If yes, the store the Gap (Upper value) and Lower values.
		dUpper = L[i]; dLower = H[i-1]; bFilled = False;
		// Now walk till the current bar and see if the Gap values have been filled from Above.
		// I.e prices are falling and the gap is being falled.
		for( j = i+1; j <= (BarCount - 1) ; j++ )
		{
			// Check whether the current low is lesser than the Gap high. If yes, the Gap
			// has been penetrated.
			if( L[j] < dUpper )
			{
				dUpper = L[j];			
				// Determine whether the Gap has been fully penetrated - if yes, then the
				// Gap has been filled.
				if( dUpper <= dLower ) bFilled = True;
			}
			if( bFilled == True ) break;
		}
	}
	else if( bIsGapDn[i] == True )
	{
		// Same logic as GapUp - except we check whether the Gap has been pierced from Below.
		// i.e Prices are rising and the Gap has been filled.
		dUpper = L[i-1]; dLower = H[i]; bFilled = False;
		for( j = i+1; j <= (BarCount - 1) ; j++ )
		{
			if( H[j] > dLower )
			{
				dLower = H[j];
				if( dLower >= dUpper ) bFilled = True;
			}
			if( bFilled == True ) break;		// Gap was filled, so move on to find the next gap.
		}
	}
	if( bFilled == False )			// Gap Not filled - so plot horizontal line at the Gap Level.
	{
		pLine = LineArray(i-1, dLower, BarCount-1,dLower, 1);
		Plot(pLine, "", colorRed, styleDashed);
		pLine = LineArray(i-1, dUpper, BarCount-1, dUpper, 1);
		Plot(pLine, "", colorBlue, styleDashed);
	}
}


/*Gann HiLo*/

Hld = IIf(C > Ref(MA(H, 3), -1), 1, IIf(C < Ref(MA(L, 3), -1), -1, 0));
Hlv = ValueWhen(Hld != 0, Hld, 1);
Hilo = IIf(Hlv == -1, MA(H, 3), MA(L, 3));
Trigger = IIf(C>Hilo, colorGreen, colorRed);
Plot(Hilo,"HiLo",Trigger,styleStaircase);


tf = Param( "TF", 0, 0, 0, 0 ) ;
tfs = tf * in1Minute ;
TimeFrameSet( tfs ) ;

GraphXSpace=5;
SetChartOptions(0,chartShowArrows|chartShowDates);
_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) Vol " +WriteVal( V, 1.0 ) +" {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 )) ));
Plot( C, "Close",  colorBlack , styleNoTitle | ParamStyle("Style") | GetPriceStyle() ); 



O1=Ref(O,-1);H1=Ref(H,-1);L1=Ref(L,-1);C1=Ref(C,-1);
O2=Ref(O,-2);H2=Ref(H,-2);L2=Ref(L,-2);C2=Ref(C,-2);
O3=Ref(O,-3);H3=Ref(H,-3);L3=Ref(L,-3);C3=Ref(C,-3);


BT=H2<H3 AND L2<L3 AND H1<H2 AND L1<L2;
ST=H2>H3 AND L2>L3 AND H1>H2 AND L1>L2;


LDB=C1>O1;
LDS=C1<O1;
BULLHarami= O>C1 AND O<O1 AND C<O1 AND C>C1; //AND BT AND LDS;
BEARHarami= O<C1 AND O>O1 AND C>O1 AND C<C1; //AND ST AND LDB ;
Buy=BULLHARAMI;
Sell=BEARHARAMI;
//Short=Sell=bear;
//Cover=0;
//Buy=ExRem(Buy,Sell);Sell=ExRem(Sell,Buy);
//Short=ExRem(Short,Cover);Cover=ExRem(Cover,Short);
PlotShapes(IIf(Buy,shapeUpArrow,shapeNone),colorGreen,0,L,Offset=-10);
PlotShapes(IIf(Sell,shapeDownArrow,shapeNone),colorRed,0,H,Offset=-10);
//PlotShapes(IIf(Short, shapeHollowDownArrow , shapeNone), colorRed);
//PlotShapes(IIf(Cover, shapeHollowUpArrow , shapeNone), colorGreen);

TimeFrameRestore();



_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();
Back