either pass it to the function or assign it to the .GlobalEnv

On Mon, May 20, 2013 at 8:15 AM, Dominykas Grigonis <
dominykasgrigonis@gmail.com> wrote:

> Hello, I am writing a scenario analysis for option strategies. I am trying
> to build a framework, such that new pricing functions can be added as well
> as volatility surface, interest rate term structure, etc… But for now I am
> sticking to ear vanilla case. Anyways, the problem is not actually related
> to finance, but I could not find any answer so far.
>
> fun1 <- function(a,b){fun2(a)}
> fun2 <- function(c){fun3(c)}
> fun3 <- function(d){d+b}
>
>
> fun1(2,2) #Error in fun3(c) : object 'b' not found
>
> I have always thought that if functions can not find a variable it
> gradually goes back up through each single environment looking for that
> variable. However, now it is apparent, that it only looks for it in
> .GlobalEnv.
>
> In my code fun1 is the main function.
>
> fun2 is called via lapply wrapper from fun1 and simply has if else
> structure, which checks the security type and directs to appropriate "fun3".
>
> fun3 is called via sapply and it returns a vector for each security, which
> indicates profit and loss function for a specified time. Though sapply
> wrapper returns matrix: xaxis=possible stock value, yaxis=date, zaxis=pnl.
>
> As you can imagine there are plenty of variables to pass from fun1 to fun3
> e.g. fun1 lapply wrapper:
> pnl <- lapply(cur.instr, pnl.aggregate, tVec=tVec, cur.range=cur.range,
> cal=cal, par=cur.par)
>
> cur.instr - list of objects(lists) of securities. Including all constant
> parameters of security: i.e. strike or time to maturity.
> pnl.aggregate - fun2
> tVec - vector of time fractions. if in pricing (rho=T-t) tVec is "t"
> cur.range  - vector of possible stock values
> cal  - "string". appropriate calendar indicating trading days. RQuantLib
> stuff
> par  - object(list) of stock parameters, including s0, vol(integer or
> matrix), div(continuous), etc
>
> anyways, you got the idea of my issue. I do not want to pass all of these
> via arguments through 2 functions. The main reason is that it becomes messy
> and complicates the code significantly. I was thinking about eval, that
> might evaluate fun3 in environment of fun1. However could not find a way
> how to do it. When I was working directly in fun1 environment. i.e. global
> frame, and evaluating "future" fun1 in it, all worked perfectly. However,
> when I finally ran fun1… it made me sad...
>
> Do you have any ideas how to overcome this issue?
> I could share the code, but there is quite a lot of it. I hope you
> understand my problem and I will appreciate any help. Thank you in advance.
>
> Kind regards,--
> Dominykas Grigonis
>
>
>         [[alternative HTML version deleted]]
>
>
> _______________________________________________
> R-SIG-Finance@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-sig-finance
> -- Subscriber-posting only. If you want to post, subscribe first.
> -- Also note that this is not the r-help list where general R questions
> should go.
>

	[[alternative HTML version deleted]]

