Subscription & data-feed pricing Class schedule

Margin rates Stock & option commissions

Attention: Discussion forums are read-only for extended maintenance until further notice.

 Can't get ABS to work in formula Rate this Topic:
 Previous Topic · Next Topic Watch this topic · Print this topic ·
 Posted : Sunday, April 24, 2011 10:05:29 PM
Registered User
Joined: 4/29/2006
Posts: 16
I'm trying to get the average absolute range of the open to the close (in percent)  for a set of specific dates.  Please help me in correcting this formula.  Thanks.

Static Sum As Single
If isFirstBar Then
Sum = 0
End If
If  Price.DateValue.Year = 2010 AndAlso _
((Price.DateValue.Month = 12 AndAlso _
Price.DateValue.Day = 2) OrElse _
(Price.DateValue.Month = 12 AndAlso _
Price.DateValue.Day = 7))Then
Sum += Math.Abs(Price.Last / Price.Open)
End If
If isLastBar Then
Plot = 100 * (Sum / 2 - 1)
Else
Plot = Single.NaN
End If
Bruce_L
 Posted : Monday, April 25, 2011 8:56:00 AM

Worden Trainer

Joined: 10/7/2004
Posts: 65,138
Move the -1 to the Sum += line as Price.Last / Price.Open will always be positive anyway for actively trading stocks.

Sum += Math.Abs(Price.Last / Price.Open - 1)

Then your Plot line would need to remove the -1:

Plot = 100 * Sum / 2

-Bruce
Personal Criteria Formulas
TC2000 Support Articles
jas0501
 Posted : Monday, April 25, 2011 12:02:50 PM
Registered User
Joined: 12/31/2005
Posts: 2,499
So your code as writtem takes 12/2/2010 and 12/7/2010 values and sums them. Then on the last bar it plots 100 * (sum/2 - 1). So only 1 data point is plotted.

The value = abs(close / open). This looks strange as it will never be negative. Did you mean (Close - Open)?

ABS(Close/Open)
12/2/2010 Open = 5, close = 10 = 10/5 = 2
12/7/2010 Open = 10 close = 5  = 5/10 = .5
sum = 2.5
plot = 100 * (2.5/2 - 1) = 25

ABS(close - open) yields
5
5
sum = 10
plot = 100 * (10/2 - 1) = 400

What are you trying to plot in English?

jas0501
 Posted : Monday, April 25, 2011 12:13:32 PM
Registered User
Joined: 12/31/2005
Posts: 2,499

Looking closer

average absolute range of the open to the close (in percent)

in not ABS(Close / Open)

but

ABS(Close - Open)/Open
ABS(10 - 5)/5 = 1
ABS(5-10)/10 = .5
Sum = 1.5
plot = 100 *(1.5/2 - 1) = -25  ' wrong formula. Should be plot = 100 * (sum/2)

Plot = 100 * (1.5/2) = 75

Note the average is 75% but the total price change is zero. 5->10 10->5

Bruce_L
 Posted : Monday, April 25, 2011 12:13:57 PM

Worden Trainer

Joined: 10/7/2004
Posts: 65,138
jas0501,
The original question is in plain English and has already been answered. The range from the Open to Close as defined in the question is the same as the absolute Percent Change from Open to Close.

The only problem with the original version was that the -1 was in the wrong line. And the only reason it was wrong was because the result needed to be the Average of the Absolute Percent Change instead of the Average of the Percent Change.

-Bruce
Personal Criteria Formulas
TC2000 Support Articles
jas0501
 Posted : Monday, April 25, 2011 12:19:47 PM
Registered User
Joined: 12/31/2005
Posts: 2,499
Programming hint:
When developing code, or more specificly formulas using hypothetical values and doing the math beforehand often helps clarify the logic and reveals what will plot. It may not be what you want and often will reveal logic errors.

This is why is used the O=5 C=10, and O=10 C=5 data point as an illustration. It is much easier to "understand" the result and judge the correcness of the formulus.

 Posted : Monday, April 25, 2011 9:57:39 PM
Registered User
Joined: 4/29/2006
Posts: 16
Works exactly as I wanted.  Thank you Bruce.

Bruce_L
 Posted : Wednesday, April 27, 2011 9:24:18 AM

Worden Trainer

Joined: 10/7/2004
Posts: 65,138
You're welcome. Our pleasure.

-Bruce
Personal Criteria Formulas
TC2000 Support Articles
Users browsing this topic
Guest-1

 Forum Jump Customer Training & Support - Ask a Trainer - TC2000 version 12/18 - Ask a Trainer - TC2000 version 7 - Ask a Trainer - StockFinder 5.0 - PCFs, EasyScan and Custom Indicators General Discussions - Stock and Market Talk - TC2000 version 12 or 18 - TC2000 version 7 - StockFinder 5.0 - RealCode for StockFinder 5.0 Tutorial Videos - TC2000 version 12 tutorial videos - TC2000 version 7 tutorial videos You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot delete your posts in this forum. You cannot edit your posts in this forum. You cannot create polls in this forum. You cannot vote in polls in this forum.