2024年6月23日 星期日

[投資] 台灣加權指數波動率退休提領回測計算器(1994-2023)

利用台灣股市的波動率,來進行退休提領的回測。回測時間1994-2023年,這期間經歷如下重大事件:
1995 年中共試射飛彈 -27.40%
1998 年亞洲金融風暴 -21.60%
2000 年網路泡沫化 -43.90%
2002 年 SARS 疫情 -19.80%
2007 年次級房貸 -46.00%
2011 年美債危機 -21.20%
2018 年中美貿易戰 -8.60%
2020 年 Covid - 19 疫情 22.80% (下跌又快速回升)
2022 烏俄戰爭、通膨、升息 -22.40%
提領若能通過這些考驗相信一定能更安穩的退休。

結果

1. 大家可能要失望了,因為一般坊間所說的 4%提領,最後仍是會破產。

2. 在熊市來臨時,減少提領率是一個必要的方法。

3. 安全的提領率大約是 2.5%-3.5%之間。提領率太高股票會減損太多。

4. 若資產有年開銷支出的 45倍以上,應該可以安穩渡過危機。

5. 若股票資產相對較高,可以考慮用質押方式來提領,最後資產會更高。



2024年6月22日 星期六

[投資] 一個大學畢業25歲,幸運考上教職的年輕人,如何使用本站的 AI計算機-穩健積極型

起始薪資(薪俸190起薪,扣除保險退撫費):約42,000元

申請信用卡,開始累積自己的信用,一段時間之後,開始向銀行申請信用貸款(年限7年),可申請額度如下計算器。

第1個7年,將所貸金額全數單筆投入指數型基金,歷史年化報酬10%,7年間繼續工作還信貸。每月仍將薪水的一半投入。

7年後薪資(薪俸260起薪,扣除保險退撫費):約50,000元

第2個7年,有房屋頭期款之後,可以選擇購屋,運用寛限期不還本金,只繳利息,或繼續第2次的信用貸款,在薪資增加的情形下,可以借更多的額度。

7年後薪資(薪俸370起薪,扣除保險退撫費):約60,000元

第3個7年間,應可繳清房貸,房屋增值,可以再扺押銀行,繼續增貸投入股市。

第4個7年間,透過資產配置,資產應可達所得33倍到50倍之間,即可財富自由FIRE。

公務人員及教師薪資成長不快,透過適當投資可以更快達到財富自由。若要增加曝險,也可以持有部份槓桿型ETF,可以增加報酬,但也會增加風險,但年輕人應該可以承擔更大的風險。

信貸額度計算器


信貸房貸計算器




投資財富計算器(定期定額)






貸款與房價計算器


財富自由(FIRE)計算器

財富自由對照表

月支出(萬元) 財富自由數字(萬元)

2024年6月18日 星期二

[保險] 保險的保單採脫退率無解約金設計?政府的勞工保險年金也是嗎?

脫退率無解約金”通常是指保險產品或計劃中設計的一種特性,即在特定情況下,投保人提前終止保單時,不需要支付解約金。這種設計旨在提高保單的靈活性和吸引力,讓投保人更容易接受和維持保單。

具體來說,“脫退率無解約金”可能包含以下幾種情況:

  1. 免除解約金的條件:保單可能設計了一些特定的條件,在這些條件下,投保人可以提前終止保單而無需支付解約金。例如,保單持有一定年限後,可以無解約金提前終止。

  2. 特定期限內無解約金:某些保單可能在投保的初始階段(例如前幾年)設有解約金,但在經過一定時間後(例如持有超過10年),就可以無解約金提前終止。

  3. 特殊情況下的無解約金:在某些特殊情況下,例如投保人遇到重大財務困難、疾病或其他不可抗力事件,保險公司可能會允許投保人無解約金提前終止保單。

這種設計的優點包括:

  • 提升客戶滿意度:讓客戶感到保單更具靈活性,不會因提前解約而受到經濟損失的懲罰。
  • 增加產品吸引力:可以吸引更多的客戶購買和持有保單,特別是那些對長期鎖定資金有顧慮的客戶。
  • 降低脫退率:通過提供靈活的解約選擇,可以減少因解約金而被迫持有不滿意保單的情況,從而降低非自願脫退率。

然而,保險公司在設計這種產品時,也需要謹慎考慮可能的財務影響,並確保公司能夠承受提前解約所帶來的現金流壓力。

有些健康險會有無解約金的設計,也就是保單沒有價值準備金。保單沒有解約金、保單無法貸款、減額繳清、保險借貸等等。但也是有優點,就是保費會相對比較便宜,等於是把在保險期間,無法繳完費用的錢,用在繳費期滿的人的身上,不需使用保單價值準備金,保險公司真是聰明呀!

從另一個角度來看,我們現在的勞保是否也算是一種另類的無解約金設計的保險,勞保在申請年金時的一次請領條件,有如下三項:

一、參與勞保年資合計滿15年、年滿55歲退職;

二、在同一投保單位參加勞保的年資合計滿25年退職者;

三、投保勞保年資合計滿25年,年滿50歲退職者。

若未達以上這三項無法請領勞保年金,只能退而求其次,續保國民年金,但試算後金額相差頗大。

若退休只是寄望政府的勞保年金,不如在可以工作的時候,儘量積累財富,也能照顧自己晚年及家庭,對國家社會都有幫助。

2024年6月17日 星期一

複利現值表 Present Value Table

複利現值表






期數

2024年6月15日 星期六

複利終值表 Compound Interest Table

複利終值表






期數

[ChatGPT] 使用 ChatGPT 產生複利現值表 (Compound Interest Table)

 ME:
生成一個可以嵌入網頁的程式,包含4個欄位及一個產生表格的按鈕,

初始金額(本金)

利率開始(%)

利率結束(%)

時間(年或月)使用下拉式選單

按下產生表格之後,就可以顯示複利終值表的表格

並增加表格顏色,增加易讀性。

產生程式如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>複利終值表</title>
    <style>
        body {
            font-family: Arial, sans-serif;
        }
        table {
            width: 100%;
            border-collapse: collapse;
            margin-top: 20px;
        }
        table, th, td {
            border: 1px solid black;
        }
        th, td {
            padding: 10px;
            text-align: center;
        }
        th {
            background-color: #4CAF50;
            color: white;
        }
        tr:nth-child(odd) {
            background-color: #f2f2f2;
        }
        tr:nth-child(even) {
            background-color: #ffffff;
        }
        .input-container {
            margin-bottom: 20px;
        }
        .input-container label {
            margin-right: 10px;
        }
        button {
            margin-top: 10px;
            padding: 10px 20px;
            background-color: #4CAF50;
            color: white;
            border: none;
            cursor: pointer;
        }
        button:hover {
            background-color: #45a049;
        }
    </style>
</head>
<body>
    <h1>複利終值表</h1>
    <div class="input-container">
        <label for="principal">初始金額(本金):</label>
        <input type="number" id="principal" value="1000"><br>
        <label for="rateStart">利率範圍開始(%):</label>
        <input type="number" id="rateStart" value="5" step="0.01"><br>
        <label for="rateEnd">利率範圍結束(%):</label>
        <input type="number" id="rateEnd" value="15" step="0.01"><br>
        <label for="time">時間:</label>
        <input type="number" id="time" value="10"><br>
        <label for="frequency">計算頻率:</label>
        <select id="frequency">
            <option value="year"></option>
            <option value="month"></option>
        </select><br>
        <button onclick="generateTable()">產生表格</button>
    </div>
    <table id="fvTable">
        <thead>
            <tr id="tableHeader">
                <th>期數</th>
            </tr>
        </thead>
        <tbody>
        </tbody>
    </table>

    <script>
        function generateTable() {
            const principal = parseFloat(document.getElementById('principal').value);
            const rateStart = parseFloat(document.getElementById('rateStart').value) / 100;
            const rateEnd = parseFloat(document.getElementById('rateEnd').value) / 100;
            const time = parseInt(document.getElementById('time').value);
            const frequency = document.getElementById('frequency').value;

            const table = document.getElementById('fvTable');
            const thead = table.querySelector('thead tr');
            const tbody = table.querySelector('tbody');
            tbody.innerHTML = '';

            // 清除之前的表頭
            while (thead.firstChild) {
                thead.removeChild(thead.firstChild);
            }

            // 生成新的表頭
            const thPeriod = document.createElement('th');
            thPeriod.textContent = '期數';
            thead.appendChild(thPeriod);

            const rateRange = [];
            for (let rate = rateStart; rate <= rateEnd; rate += 0.01) {
                rateRange.push(rate);
                const th = document.createElement('th');
                th.textContent = `${(rate * 100).toFixed(2)}%`;
                thead.appendChild(th);
            }

            let periods;
            let compoundRate;
            if (frequency === 'year') {
                periods = time;
                compoundRate = 1;
            } else {
                periods = time * 12;
                compoundRate = 12;
            }

            // 生成表格內容
            for (let n = 1; n <= periods; n++) {
                const tr = document.createElement('tr');
                const tdPeriod = document.createElement('td');
                tdPeriod.textContent = n;
                tr.appendChild(tdPeriod);

                rateRange.forEach(rate => {
                    const td = document.createElement('td');
                    const fv = principal * Math.pow(1 + rate / compoundRate, n * compoundRate);
                    td.textContent = fv.toFixed(2);
                    tr.appendChild(td);
                });

                tbody.appendChild(tr);
            }
        }
    </script>
</body>
</html>



複利終值表






期數

熱門文章