Trăn xirr

Trả về Tỷ lệ hoàn trả nội bộ cho một lịch biểu các dòng tiền không nhất thiết phải là định kỳ. Để tính toán Tỷ lệ hoàn trả nội bộ cho một loạt các dòng tiền định kỳ, hãy sử dụng hàm IRR

cú pháp

XIRR[giá trị, ngày, [đoán]]

Cú pháp của hàm XIRR có các đối số sau đây

  • Giá trị    Bắt buộc. Là một chuỗi các dòng tiền tương ứng với một lịch biểu chi trả trong các đối số ngày. Chi trả đầu tiên là tùy chọn và tương ứng với chi phí hoặc khoản trả đầu tiên trong khoản đầu tư. Nếu giá đầu tiên là một khoản phí hoặc một khoản chi trả, thì nó phải là một giá trị âm thanh. Tất cả các khoản chi trả kế tiếp sẽ được trích khấu dựa trên năm có 365 ngày. Các giá trị phải chứa ít nhất một giá trị dương và một giá trị âm

  • Ngày    Bắt buộc. Là một lịch biểu bao gồm những ngày chi trả tương ứng với các khoản chi trả của dòng tiền. Dates can't diễn ra theo bất kỳ trật tự nào. Ngày tháng nên được nhập bằng cách sử dụng hàm DATE hoặc nhập như là kết quả của các công thức hoặc hàm khác. Ví dụ, sử dụng DATE[2008,5,23] cho ngày 23 tháng năm 2008. Các vấn đề có thể xảy ra nếu nhập ngày tháng dưới dạng văn bản.

  • Đoán    Tùy chọn. Là một số mà bạn ước lượng gần với kết quả của hàm XIRR

Chú thích

  • Excel lưu trữ tháng ở định dạng sê-ri liên tiếp để sử dụng trong tính toán. Theo mặc định, ngày 1 tháng năm 1900 là số sê-ri 1 và ngày 1 tháng năm 2008 là số sê-ri 39448 bởi nó là 39. 448 ngày sau ngày 1 tháng một năm 1900

  • Các số trong đối số ngày sẽ bị xóa thành số nguyên

  • Hàm IRR kỳ vọng ít nhất một dòng tiền dương và một dòng tiền âm; .

  • Nếu bất kỳ số nào trong đối số ngày không phải là ngày hợp lệ, thì hàm XIRR trả về giá trị lỗi #VALUE.

  • Nếu bất kỳ số nào xảy ra trước ngày bắt đầu, hàm XIRR trả về giá trị lỗi #NUM.

  • Nếu các giá trị so với các giá trị chứa các số lượng giá trị khác nhau, hàm XIRR trả về giá trị lỗi #NUM.

  • Trong hầu hết các trường hợp, bạn không cần phải đưa ra các đối số đoán để tính toán XIRR. Nếu bỏ qua, đoán là giả định 0,1 [10%]

  • Hàm IRR có hệ thống mật khẩu được thiết lập với hàm XNPV, hàm giá trị hiện tại net. Tỷ suất hoàn vốn mà hàm IRR tính toán chính là tỷ suất tương ứng với XNPV = 0

  • Excel sử dụng phương pháp lặp để tính toán XIRR. Use the rate variable [bắt đầu bằng đoán], hàm XIRR lặp cho kết quả chính xác trong khoảng 0,000001%. Nếu hàm XIRR không tìm thấy kết quả phù hợp sau 100 lần lặp, nó sẽ trả về giá trị lỗi #NUM. . Tỷ lệ đã được thay đổi cho đến khi

    in which

    • di = ngày trả thứ i hay cuối cùng

    • d1 = ngày chi trả thứ 0

    • Pi = lần trả lại thứ tôi hoặc cuối cùng

Ví dụ

Sao chép ví dụ dữ liệu trong bảng sau đây và dán vào ô A1 của bảng tính Excel mới. Để công thức hiển thị kết quả, hãy chọn chúng, nhấn F2 và sau đó nhấn Enter. Nếu cần, bạn có thể điều chỉnh độ rộng của cột để xem tất cả dữ liệu

Đầu tiên, hãy tạm dừng. Lộ trình được đề xuất số 1 ở đây là tạo một thủ tục được lưu trữ để tính toán XIRR. Tại sao? . nó chỉ dễ quản lý hơn rất nhiều. Thế giới của Python + Tableau [TabPy] rất thú vị nhưng phần lớn không được Tableau hỗ trợ. Tuy nhiên, có một số tình huống trong đó nó có thể có ý nghĩa

  • Bạn sẽ không bao giờ có quyền truy cập trực tiếp vào cơ sở dữ liệu của mình để tạo quy trình được lưu trữ để kết nối trực tiếp
  • Kết nối thông qua một thủ tục được lưu trữ không phải là một tùy chọn vì nó quá chậm [quá nhiều dữ liệu]
  • Cuối cùng, quy trình được lưu trữ là con đường bạn sẽ thực hiện, nhưng do các yếu tố bên ngoài, quy trình này không khả dụng ngay lập tức

 

Được rồi, tôi đã cảnh báo bạn và rõ ràng bạn đã phớt lờ những cảnh báo của tôi [hoặc có thể bạn đã bị phân tâm bởi ảnh GIF Jeff Goldblum đó]. Nếu bạn đã làm được đến đây và hiện đang thắc mắc TabPy là gì hoặc XIRR là gì, tôi sẽ chỉ cho bạn hướng tổng quan về TabPy và wiki IRR tuyệt vời này

Nếu bạn đang tìm kiếm một phép tính IRR đơn giản, thì có một phương pháp rất dễ dàng trong thư viện NumPy của Python

Cấu trúc dữ liệu

Được rồi, cẩn thận đi. Làm thôi nào. Bạn có tập dữ liệu của mình và bạn đã thiết lập máy chủ TabPy của mình. Đối với ví dụ này, chúng tôi sẽ cố gắng hết sức để tạo lại hàm XIRR[] của Excel, vì nó cung cấp cho chúng tôi thứ gì đó để kiểm tra. Bạn có thể thấy cách chúng tôi có bộ dữ liệu mẫu của chúng tôi [được tìm thấy ở cuối bài đăng này] được cấu trúc trong hình ảnh bên dưới. Tiền gửi, Phân phối và Giá trị tài sản ròng đều nằm trong cùng một cột. Điều này cho phép chúng tôi thao tác dữ liệu dễ dàng hơn nếu chúng ở trong các cột khác nhau

Ghi chú. Nói chung, có thể tính toán XIRR[] với cấu trúc dữ liệu khác, nhưng vì có quá nhiều biến thể nên bài đăng trên blog này chỉ dựa vào tập dữ liệu cột tiêu chuẩn

Từ đó, chúng tôi có thể thấy rằng chúng tôi có ba quỹ, tất cả đều yêu cầu cùng một khoản tiền gửi. Chúng ta cũng có thể thấy rằng từ 125.000 đến 133.000 đô la đã được thanh toán và 702.000 đến 709.000 đô la là giá trị hiện có. Không tệ. Chúng tôi đã đầu tư 750.000 đô la vào ba vòng trong ba năm qua và hiện chỉ còn hơn 100.000 đô la từ mỗi quỹ

Mức độ chi tiết

Bây giờ chúng tôi đã có ý tưởng về nơi tiền của chúng tôi bắt đầu và kết thúc, chúng tôi muốn biết làm thế nào chúng tôi có được ở đây. Tỷ lệ hoàn vốn nội bộ của chúng tôi là gì? . Do đó, chúng tôi cần thêm Ngày vào Hàng của mình và xóa Loại vì chúng tôi muốn gửi tất cả các dòng tiền cùng một lúc vào phép tính Python của mình

Tính toán XIRR

Bây giờ mức độ chi tiết của chúng tôi là chính xác, chúng tôi có thể tính toán thành công XIRR. Đây là nơi phép tính Python xuất hiện. Bạn có thể tải xuống tệp Python ở cuối bài đăng này để dán vào trường tính toán của bạn. Nhưng trước khi chúng ta đến đó, tôi muốn làm nổi bật các chức năng đang được sử dụng ở đây

  1. eir_derivative_func[]
  2. eir_func[]
  3. xirr[]

 

Hai chức năng đầu tiên ở đây là các chức năng trợ giúp để truy cập XIRR[]. Nếu bạn muốn tìm hiểu thêm về phép tính đi vào các hàm này, có các tài liệu tham khảo ở cuối trang này, cũng như nội tuyến trong mã

Để giải thích ngắn gọn phép tính xirr[]. sau khi thực hiện một số kiểm tra để đảm bảo các khoản thanh toán và ngày đáp ứng các tiêu chí của chúng tôi, chúng tôi lấy tỷ lệ chiết khấu bằng cách sử dụng eir_func[], sau đó tìm công cụ phái sinh bằng cách sử dụng eir_derivative_func[]. Cuối cùng, chúng tôi trả về kết quả của Phương pháp Newton để cung cấp cho chúng tôi XIRR

Một điều nữa cần lưu ý là dữ liệu của bạn có thể không được định hình như trên và có thể cần định hình lại. Một ví dụ trong mã này là nhu cầu định dạng lại ngày tháng. Chúng xuất hiện trong Python dưới dạng Unicode và điều đó gây ra một số lỗi với các hàm được đề cập ở trên. Bạn có thể cần tạo các hàm trợ giúp, tương tự như multi_format date_parse[], để đưa dữ liệu của bạn về đúng hình dạng hoặc định dạng, đặc biệt nếu dữ liệu của bạn không vừa khít trong hai cột

Bây giờ bạn đã biết về sự phức tạp ở đây, hãy làm phần đơn giản nhất. Sao chép và dán mã của bạn vào một trường được tính toán và thả nó vào viz của bạn

Logic tính bảng

Bây giờ chúng ta đã có XIRR, phải không? . Chúng tôi cần đảm bảo rằng phép tính TabPy của chúng tôi đang giải quyết đúng phân vùng [điều này cũng giống như việc đảm bảo các phép tính Bảng của chúng tôi đang sử dụng tính toán chính xác bằng cách sử dụng]. Bạn có thể gặp phải một số sự cố khi cố gắng tính toán phù hợp bằng cách sử dụng. Tuy nhiên, vấn đề này đăng trên GitHub đã giúp tôi đi đúng hướng. Trong trường hợp này, chúng tôi cần điều chỉnh phép tính Python của mình để giải quyết Ngày và Tên quỹ và khởi động lại mọi Tên quỹ

Bây giờ cho bước cuối cùng. Chúng tôi cần để lại tất cả các ngày trên viz, nhưng chúng tôi chỉ có thể ẩn chúng bằng phép tính bảng LAST[] và đặt nó thành 0. Thuận tiện, đây cũng là giá trị NAV của chúng tôi

Và cuối cùng, sau một số phép thuật ở mức độ chi tiết hơn, chúng ta có thể có một báo cáo tài chính được định dạng rõ ràng cho thấy hiệu suất của tất cả các tài khoản của chúng ta

Có thể câu trích dẫn “Công viên kỷ Jura” đó đang văng vẳng bên tai bạn, hoặc có thể bạn đã sẵn sàng tiếp nhận điều này. Dù bằng cách nào, có rất nhiều tính linh hoạt và tùy chỉnh có sẵn với TabPy của Tableau. Nếu không có gì khác, nó sẽ tạo ra một dự án phụ thực sự thú vị để tìm hiểu Python tốt hơn một chút. Mã hóa vui vẻ

Để tìm tài liệu tham khảo cho phép tính đằng sau eir_derivative_func[], eir_func[], hãy tham khảo các liên kết bên dưới

Chủ Đề