具有 Corticon 的內部收益率求解器
內部報酬率
使用 Corticon 的迭代執行功能,我們可以解決需要求解最佳答案的計算。
內部報酬率(IRR)是一種財務指標,用於評估投資的獲利能力和機會成本等。一個典型的用例是評估是否進行以下投資:
- 初始費用(投資成本)$5000
- 第 1 年 - 0 美元回報
- 第 2 年 - 2000 美元回報
- 第 3 年 - 0 美元回報
- 第 4 年 - 4000 美元回報
- 第 5 年 - 0 美元回報
- 第 6 年 - 9000 美元回報
內部報酬率透過以下公式求解:
代入我們的數字,我們有:
~0 = (0/(1 IRR)^1 2000/(1 IRR)^2 0/(1 IRR)^3 4000/(1 IRR)^4 0/(1 IRR)^5 9000/( 1 IRR)^6) - 5000
我們正在尋求淨現值 (NPV) 為零(或盡可能接近 X 個小數點)的 IRR。因此,我們需要反覆嘗試不同的 IRR 值,以盡可能接近零。
規則
首先,我們的規則詞彙。
我們有 3 個實體,候選人、現金流和根實體,投資。該投資有任意數量的現金流,我們將對其進行評估。它還具有在決策執行期間創建的任意數量的候選者,代表將插入的各種費率。
輸入將只是母實體投資,以及所有相應的現金流量和標記其順序的分期付款編號。第一個現金流量始終是現金流出,因此其金額始終為負。它將使用值 0 作為其分期付款編號。
接下來是我們的規則。
- 我們首先初始化 IRR 值,該值將根據產生的 NPV 向上或向下遞增。我們同樣會將初始現金流量的值放入投資實體的「本金」屬性中,然後刪除該現金流量,以便更輕鬆地僅對未來流量進行操作。
- 我們將把第一個規則表拖曳到一個新的規則流上,該規則流稍後將產生到執行時間決策服務中。規則流可以包含任意數量的規則表和任意數量的「嵌入」規則流。我們將建立一個包含另外兩個規則表的嵌入式規則流,並在透過從規則流托盤中應用「迭代」選項來嘗試候選 IRR 率時循環遍歷此嵌入式規則流。
- 當規則流上的物件設定為迭代時,它將重複重新執行,直到物件規則派生的值停止變更。一旦物件中的值停止更改,迭代就會停止並繼續執行下一個物件(由連接器決定)。
- 在內部規則流中,我們有兩個規則表。
- 第一個將計算每個單獨的現金流量對最終計算的貢獻 - 例如,現金流量 3 的「部分」屬性將是 0/(1 IRR)^3 的結果。
- 嵌入規則流中的第二個規則表將:
- 將 Investment.npv 設定為每個現金流量部分減去初始投資的總和
- 如果 npv 大於零,則將 irr 增加 0.01,如果小於零,則減少 0.01。
- 但是,我們需要知道我們是否已經嘗試過給定的速率,這樣我們就不會陷入無限循環。這就是候選人發揮作用的地方。我們為嘗試的每個速率建立一個新的候選者,直到遇到已經嘗試過的速率,此時不會觸發任何操作,我們會傳回計算值。
針對頂級規則流進行測試,我們根據上面列出的 5000 美元投資的用例設定輸入。我們看到 Corticon 的 IRR 為 0.27 (27%)。
當我們使用ruletrace 執行規則測試時,我們可以看到Corticon 如何使用每個調整後的利率循環執行規則,直到投資的NPV 盡可能接近零。
規則追蹤資料也可以匯出為 CSV。
從 GitHub 下載專案
以上是具有 Corticon 的內部收益率求解器的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

公司安全軟件導致部分應用無法正常運行的排查與解決方法許多公司為了保障內部網絡安全,會部署安全軟件。 ...

系統對接中的字段映射處理在進行系統對接時,常常會遇到一個棘手的問題:如何將A系統的接口字段有效地映�...

在使用MyBatis-Plus或其他ORM框架進行數據庫操作時,經常需要根據實體類的屬性名構造查詢條件。如果每次都手動...

在使用IntelliJIDEAUltimate版本啟動Spring...

將姓名轉換為數字以實現排序的解決方案在許多應用場景中,用戶可能需要在群組中進行排序,尤其是在一個用...

Java對象與數組的轉換:深入探討強制類型轉換的風險與正確方法很多Java初學者會遇到將一個對象轉換成數組的�...

電商平台SKU和SPU表設計詳解本文將探討電商平台中SKU和SPU的數據庫設計問題,特別是如何處理用戶自定義銷售屬...

在使用TKMyBatis進行數據庫查詢時,如何優雅地獲取實體類變量名以構建查詢條件,是一個常見的難題。本文將針...
