You have these statements like this
SVS = IIf(Filter = (EV < Volumeamount), EV, 0 );
remove the 'filter='
SVS = IIf(EV < Volumeamount, EV, 0 );

In this statement, if HighClose == Lowclose then you will get a divide by
zero which gives error
<< maybe check this with explorations to see if this occurs
EV = abs(Todayclose-yesterdayclose)/(HighClose-Lowclose)*Volume;
change to, using Nz which convert null values to zero
EV = nz(abs(Todayclose-yesterdayclose)/(HighClose-Lowclose)*Volume);

together with the Cum as mentioned before

--
Cheers
Graham
AB-Write >< Professional AFL Writing Service
Yes, I write AFL code to your requirements
http://www.aflwriting.com


On 23/02/07, dbw451 <[EMAIL PROTECTED]> wrote:

 Nick, use the Cum function instead of the loop to calculate SVS_VF:



SVS_VF = Cum(SVS);



I think the first value of SVS (i.e. SVS[0]) must be NULL which is causing
your calculation to sum as NULL.



Regards,



David


 ------------------------------

*From:* [email protected] [mailto:[EMAIL PROTECTED] *On
Behalf Of *NickCivit
*Sent:* 02/22/2007 6:28 PM
*To:* [email protected]
*Subject:* [amibroker] Array logic



I thought I had my problem solved from a previous post but still
having trouble. I am obviously new,but am trying hard to learn.I saw a
formula in a book I read and thought I'd give it a try. I have most of
it working but I can not total the array properly. When I run an
exploration the SVS_VF column is blank. If it was working properly it
should show a running total of volume. Not sure what I am doing wrong
any help appreciated.

thank you
Nick C.

_SECTION_BEGIN("Effective Volume");
/* Create date: 13 Feb 2007
The Close Price of the current bar is greater than the Close Price of
1 bar ago */

TodayClose = Close;
TodayLow=Low;
yesterdayclose=Ref(Close,-1);
HighClose=Max(TodayClose,YesterdayClose);
LowClose=Min(TodayLow,YesterdayClose);

EV = abs(Todayclose-yesterdayclose)/(HighClose-Lowclose)*Volume;

VolumeAmount = 10000;
SVS = IIf(Filter = (EV < Volumeamount), EV, 0 );
SVS=IIf(TodayClose > YesterdayClose,SVS,-SVS);
LVS = IIf(Filter = (EV > VolumeAmount), EV, 0 );
Lvs = IIf(TodayClose > YesterdayClose,LVS,-LVS);

SVS_VF=SVS;

LVS_VF = LVS;

for(i=1;i<BarCount;i++)
{
SVS_VF[i] = SVS_vf[i-1] + SVS[i];
}

_Section_End();

/*_SECTION_BEGIN("Small Volume");
SetChartOptions(0,chartShowDates);
//SetChartOptions(0,0,chartGrid30|chartGrid70);
periods = Param( "Periods", 15, 1, 200, 1 );
Plot( SVS,"Small Volume", ParamColor( "Color", colorCycle ),
ParamStyle("Style") );
_SECTION_END();

_SECTION_BEGIN("LargeVol");
SetChartOptions(0,chartShowDates);
//SetChartOptions(0,0,chartGrid30|chartGrid70);
periods = Param( "Periods", 15, 1, 200, 1 );
Plot( LVS,"LargeVol", ParamColor( "Color", colorCycle ),
ParamStyle("Style") );
_SECTION_END();*/

AddColumn( Open, "Open " );
AddColumn( Close, "Close " );
AddColumn( Volume, "Volume " );
AddColumn( EV, "EVVolume " );
AddColumn( SVS, "SVS " );
AddColumn( Svs_VF, "SVS_VF " );
AddColumn( LVS, "LVS " );
AddColumn( LVS_VF, "LVS_VF " );
Filter=1;



Reply via email to