Quản lý Danh mục đầu tư bằng Amibroker

giailang

Well-Known Member
Trước đây, LoadMaster bên Vinase.com đã từng viết một file AFL để quản lý danh mục đầu tư và tôi cũng đã sửa nó để bổ sung chức năng để sử dụng Watchlist làm danh sách theo rõi các mã trong rổ đầu tư.(2010).

Cho đến nay, do hoạt động đầu tư đã thay đổi về chất so với thời đó. Trong thực tế, việc sử dụng margin đã phổ biến hơn nhiều so với những năm trước đây, khiến cho việc quản lý danh mục theo kiểu cũ không phù hợp.

Để quản lý danh mục đầu tư có sử dụng đòn bẩy, yêu cầu đặt ra là phải mô tả được cấu trúc, tỷ lệ đòn bẩy, quản lý tiền đi tiền về, dự thu dự chi theo thời gian và các điều kiện cực đoan như BE, Call Margin, và giá trị của Tài sản đảm bảo.

Do vậy, tôi mở thread này với hy vọng các trader và coder sẽ cùng tham gia một dự án nho nhỏ chung của Vietcurrency.vn

Để thread dễ theo dõi, các bài trong này chỉ tập trung vào giải quyết vấn đề và góp ý. Các nội dung khác không phù hợp đề nghị Admin xóa.
 
I- Dữ liệu đầu vào:
1. Log lệnh giao dịch: đây là file độc lập với chương trình. Có nhiệm vụ lưu trữ các thông tin tối thiểu của giao dịch mà chương trình cần để tính toán, dữ liệu cấu trúc theo các trường thông tin sao cho lệnh mua bán thể hiện gía, khối lượng khớp, tỷ trọng vay và lãi suất vay. Sau đó, lệnh bán hàng dùng đòn bẩy có thể tìm được lệnh mua gốc để ước tính khoản lãi vay phải nộp, đồng thời giảm khối lượng chịu lãi vay đòn bẩy. Tổng giá trị danh mục hiện thời được gộp vào tổng tiền mặt và trừ phần vốn/lãi vay để ra giá trị cơ sở tính TSDB cho lần vay sau.
Cấu trúc log lệnh:
<Ngày, Mã Giao dịch, Mã giao dịch gốc, Lệnh, Mã CP, Giá , Khối lượng , Tỷ lệ margin, Lãi suất margin>
Ghi chú:
1. Ngày: ngày phát sinh giao dịch
2. Mã Giao dịch: mã lệnh đã khớp do CTCK cấp tự động. Trong trường hợp lệnh bị chẻ thanh nhiều lệnh con nhưng ở cùng mức giá, mã giao dịch khớp đầu tiên sẽ được lấy. Trường hợp khớp ở nhiều mức giá, mỗi mức chọn mã lệnh khớp đầu tiên.
3. Mã giao dịch gốc: Khi bán CP đã mua bằng đòn bẩy, để tính phí đòn bẩy, phải truy ngược về lệnh mua trước đó.
4. Lệnh: giá trị 1: mua, giá trị 2: bán
5. Mã CP: mã của cổ phiếu được giao dịch
6. Giá : mức giá đã khớp thành công.
7. Khối lượng: khối lượng đã khớp với mã CP này tại mức giá ở trường <6>. Trường hợp một lệnh bị chia thành nhiều lần khớp với cùng mức giá, ở trường này ghi tổng các đợt khớp cùng giá trong cùng ngày.
8. Tỷ lệ margin: chỉ số tối thiểu là 0 (không sử dụng margin) và tối đa là 1(margin hoàn toàn). Chỉ số này không phải là chỉ số đòn bẩy được tính theo công thức Giá trị TSDB/ Giá trị Vay như trong các danh sách công bố của CTCK.
9. Lãi suất margin: là lãi vay vốn dùng cho đòn bẩy do CTCK công bố đối với khoản vay cho lệnh đã khớp.
 
Last edited by a moderator:
2. Log giao dịch tiền:
Log này để ghi nhận giao dịch tiền đi tiền về và ngày tiền về đến tài khoản.
<Ngày, Mã giao dịch, Lệnh, Giá trị, Ngày về TK>
Trong phiên bản hiện tại, để cho đơn giản tạm thời chưa đưa vào code vì toàn bộ các tính toán được dựa trên log giao dịch và ước tính dòng tiền đi về nhờ tính toán ngày tiền về đến tài khoản.

3. Log ngày nghỉ trong năm:
Ghi nhận các kỳ nghỉ trong năm để tính ngày tiền về đến tài khoản và ngày tính lãi vay
<Ngày bắt đầu nghỉ, Ngày bắt đầu làm việc>

4. Log Equity
Log này sử dụng luôn tính năng theo rõi equity của Amibroker, dùng chức năng của Auto Analysis để tính toán. Nhờ log này, có thể kết hợp với Custom Backtester để kiểm định các strategy chạy tự động. Trong phiên bản đầu, không sử dụng log này do equity tính tực tiếp trên log lệnh giao dịch.
 
Cái file của a, cần bổ sung cổ tức, chia thưởng cổ phiếu, phát hành thêm
Cảm ơn chú nhắc nhở, các thông tin trên đã có chỗ sẵn trong thiết kế:
+Cổ tức sẽ lưu trong file giao dịch tiền: với trường "Lệnh" ghi mã lệnh riêng cho chia cổ tức, giá tri dương, ngày về là ngày tiền về TK.
+Chia thưởng CP ghi trong log lệnh với trường ngày: ngày CP về TK. mã riêng cho chia thưởng CP, mã CP: CP được thưởng giá gốc là 0, khối lượng là lượng được thưởng, các thành phần về margin đều là 0,
+CP phát hành thêm ghi trong log lệnh với giá là giá phát hành thêm và khối lượng mua thực, ngày phát sinh là ngày CP về TK, các trường liên quan đến margin đều bằng 0.
 
Vì cổ tức, cổ phiếu thưởng, phát hành thêm chưa về sẽ ko được tính làm ts đảm bảo. Anh lưu ý cái này trong việc tính tỷ lệ tài sản, tỷ lệ call, sử lý
 
Vì cổ tức, cổ phiếu thưởng, phát hành thêm chưa về sẽ ko được tính làm ts đảm bảo. Anh lưu ý cái này trong việc tính tỷ lệ tài sản, tỷ lệ call, sử lý
Chú có thể mô tả bằng lời thủ tục tính toán TSBD, tính tỷ lệ tài sản, tính tỷ lệ call margin được không? Như thế sẽ dễ hơn
 
II. Tính toán

Phần này ghi các tính toán cần thiết dùng cho quản lý danh mục.
1. Thông số đầu vào:
a. Tiền mặt đầu kỳ: Số dư tiền đầu kỳ có thể là số dư nạp vào tài khoản chứng khoán (khi chưa thực hiện giao dịch nào), hoặc số dư tại thời điểm đã có trạng thái mở (đã mua/bán). Trong phiên bản đầu, đây là số dư tiền mặt đã vè tài khoản và sẵn sàng cho giao dịch.
b. Trạng thái mở: các lệnh đã mua nhưng còn cổ phiếu chưa bán. CP có thể đã về hoặc chưa về TK (chưa đến ngày T+3).

2. Tính toán giá trị tài sản (Equity value)
Giá trị tài sản= Giá trị CP tại thời điểm tính+ lượng tiền mặt hiện có tại TK. (1)
Trong đó:
Giá trị CP tại thời điểm tính bằng tổng giá trị của từng mã, với
Giá trị từng mã =Khối lượng nắm giữ * Giá CP tại thời điểm tính (C);(2)

Do yêu cầu của QTRR tại nhiều công ty CK, TSDB phải là tài sản có thể bán hoặc thu hồi bất kỳ lúc nào, do vậy CP chưa về TK thì không được tính vào TSDB, cũng như tiền chưa về TK cũng không được tính vào tổng (1). Mặt khác, do lịch làm việc của TTCK chỉ là từ thứ 2 đến thứ 6 trừ ngày nghỉ lễ, do vậy phải có tính toán ngày CP/tiền về đến TK phù hợp.

3. Tính toán các khoản phí:
Trong giao dịch, có các loại phí sau phát sinh:
-Thuế: 0.1% (tính cả hai chiều)
-Phí hoa hồng của CTCK: dao động, ví dụ FPTS 0.15%, VND 0.2%
-Phí margin: các khoản vay này thường được áp lãi suất theo năm, tính thực tế theo số ngày vay bằng công thức
Phí margin= (Lãi suất margin /365) * số ngày vay * số tiền vay.(3)
Vậy khoản phải trả sẽ là
Phải trả= Số tiền vay*((1+Lãi suất margin /365) * số ngày vay)+ Giá trị CP lúc mua* (Thuế suất/2+ Phí hoa hồng) +Giá trị CP lúc bán*(Thuế suất/2+Phí hoa hồng) (4)

4. Hệ số đòn bẩy và sức mua
Mỗi công ty CK có thể có các sản phẩm với hệ số đòn bẩy khác nhau:
1. Danh mục CK công ty cho vay margin:
2. Danh muc CK công ty có liên kết với đối tác khác để cho vay ở đòn bẩy thường
3. Danh mục CK đòn bẩy cao
<còn tiếp>
 
Last edited by a moderator:
Back
Top