[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Calculation question again



PureBytes Links

Trading Reference Links

Martin,

Thanks for the technique.  I will try it tonight.  I read the manual twice
(once is unusual for me) and never saw that cum() function.

That second technique in Ton's post didn't work, or I'm doing something
wrong.

I have some more testing to do tonight until I get down to the nitty-gritty
calculation using ref().  Briefly, I need to do the following.

For value MXX, I need to calculate the following:

MXX;
One:=MXX - MXX back one day;
Two:=MXX - MXX back two days;
And so on to MXX - MXX back 18 days.

I have already coded this using the ref() function, but haven't got to the
point when I can test it yet as I have to complete verifying all of the work
leading up to calculating MXX.  I hope to complete that tonight.  If you
know of a sneaky way to do this other than using ref() let me know.

Thanks,

Guy

Never be afraid to try something new. Remember, amateurs built the ark,
professionals built the Titanic.

-----Original Message-----
From: owner-metastock@xxxxxxxxxxxxx [mailto:owner-metastock@xxxxxxxxxxxxx]On
Behalf Of Martin Haesler
Sent: Wednesday, August 16, 2000 9:15 PM
To: metastock@xxxxxxxxxxxxx
Subject: Re: Calculation question again

Guy ... suggest you do the following

kount:=if(increment condition,1,if(decrement condition,-1,0));
runningtotal:=cum(kount);

kount will be +1,-1, or 0 depending on which condition (if any) exists
running total will accumulate kount, adding one when an increment is
required, subtracting one when a decrement is required, and leaving it the
same if neither is warranted.

I use this method often when determining cumulative profit in an indicator.
It is much faster because it eliminates the "previous" function.

Regards ... Martin from Oz


----- Original Message -----
From: "Guy Tann" <grt@xxxxxxxxxxxx>
To: "Metastock User Group" <metastock-list@xxxxxxxxxxxxx>
Sent: Thursday, August 17, 2000 2:20 AM
Subject: Calculation question again


> List,
>
> Well, I'm still trying to move our Intermediate Term Signals into MS and
I'm
> still having problems.  I have completed all of the coding and am now in
the
> debugging stage.
>
> First, here are two calculations that I've tried.  One works (the one with
> PREV) and one doesn't.  After all of the help the last time around, I
> naturally tried the Ref() function because everyone said it was the
> preferable approach.
>
> Any and all help is appreciated.
>
> COMHCRR:= If( FmlVar("COM-CNTRY","COMCR") > 0 , PREV + 1 , If(
> FmlVar("COM-CNTRY","COMCR") < 0 , PREV - 1 , PREV ) );
> COMHCRR;
>
> COMHCRT:= If(  FmlVar("COM-CNTRY","COMCR") > 0 , Ref( COMHCRT, -1 ) + 1 ,
> If(  FmlVar("COM-CNTRY","COMCR") < 0 , Ref( COMHCRT , -1 ) - 1 , Ref(
> COMHCRT , -1 ) ) );
> COMHCRT;
>
> This is a simple calculation where I accumulate a total, adding 1 if the
> indicator  > 0, subtracting 1 if it is < 0 and just carrying the previous
> day's value forward if there is no change.  Nothing sophisticated.
>
> My second minor problem is that the answer is incorrect.  I've exported my
> MS SPI data into a Clipper database to insure an identical test data set.
> Based upon that, the results should be identical, especially since this
> calculation is so simple.  I haven't double-checked that COMCR calculation
> in both systems, but I will right now.  I should say that I had verified
> that calculation before but I will do it again just to make sure nothing
> else managed to get screwed up.
>
> Guy
>
> Never be afraid to try something new. Remember, amateurs built the ark,
> professionals built the Titanic.
>
>
>