+91-0000000000

}

Monday – Friday : 9:00 AM – 6:30 PM

N Line Break

N Line Break AFL in Amibroker identifies potential trend changes based on specific price movements breaking predefined lines. Integrated with Amibroker data feed, this AFL detects line break signals, aiding traders in identifying potential shifts in market direction. By leveraging Amibroker data feed capabilities, this AFL assists traders in decision-making by recognizing crucial price movements breaking predefined lines.

/
procedure constructChart_proc(nBar)
{
	global lBeginTime;
	global lEndTime;
	global lBeginNoTime;
	global lEndNoTime;
	global j;

	lBeginTime[ 0 ] = C[ 0 ];
	lEndTime[ 0 ] = C[ 0 ];
	lBeginNoTime[ 0 ] = C[ 0 ];
	lEndNoTime[ 0 ] = C[ 0 ];	
	lastHigh = C[ 0 ];
	lastLow = C[ 0 ];
	numUp = 0;
	numDn = 0;
	j = 0;

	for ( i = 1; i < BarCount; i++ )
	{
		// 1) trend change up
		if ( C[ i ] > lastHigh AND numDn >= nBar AND numUp == 0)
		{
			numDn = 0;
			numUp = numUp + 1;
			j = j + 1;

			lBeginTime[ i ] = lBeginTime[ i - 1];
			lEndTime[ i ] = C[ i ];
			
			lBeginNoTime[ j ] = lBeginNoTime[ j - 1];
			lEndNoTime[ j ] = C[ i ];		

			lastLow = lEndNoTime[ j - 1 ];
			lastHigh = C[ i ];
		}
		// 2) trend up continuation after downbar
		else if ( C[ i ] > lastHigh AND numDn > 0 AND numDn < nBar AND numUp == 0)
		{
			numDn = 0;
			numUp = numUp + 1;
			j = j + 1;

			lBeginTime[ i ] = lBeginTime[ i - 1];
			lEndTime[ i ] = C[ i ];
			
			lBeginNoTime[ j ] = lBeginNoTime[ j - 1];
			lEndNoTime[ j ] = C[ i ];		

			lastLow = lEndNoTime[ j - 1 ];
			lastHigh = C[ i ];			
		}		
		// 3) trend up continuation
		else if ( C[ i ] > lastHigh AND numDn == 0 )
		{
			numDn = 0;
			numUp = numUp + 1;
			j = j + 1;
			
			lBeginTime[ i ] = lEndTime[ i - 1];
			lEndTime[ i ] = C[ i ];
			
			lBeginNoTime[ j ] = lEndNoTime[ j - 1];
			lEndNoTime[ j ] = C[ i ];		
					
			if (numUp >= nbar)
			{
				lastLow = lEndNoTime[ j - nBar ];
			}
			else if (numUp < nBar)
			{
				lastLow = lastLow;
			}
			lastHigh = C[ i ];
		}	
 		// 1) trend change down
		else if ( C[ i ] < lastLow AND numUp >= nBar AND numDn == 0)
		{
			numUp = 0;
			numDn = numDn + 1;
			j = j + 1;

			lBeginTime[ i ] = lBeginTime[ i - 1];
			lEndTime[ i ] = C[ i ];
			
			lBeginNoTime[ j ] = lBeginNoTime[ j - 1];
			lEndNoTime[ j ] = C[ i ];		

			lastLow = C[ i ];
			lastHigh = lEndNoTime[ j - 1 ];						
		}	
		// 2) trend down continuation after upbar
		else if ( C[ i ] < lastLow AND numUp > 0 AND numUp < nBar AND numDn == 0)
		{
			numUp = 0;
			numDn = numDn + 1;
			j = j + 1;

			lBeginTime[ i ] = lBeginTime[ i - 1];
			lEndTime[ i ] = C[ i ];

			lBeginNoTime[ j ] = lBeginNoTime[ j - 1];
			lEndNoTime[ j ] = C[ i ];		

			lastLow = C[ i ];
			lastHigh = lEndNoTime[ j - 1 ];					
		}	
		// 3) trend down continuation
		else if ( C[ i ] < lastLow AND numUp == 0 )
		{
			numUp = 0;
			numDn = numDn + 1;
			j = j + 1;
			
			lBeginTime[ i ] = lEndTime[ i - 1];
			lEndTime[ i ] = C[ i ];
			
			lBeginNoTime[ j ] = lEndNoTime[ j - 1];
			lEndNoTime[ j ] = C[ i ];					
			
			if (numDn >= nbar)
			{
				lastHigh = lEndNoTime[ j - nBar ];
			}
			else if (numDn < nBar)
			{
				lastHigh = lastHigh;
			}
			lastLow = C[ i ];
		}	
		// no break
		else if ( C[ i ] >= lastLow AND C[ i ] <= lastHigh )
		{
			lBeginTime[ i ] = lBeginTime[ i - 1];
			lEndTime[ i ] = lEndTime[ i - 1 ];
		}	
	}
}

// code by E.M.Pottasch, 11/7/2010, N line Break Charts
// After Steve Nison's book: Beyond Candlesticks, Chapter 6: three line break charts
// Option 1: turn time axis on/off, Option 2: N-line break instead of 3-line break
SetBarsRequired( sbrAll, sbrAll );

nBar = Param( "nBar", 3, 2, 10, 1 );
constructChart_proc(nBar);

Title = Name() + 
" |  " + EncodeColor( colorYellow ) + nbar + EncodeColor( colorWhite ) + " Line Break";

chartType = ParamToggle("Show Time Axis","show|hide",0);
if (chartType)
{
	GraphXSpace = 5;
	SetChartOptions( 0, chartShowDates );
	Plot(C, "\nTLB", colorWhite, styleBar);
	C = lEndTime;
	O = lBeginTime;
	H = IIf( C > O, C, O );
	L = IIf( C > O, O, C );
	Plot(C,"", colorWhite, styleCandle);
} 
else
{
	delta = BarCount - 1 - j;
	lBeginNoTime = Ref(lBeginNoTime,-delta);
	lEndNoTime = Ref(lEndNoTime,-delta);
	C = lEndNoTime;
	O = lBeginNoTime;
	H = IIf( C > O, C, O );
	L = IIf( C > O, O, C );
	Plot(C,"\nTLB", colorWhite, styleCandle);
}

Open chat
1
Hi, how can I help you?