Hp-19BII, S Function « Next Oldest | Next Newest »

 ▼ Jim Kimes Junior Member Posts: 33 Threads: 12 Joined: Jan 1970 12-02-2001, 06:58 PM Can someone tell me if the S function, as described on page 236 of the manual, will take only two nests? I tried it using three decisions and the invalid message kept pointing to the third : (colon). I presumed then that my problem was the nesting limit. I wrote other equations with two nests and they worked fine. If this is the case, are there any suggestions how I might make an equation more complex, circumventing the nesting limit? Thanks. Jim Kimes ▼ W. Bruce Maguire II Member Posts: 180 Threads: 23 Joined: Apr 2012 12-03-2001, 12:25 PM Jim: I have used more than two levels of nesting (look at the recent post I made to the "Articles" section regarding the FMRR program---at the end). Can you write-out the program (or at least the offending section) and post it? My guess is that you have some other syntax problem (missing or extra paretheses), and the 19BII is choosing to error on the colon. Hopefully I understand the problem, but if I'm incorrect, please post back! Bruce. ▼ Jim Kimes Junior Member Posts: 33 Threads: 12 Joined: Jan 1970 12-05-2001, 09:51 AM Bruce: Below is the equation I’m trying to use. What’s strange is that the equation works if I remove the middle leg and it works if I remove the third leg, but doesn’t work if I use all three. IF(S(OPPROF):OPPROF-SHx(((SPx(1-SC)+OPx(1-OC-(PPx(1+SC)))))):RET-OPPROF/((SHxPP)x(1+SC)))=0 The above is the formula that works now. But if I try to add the number of days application, it balks. However, if I take out the middle leg and add the number of days function, it works; same syntax. Must be what you say, a parentheses problem or something of that nature. IF(S(OPPROF):OPPROF-SHx(((SPx(1-SC)+OPx(1-OC-(PPx(1+SC)))))):RET-OPPROF/((SHxPP)x(1+SC): ANRET-((365/DDAYS(D1:D2:1))xRET)))=0 A sample problem would be: SH = number of shares; SP = strike price of stock; SC = stock commissions; OC = Options commissions; PP = purchase of stock; OPPROF = profit on an options transactions if stock is called. So, if SH = 1,000; SP = \$25.00; SC = .015; OC = .05; OP = \$1.05; PP = \$23.65; D2 = 12/21/01 and D1 = 11/23/01, solving this problem OPPROF = \$1,617.75; RET = 6.74%; and ANRET (annualized return)= 87.9% It will be interesting to see what you get. Jim Kimes ▼ W. Bruce Maguire II Member Posts: 180 Threads: 23 Joined: Apr 2012 12-06-2001, 04:00 PM Jim: I think I see it, but I want to make sure! I'll have the answer for you tomorrow afternoon (just too busy today!). Bruce. W. Bruce Maguire II Member Posts: 180 Threads: 23 Joined: Apr 2012 12-07-2001, 06:54 PM Jim: Here are the alterations to your equation that I made. You did, indeed, have a few parentheses errors, as well as confusion with the "S" function. I changed the names of some of the variables, just to give you some ideas of naming conventions I like for clarity. One thing I like is to always enter percent values in percent, rather than a fraction. This is what I did in your equation, but if you are trained to use fractional values, than you will want to take out the "%" symbols in the names, and take out all the "divide by 100" instances in the equation. I also show you a technique to re-order your variables. Finally, you do not need the "=0" at the end, the machine will assume that. I also remember seeing a technique to produce multiple results at once, which is really what you want here. If I can find it, I will post it. For clarity, I use "_mult_" for the multiplication symbol, and "_div_" for the division symbol in the listing. The program starts with "SELLING~CALLS:" followed by two spaces (for name readability), then key in the rest of the program without the white-space. ``` SELLING~CALLS: 0_mult_ SP\$_mult_ PP\$_mult_ SC%_mult_ OP\$_mult_ OC%_mult_ SH#_mult_ DAT1_mult_ DAT2+ IF(S(PRO\$): PRO\$- SH#_mult_( SP\$_mult_( 1-SC%_div_100 )+ OP\$_mult_( 1-OC%_div_100 )- PP\$_mult_( 1+SC%_div_100 ) ) : IF(S(RTN%): RTN%_div_100- PRO\$_div_( SH#_mult_ PP\$_mult_( 1+SC%_div_100 ) ) : ANN%_div_100-( 365_div_ DDAYS(D1:D2:1)_mult_ RTN%_div_100 ) ) ) ``` I checked the formula on my 19BII with the parameters you sent me, and I get the same results: ----------Jim wrote:---------- A sample problem would be: SH = number of shares; SP = strike price of stock; SC = stock commissions; OC = Options commissions; PP = purchase of stock; OPPROF = profit on an options transactions if stock is called. So, if SH = 1,000; SP = \$25.00; SC = .015; OC = .05; OP = \$1.05; PP = \$23.65; D2 = 12/21/01 and D1 = 11/23/01, solving this problem OPPROF = \$1,617.75; RET = 6.74%; and ANRET (annualized return)= 87.9% It will be interesting to see what you get. Jim Kimes ------------------------------ Let me know how it works out, Bruce. ▼ Jim Kimes Junior Member Posts: 33 Threads: 12 Joined: Jan 1970 12-08-2001, 08:54 AM Bruce, I have not had a chance to analyze totally what you're saying in your Dec 7 posting; however, I revisited the problem while my wife watched QVC and when I finally realized what I was doing wrong, I felt abysmally stupid. I was leaving out the second IF(S) condition. What was so dumb is that I write conditional equations in Excel all the time and I know that with each nest I must have another IF. So I inserted that with a couple of other tweaks and here is what I came up with and it works beautifully. I appreciate the work you put in and will respond to your suggestions when I digest them. IF(S(OPPROF):OPPROF-(SHx((SPx(1-SC)+(OPx(1-OC)-(PPx(1+SC)))))):IF(S(RET):RET-OPPROF/((SHxPP)x(1+SC)): ANRET-RETx(365/DDAYS(D1:D2:1))))=0 Now, when I fill in all variables I can obtain my option profit, my interim return and my annualized return. With further addendums I'm sure I could build in a method of obtaining IRR, also. Thanks, again. Jim Kimes ▼ W. Bruce Maguire II Member Posts: 180 Threads: 23 Joined: Apr 2012 12-08-2001, 11:06 PM Jim: You're very welcome. Please do take a look at the code I listed, as I think it makes a few significant improvements. If nothing else, I think you'll be interested in the technique for ordering the variable buttons (put them in the order you want (for entering data) up-front and multiply all of them by zero). Also, you may want to consider the other way of handling percentage variables and adding symbols tot he variable names to alleviate confusion. Bruce.

 Possibly Related Threads... Thread Author Replies Views Last Post HP50g: Writing a function that returns a function Chris de Castro 2 1,089 12-10-2013, 06:49 PM Last Post: Han IFERR function on HP Prime Mic 2 1,018 12-02-2013, 01:33 AM Last Post: cyrille de Brébisson Solver issue with HP 17BII - different from 19BII Jeff Kearns 13 2,533 11-28-2013, 02:36 AM Last Post: Don Shepherd HP Prime: Dirichlet's eta function recognized but not numerically evaluated Helge Gabert 0 651 11-16-2013, 03:41 PM Last Post: Helge Gabert Possible bug with sqrt function in the HP prime Michael de Estrada 6 1,312 11-15-2013, 12:49 PM Last Post: Michael de Estrada HP-41 MCODE: The Last Function - at last! Ángel Martin 0 599 11-08-2013, 05:11 AM Last Post: Ángel Martin HP Prime 'where' function bluesun08 11 2,049 10-29-2013, 06:56 PM Last Post: Joe Horn HP Prime - Defining a function bluesun08 5 1,240 10-23-2013, 02:43 PM Last Post: Han HP PRIME Function parameters steindid 2 823 10-11-2013, 10:20 AM Last Post: steindid HP Prime can't find how to use partfrac function ! dg1969 3 841 10-04-2013, 09:25 PM Last Post: Joe Horn

Forum Jump: