I know this isnt really a VB question per say, but is what I am developing

in VB.NET and Excel is the only place that has provided direction. I wanted

to ask the public if perhaps you could lend me a hand a point me into the

right direction if there is someone who has had experiance with this. By all

means if you know a better place to ask, let me know.

There is an excel help file titled YIELD. I will copy any paste the file

below. I am writing a VB.NET web application and need the formula which is

included with in the help file, but doesnt give all that is needed to make

the calculation. For instance here is an excerpt from one of the remarks:

"If there is more than one coupon period until redemption, YIELD is

calculated through a hundred iterations. The resolution uses the

Newton method, based on the formula used for the function PRICE. The yield

is changed until the estimated price given the yield is close to

price."

The help file titled PRICE gives the equation, but the whole "100

iterations" is unfamiliar to me. I know what they are doing, but want to

find out how they calculate this programatically. The PRICE/YIELD add-ins

must be added in order for them to work under the add-ins setcion and is

called Analysis ToolPak - VBA. Is there a way to get a hold of this VBA and

then I can convert the code to the language I am using.

If you have any other ideas to help me...I am all game, just point the

direction.

Thank you,

Steve Wofford

www.IntraRELY.com

Excel help file:

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

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

YIELD

Returns the yield on a security that pays periodic interest. Use YIELD to

calculate bond yield.

If this function is not available, and returns the #NAME? error, install and

load the Analysis ToolPak add-in.

On the Tools menu, click Add-Ins.

1.. In the Add-Ins available list, select the Analysis ToolPak box, and

then click OK.

2.. If necessary, follow the instructions in the setup program.

Syntax

YIELD(settlement,maturity,rate,pr,redemption,frequ ency,basis)

Important Dates should be entered by using the DATE function, or as

results of other formulas or functions. For example, use DATE(2008,5,23) for

the 23rd day of May, 2008. Problems can occur if dates are entered as text.

Settlement is the security's settlement date. The security settlement date

is the date after the issue date when the security is traded to the buyer.

Maturity - is the security's maturity date. The maturity date is the date

when the security expires.

Rate - is the security's annual coupon rate.

Pr - is the security's price per $100 face value.

Redemption - is the security's redemption value per $100 face value.

Frequency - is the number of coupon payments per year. For annual

payments, frequency = 1; for semiannual, frequency = 2; for quarterly,

frequency = 4.

Basis is the type of day count basis to use.

Basis Day count basis

0 or omitted US (NASD) 30/360

1 Actual/actual

2 Actual/360

3 Actual/365

4 European 30/360

Remarks

a.. Microsoft Excel stores dates as sequential serial numbers so they can

be used in calculations. By default, January 1, 1900 is serial number 1, and

January 1, 2008 is serial number 39448 because it is 39,448 days after

January 1, 1900. Microsoft Excel for the Macintosh uses a different date

system as its default.

b.. The settlement date is the date a buyer purchases a coupon, such as a

bond. The maturity date is the date when a coupon expires. For example,

suppose a 30-year bond is issued on January 1, 2008, and is purchased by a

buyer six months later. The issue date would be January 1, 2008, the

settlement date would be July 1, 2008, and the maturity date would be

January 1, 2038, which is 30 years after the January 1, 2008, issue date.

c.. Settlement, maturity, frequency, and basis are truncated to integers.

d.. If settlement or maturity is not a valid date, YIELD returns the

#VALUE! error value.

e.. If rate < 0, YIELD returns the #NUM! error value.

f.. If pr ? 0 or if redemption ? 0, YIELD returns the #NUM! error value.

g.. If frequency is any number other than 1, 2, or 4, YIELD returns the

#NUM! error value.

h.. If basis < 0 or if basis > 4, YIELD returns the #NUM! error value.

i.. If settlement ? maturity, YIELD returns the #NUM! error value.

j.. If there is one coupon period or less until redemption, YIELD is

calculated as follows:

where:

A = number of days from the beginning of the coupon period to the

settlement date (accrued days).

DSR = number of days from the settlement date to the redemption date.

E = number of days in the coupon period.

k.. If there is more than one coupon period until redemption, YIELD is

calculated through a hundred iterations. The resolution uses the Newton

method, based on the formula used for the function PRICE. The yield is

changed until the estimated price given the yield is close to price.