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

Volume Spike Exploration for Amibroker (AFL)

Rating:
3 / 5 (Votes 4)
Tags:
amibroker, exploration

Demo code by Progster in response to this thread here and posted in this thread

The formula is an exploration for finding volume spikes:

  • A volume spike is defined to be when volume exceeds a StdDev above it’s moving average
  • Looking back, the code filters for a volume spike an exact # of bars ago
  • Looking forward, the code filters for the first volume spike that takes place after the current bar.

Similar Indicators / Formulas

General Market Exploration by XeL
Submitted by xel over 11 years ago
miftha indicator
Submitted by coolpace over 13 years ago
Deel - Average Dollar Price Volatility
Submitted by kaiji about 14 years ago
DIX50,20,10
Submitted by morgen over 13 years ago
4-Day-Range Switch
Submitted by santho_sd over 13 years ago

Indicator / Formula

Copy & Paste Friendly
/*	
	VolSpikeDemo_01.afl

	Demo code by Progster in response to:

	http://finance.groups.yahoo.com/group/amibroker/message/124977

	This is Exploration code.

*/


MaxBack = 150; 		// maximum number of bars to look back
MaxFwd = 30;			// maximum number of bar to look forward

//	Exploration parameters
ShowBack = ParamToggle("ShowBack","No|Yes",1);
LB = Param("LookBack",1,1,MaxBack,1);		//	LookBack (for vol spikes exactly this many bars ago)

ShowFwd = ParamToggle("ShowFwd","No|Yes",0);
LF = Param("LookFwd",10,1,MaxFwd,1);		//	LookFwd (for vol spikes up to this many bars in the future)

//	Array calculations
MA_V = (MA(V,MaxBack)) ;	
SD_V = StDev(V,MaxBack) ;
VolSpike = Volume > (MA_V + SD_V);

//	Use array function BarsSince() to look back  (convenient and fast)
BarsSinceVolSpike = BarsSince(VolSpike);


//	Use a loop to look forward	(less convenient, less fast)
BarsToVolSpike = -1 ;

if ( ShowFwd )
{
    for ( idx = 0 ; idx < ( BarCount - MaxFwd ); idx++ )
    {
        //	Since jdx is positive, we are looking into the future relative to the current bar
        for ( jdx = 1; jdx < MaxFwd; jdx++ )
        {
            if ( VolSpike[idx + jdx] )
            {
                BarsToVolSpike[idx] = jdx;
                break;
            }
        }
    }
}

//	Set exploration Filter according to whether we are looking back, forward, or both
if(ShowBack AND ShowFwd){
	Filter = (BarsSinceVolSpike == LB) OR (BarsToVolSpike >= 0) ;
}
else if ( ShowBack ){
	Filter = (BarsSinceVolSpike == LB) ;
}
else if ( ShowFwd ){
	Filter = (BarsToVolSpike >= 0) ;
}

//	Info at current bar
AddColumn( DateTime(), "cDate", formatDateTime );		//	c = "current"
/*
AddColumn(Volume, "cVolume" );
AddColumn(MA_V, "cMA_V" );
AddColumn(SD_V, "cSD_V" );
*/

//	Info at the previous VolSpike bar.  p = "previous" or "past"
if ( ShowBack )
{
	// Volume-based calcs with no particular formatting applied
    AddColumn( LB, "BarsBack" );
    AddColumn( Ref( DateTime(), -LB ), "pDate", formatDateTime );
    AddColumn( Ref( Volume, -LB ), "pVolume" );
    AddColumn( Ref( MA_V, -LB ), "pMA_V" );
    AddColumn( Ref( SD_V, -LB ), "pSD_V" );
}

//	Info at the next VolSpike bar.  f = "forward"

if ( ShowFwd )
{
    textColor = colorDefault ;
    BGColor = IIf( BarsToVolSpike < 0, colorRed, colorDefault ) ;		// Use Red BG color if no forward vol spike found

    //	Volume-based calcs formetted to 0 decimals
    AddColumn( BarsToVolSpike, "BarsFwd", 1.0, textColor, BGColor );
    AddColumn( Ref( DateTime(), BarsToVolSpike ), "fDate", formatDateTime, textColor, BGColor );
    AddColumn( Ref( Volume, BarsToVolSpike ), "fVolume", 1.0, textColor, BGColor );
    AddColumn( Ref( MA_V, BarsToVolSpike ), "fMA_V", 1.0, textColor, BGColor );
    AddColumn( Ref( SD_V, BarsToVolSpike ), "fSD_V", 1.0, textColor, BGColor );
}

1 comments

1. d4vidk4ng

Hi do you have afl for volume spike in line chart
thanks

Leave Comment

Please login here to leave a comment.

Back