calculating return in a range

K

kman

Hi,
I have a range of stock prices. with indication for buy or sell. and
want a function to calculate the return of the range for example :

buy 522.73
buy 527.9
buy 528.81
buy 532.33
buy 535.1
buy 536.23
buy 537.03
buy 538.57
sell 537.54
sell 532.86
sell 538.14
sell 533.08
buy 531.22

I want to calculate the return for the first buy signal. the range i
from the start to the first sell signal 537.54- 522.73
then the sell range untill the first buy signal 531.22- 537.5
 
D

Don Guillett

play around with MATCH and OFFSET to get your desired result.
=OFFSET(I1,MATCH("sell",I2:I22,0),1)-OFFSET(I1,MATCH("buy",I2:I22,0),1)
This gives 14.81

You can use the same idea for the next one.
You could also use match within an INDEX formula
 
K

kman

If I understand correctly I should do it manualy the first range, the
second range ... I am looking fo a function that will do it automaticly
 
D

Don Guillett

Is this automatic enough?
Merry Xmas

Sub buysell()
x = Range("i2:i22").Find("buy").Address
y = Range("i2:i22").Find("sell").Address
z = Range(y & ":i22").Find("buy").Address
aa = Format(Range(y).Offset(, 1) - _
Range(x).Offset(, 1), "$#.00")
MsgBox aa
bb = Format(Range(z).Offset(, 1) - _
Range(y).Offset(, 1), "$#.00")
MsgBox bb
End Sub
 
M

Max

... I am looking for a function that will do it automatically

Another play to try ..

A sample construct is available at:
http://www.savefile.com/files/9864468
Calculating return in a range_kman_wks.xls

Assuming the data as posted is in cols A and B, row1 down
Put in C1: =IF(A1="","",COUNTIF($A$1:A1,A1))
Put in C2: =IF(A2="","",IF(A2=A1,"",COUNTIF($A$1:A2,A2)))

Put in D1: =IF(C1="","",A1)
Copy D1 down to D2

Put in E2, array-enter the formula (i.e. press CTRL+SHIFT+ENTER):
=IF(A2="","",IF(A2=A1,"",B2-INDEX(B:B,MATCH(1,($C$1:C2=MAX(IF($D$1:D2=A1,$C$
1:C2)))*($A$1:A2=A1),0))))

Select C2:E2, copy down as far as required
Col E should return the desired results
 
M

Max

Put in C1: =IF(A1="","",COUNTIF($A$1:A1,A1))
Formula above is a little superfluous (clean-up overlooked earlier, sorry)
Simply put in C1: =IF(A1="","",1)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top