Hướng dẫn thực hành Beancount cho cổ phiếu - 88win

Mục lục

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ặc LIFO. Trong trường hợp của tôi, tôi chọn phương pháp FIFO.

Phương pháp FIFOLIFO 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ả HKDHK_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ắc FIFO, 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:

  1. 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.
  2. 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ả costprice, 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.