Hướng dẫn thực hành Beancount cho cổ phiếu - 88win
Tôi đã bắt đầu sử dụng Beancount để ghi chép tài chính từ tháng 7 năm ngoái và đã viết một bài hướng dẫn chi tiết về công cụ này. Ngoài việc ghi chép các hoạt động hàng ngày, tôi muốn trình bày cách sử dụng Beancount cho các giao dịch chứng khoán.
Một số ví dụ về giao dịch
Dưới đây là một vài ví dụ về các giao dịch cổ phiếu Hồng Kông của tôi:
2019-12-02
Tài sản:Chứng khoán:FutuHK:Tiền mặt -18060.00 HKD
Tài sản:Chứng khoán:FutuHK:Vị trí 600.00 HK_00772 {30.10 HKD}
Chi phí:Chứng khoán:FutuHK 75.89 HKD ; Phí giao dịch
Tài sản:Chứng khoán:FutuHK:Tiền mặt -75.89 HKD ; Phí giao dịch
2020-01-14
Tài sản:Chứng khoán:FutuHK:Vị trí 1000.00 HK_00772 {38.00 HKD}
Tài sản:Chứng khoán:FutuHK:Tiền mặt -38000.00 HKD
Chi phí:Chứng khoán:FutuHK 96.43 HKD ; Phí giao dịch
Tài sản:Chứng khoán:FutuHK:Tiền mặt -96.43 HKD ; Phí giao dịch
2020-01-31 giá HK_00772 32.55 HKD ; Giá đóng cửa cuối tháng 1 của Tập đoàn Yuewen
2020-02-28
Tài sản:Chứng khoán:FutuHK:Vị trí -1000.00 HK_00772 {} @ 36.40 HKD
Tài sản:Chứng khoán:FutuHK:Tiền mặt 36400.00 HKD
Tài sản:Chứng khoán:FutuHK:Tiền mặt -95.30 HKD ; Phí giao dịch
Chi phí:Chứng khoán:FutuHK 95.30 HKD ; Phí giao dịch
Thu nhập:Chứng khoán:FutuHK ; Lợi nhuận (âm là có lời, dương là lỗ)
2020-03-09
Tài sản:Chứng khoán:FutuHK:Tiền mặt -5000.00 HKD
Tài sản:Chứng khoán:FutuUS:Tiền mặt 641.96 USD @@ 5000 HKD
Sau đây chúng ta sẽ phân tích chi tiết từng phần.
Hai loại tài khoản
Tương tự như khi ghi chép các hoạt động hàng ngày, để ghi lại các giao dịch chứng khoán, chúng ta cần thiết lập hai loại tài khoản sau:
; Tài khoản cổ phiếu Hồng Kông của tôi
2019-06-30 mở Tài sản:Chứng khoán:FutuHK:Tiền mặt HKD ; Tài khoản tiền mặt cổ phiếu Futu Hồng Kông
2019-06-30 mở Tài sản:Chứng khoán:FutuHK:Vị trí "FIFO" ; Tài khoản vị trí cổ phiếu Futu Hồng Kông
Mỗi tài khoản chứng khoán thường bao gồm cả tiền mặt và các vị trí sở hữu. Chúng ta cần tạo hai tài khoản riêng biệt:
- Tài khoản tiền mặt: Được định nghĩa bằng đơn vị tiền tệ cụ thể (ví dụ:
Tài sản:Chứng khoán:FutuHK:Tiền mặt
) - Tài khoản vị trí: Có thể được cấu hình theo phương pháp tính toán khác nhau, chẳng hạn như
FIFO
hoặcLIFO
. Trong trường hợp của tôi, tôi chọn phương phápFIFO
.
Phương pháp FIFO
và LIFO
giúp xác định giá mua ban đầu khi bán cổ phiếu, đặc biệt hữu ích trong trường hợp bạn đã mua vào nhiều lần với các mức giá khác nhau.
Ghi nhận giao dịch mua và khái niệm Commodity
Khái niệm Commodity (hàng hóa) trong Beancount đề cập đến bất kỳ đối tượng nào được giao dịch, bao gồm cả tiền tệ và cổ phiếu. Dưới đây là một ví dụ về giao dịch mua:
2019-12-02
Tài sản:Chứng khoán:FutuHK:Tiền mặt -18060.00 HKD
Tài sản:Chứng khoán:FutuHK:Vị trí 600.00 HK_00772 {30.10 HKD}
Chi phí:Chứng khoán:FutuHK 75.89 HKD ; Phí giao dịch
Tài sản:Chứng khoán:FutuHK:Tiền mặt -75.89 HKD ; Phí giao dịch
Trong ví dụ trên, bạn có thể thấy cả HKD
và HK_00772
đều thuộc cùng một danh mục, tức là chúng đều là Commodity. Tài khoản vị trí ghi nhận số lượng cổ phiếu đã mua, trong khi giá vốn (cost price) được chỉ định bên trong dấu ngoặc nhọn {}
.
Tài khoản tiền mặt thì ghi nhận tổng số tiền đã chi ra. Nếu ghi đầy đủ, nó sẽ trông như thế này:
Tài sản:Chứng khoán:FutuHK:Tiền mặt -18060.00 HKD {1.00 HKD}
Ghi nhận giao dịch bán và tính toán lợi nhuận
Đây là một ví dụ về giao dịch bán:
2020-02-28
Tài sản:Chứng khoán:FutuHK:Vị trí -600.00 HK_00772 {} @ 36.40 HKD
Tài sản:Chứng khoán:FutuHK:Tiền mặt 36400.00 HKD
Tài sản:Chứng khoán:FutuHK:Tiền mặt -95.30 HKD ; Phí giao dịch
Chi phí:Chứng khoán:FutuHK 95.30 HKD ; Phí giao dịch
Thu nhập:Chứng khoán:FutuHK ; Lợi nhuận (âm là có lời, dương là lỗ)
Trong trường hợp này:
- Dấu
@
sau tên cổ phiếu chỉ ra giá bán. - Phần trong dấu ngoặc nhọn
{}
thông thường nên chứa giá vốn của cổ phiếu đang bán, nhưng vì chúng ta đã áp dụng quy tắcFIFO
, nên phần này có thể bỏ qua.
Beancount sẽ tự động tính toán lợi nhuận dựa trên sự khác biệt giữa giá bán và giá vốn ban đầu. Để hiểu rõ hơn cách Beancount hoạt động, chúng ta có thể điền đầy đủ nội dung trong dấu ngoặc nhọn {}
:
2020-02-28
Tài sản:Chứng khoán:FutuHK:Vị trí -600.00 HK_00772 {30.10 HKD} @ 36.40 HKD
Tài sản:Chứng khoán:FutuHK:Vị trí -400.00 HK_00772 {38.00 HKD} @ 36.40 HKD
Tài sản:Chứng khoán:FutuHK:Tiền mặt 36400.00 HKD
Tài sản:Chứng khoán:FutuHK:Tiền mặt -95.30 HKD ; Phí giao dịch
Chi phí:Chứng khoán:FutuHK 95.30 HKD ; Phí giao dịch
Thu nhập:Chứng khoán:FutuHK ; Lợi nhuận (âm là có lời, dương là lỗ)
Khi bổ sung đầy đủ thông tin, chúng ta thấy rằng do giá vốn khác nhau, giao dịch bán được chia thành hai dòng ghi nhận, điều này minh họa rõ ràng quy tắc FIFO
:
- Tôi đã mua hai lần tổng cộng 1600 cổ phiếu, trước tiên là 600 cổ phiếu ở mức giá 30.10 HKD, sau đó là 1000 cổ phiếu ở mức giá 38 HKD.
- Theo quy tắc
FIFO
, khi bán 1000 cổ phiếu, thứ tự bán sẽ là:- 600 cổ phiếu với giá vốn 30.10 HKD (mua trước, bán trước).
- 400 cổ phiếu với giá vốn 38.00 HKD.
Lợi nhuận được tính tự động bởi Beancount:
Lợi nhuận = Tổng thu nhập - Tổng chi phí
Lợi nhuận = 36400 - (600 * 30.10 + 400 * 38)
Cập nhật giá hiện tại của cổ phiếu
Khi giá cổ phiếu tăng hoặc giảm mạnh mà chưa bán, làm thế nào để cập nhật giá trị thị trường hiện tại và lợi nhuận/lỗ không thực hiện? Beancount cung cấp lệnh price
để ghi nhận giá cổ phiếu:
2020-01-31 giá HK_00772 32.55 HKD ; Giá đóng cửa cuối tháng 1 của Tập đoàn Yuewen
Trong phần xem báo cáo của Fava, bạn có thể chọn chế độ hiển thị giá trị tài sản theo giá hiện tại hoặc giá vốn ban đầu.
Lưu ý rằng Beancount chỉ ghi nhận thời gian chính xác đến ngày, không thể ghi nhận các giao dịch trong ngày.
Chuyển đổi tỷ giá hối đoái
Khi chuyển tiền giữa tài khoản cổ phiếu Mỹ và trực tiếp đá gà thomo c3 Hồng Kông, hoặc khi thanh toán bằng đô la Mỹ nhưng nhập tiền bằng nhân dân tệ, bạn có thể sử dụng ký hiệu @@
để chuyển đổi tỷ giá:
2020-03-09
Tài sản:Chứng khoán:FutuHK:Tiền mặt -5000.00 HKD
Tài sản:Chứng khoán:FutuUS:Tiền mặt 641.96 USD @@ 5000 HKD
Tóm tắt cấu trúc dữ liệu của Beancount
Một dòng dữ liệu hoàn chỉnh trong Beancount có dạng:
Tên tài khoản Số lượng Hàng hóa Giá vốn Giá hiện tại/tổng giá
tài khoản
Tài sản:Chứng khoán:FutuHK:Vị trí -1000.00 HK_00772 {30.10 HKD} @ 36.40 HKD
Tài sản:Chứng khoán:FutuHK:Vị trí -1000.00 HK_00772 {30.10 HKD} @@ 36400 HKD
(1 dấu @
ghi nhận giá từng đơn vị, 2 dấu @@
ghi nhận tổng giá)
Trong phần giao diện Fava, bạn có thể xem tất cả các thông bảng xếp hạng ngoại hạng anh tin này ở mục “Tài sản”.
Khi ghi chép giao dịch cổ phiếu, bạn sẽ cần sử dụng cả cost
và price
, trong khi các giao dịch hàng ngày thông thường không yêu cầu điều này.