cashflow

Upload: rodolfo-sergio-cruz-fuentes

Post on 07-Mar-2016

212 views

Category:

Documents


0 download

DESCRIPTION

TVMONEY

TRANSCRIPT

  • EXPORT IRR()// Credits: Cyrille de Brbisson, Akmon, Dale (DrD), salvomic (Salvo Miccich), // Eddie W. Shore, Didier Lachiese, kharpster// Interal Rate of Return. Cash flows in {L1} list or M1 (matrix with frequencies)// by Salvo MiccichBEGINlocal ch, irr;CHOOSE(ch,"Flows List or Matrix w/ freq","Cash Flows List","CF Matrix whit frequencies");CASEIF ch==1 THENEDITLIST(L1, "Internal Rate of Return");END;IF ch==2 THENEDITMAT(M1, "Internal Rate of Return"); LOCAL flows:={}, j, k, s; s:=SIZE(M1); FOR j FROM 1 TO s(1) DO FOR k FROM 1 TO M1(j,2) DOflows:= append(flows, M1(j,1)); END; END; // for 1, 2L1:= flows;END;DEFAULTMSGBOX("IRR() with {list} or [matrix with frequencies]");RETURN;END; // caseirr:= solve(LIT(MAKELIT((L1(I)/X^(I-1)),I,1,IZE(L1))),X)-1;IF (irr(1)>=1 OR irr(1)
  • L1:= flows;END;DEFAULTMGBOX("MIRR() with {list} or [matrix with frequencies]");KILL;END; // case

    INPUT ({sr, rr, ppyr},"afe and risk rate", {"sr", "rr", "ppyr"}, {"afe rate CF-", "Risk (reinvestment) Rate CF+", "n Payments for year"}, {0,0, 12},{0,0, 12});// sr and rr yearly rates (es. 6%, 10%), ppyr number of payments in a yearsz:= IZE(L1);sr:=sr/ppyr; rr:=rr/ppyr;n:=sz-1;flneg:=MIN(L1,0); flpos:=MAX(L1,0); // one list -> two list, tnx Didiersz1:= IZE(flpos); sz2:= IZE(flneg);npvp:= NPV(rr, flpos);npvp:=-npvp;fvp:=Finance.CalcFV(n,rr*ppyr,npvp,0,ppyr,12,0);npvn:= NPV(sr, flneg);// RETURN 100*((fvp/-npvn)^(1/n)-1 ); HP 12C formula (equal to the next)mirrvalue:= Finance.CalcIPYR(n,npvn,0,fvp,ppyr,12,0)/ppyr;PRINT;PRINT ("Modified Internal Rate of Return

    afe rate " + EVAL(ROUND(sr*ppyr,3)) + "% - Risk (reinvestment) rate " + EVAL(ROUND(rr*ppyr,3)) + "% with " + TRING(ppyr) + " n. payments per year.

    NPV negative flows " + TRING(ROUND(npvn,3)) + "NPV positve flows " + TRING(ROUND(npvp,3)) + "FV of posive flows NPV " + TRING(ROUND(fvp,3)) + "MIRR monthly rate " + TRING(ROUND(mirrvalue,3)) + "%MIRR yearly rate " + EVAL(ROUND(mirrvalue*ppyr,3)) + "%");RETURN {mirrvalue, ppyr*mirrvalue}; // return monthly and yearly MIRREND;

    EXPORT NPV(r, flows)// routine by Eddie W. hore BEGIN LOCAL t:=0, k, s; r:=1+0.01*r; CAE // list IF TYPE(flows)==6 THEN s:=IZE(flows); FOR k FROM 1 TO s DO t:=t+flows(k)/(r^(k-1)); END; END; // matrix IF TYPE(flows)==4 THEN

    LOCAL j, n; s:=IZE(flows); k:=0; FOR j FROM 1 TO s(1) DO FOR n FROM 1 TO flows(j,2) DO t:=flows(j,1)/(r^k)+t;

  • k:=k+1; END; // for END; // for 2 END; // if DEFAULT MGBOX("NPV(rate, list) or NPV(rate, [flow, freq])"); KILL; END; // Case RETURN t; END;

    recall_npv()BEGINlocal ch, r;INPUT (r, "Rate", "rate%", "Rate for Net Present Value", 0, 10);CHOOE(ch,"Flows List or Matrix w/ freq","Cash Flows List","CF Matrix whit frequencies");CAEIF ch==1 THENEDITLIT(L1, "Internal Rate of Return");END;IF ch==2 THENEDITMAT(M1, "Internal Rate of Return"); LOCAL flows:={}, j, k, s; s:=IZE(M1); FOR j FROM 1 TO s(1) DO FOR k FROM 1 TO M1(j,2) DOflows:= append(flows, M1(j,1)); END; END; // for 1, 2L1:= flows;END;DEFAULTMGBOX("IRR() with {list} or [matrix with frequencies]");KILL;END; // caseNPV(r, L1);END;

    EXPORT about()BEGINPRINT;PRINT ("Program created by by alvo Miccich (salvomic). Credits: Cyrille de Brbisson, Akmon, Dale (DrD), Eddie W. hore, Didier Lachiese, kharpster");RETURN;END;