08. Thuật toán thực thi tối ưu hóa chi phí giao dịch

Đăng lúc 1654250257,67

Giá khớp lệnh hàng ngày của cổ phiếu được xác định theo quy tắc cung cầu. Vì vậy, tại một thời điểm bất kỳ, nếu một nhà đầu tư thực hiện một lệnh giao dịch mua/bán cổ phiếu với khối lượng quá lớn so với thanh khoản thường ngày thì sẽ ngay lập tức làm mất cân bằng cung cầu và giá cổ phiếu dịch chuyển ngắn hạn theo hướng bất lợi với chính nhà đầu tư đó. Cụ thể, khi đặt một lệnh mua khối lượng lớn, giá thị trường tăng do tác động của lệnh mua dẫn đến kết quả giá khớp lệnh trung bình cao hơn so với giá mua dự kiến, ngược lại khi bán cổ phiếu với lệnh lớn.

Lệnh giao dịch có khối lượng càng lớn so với thanh khoản hiện tại của cổ phiếu, sự tác động tới giá thị trường theo hướng bất lợi càng cao. Ví dụ, nhà đầu tư đặt lệnh mua 2 cổ phiếu A và B, khối lượng mua đều là 1.000.000, tuy nhiên, thanh khoản giao dịch hàng ngày của hai cổ phiếu này khác nhau:

 

 

Với cùng số lượng cổ phiếu giao dịch như nhau nhưng cổ phiếu A có thanh khoản cao hơn, do đó, lệnh mua cổ phiếu A ít tác động tới giá thị trường hơn. Còn lệnh mua cổ phiếu B khả năng cao sẽ gây tác động tới thị trường và làm tăng giá mua trung bình.

Vì sao giao dịch lớn gây tác động đến thị trường

Khi một lệnh mua/bán khối lượng lớn được đưa vào thị trường, các bên tham gia thị trường nhiều khả năng sẽ tin rằng có thể có thông tin gì đó tốt/xấu mà họ chưa biết nhưng đang được phản ánh qua hành động đặt mua số lượng lớn cổ phiếu. Do đó, họ sẽ điều chỉnh lại mức giá mà họ sẵn sàng mua hay bán để phản ánh thông tin mới tiềm năng này.

Vì vậy, để hạn chế tác động tới giá thị trường theo chiều hướng bất lợi, khi giao dịch cổ phiếu với khối lượng lớn, các quỹ đầu tư/nhà đầu tư sẽ thực hiện các thuật toán giao dịch với ý tưởng cơ bản là chia lệnh lớn thành nhiều lệnh nhỏ và đưa lệnh vào thị trường tại nhiều thời điểm khác nhau nhằm cố gắng che giấu thông tin hoạt động giao dịch. Các thuật toán được sử dụng phổ biến bao gồm:

Đối với nhà đầu tư nhỏ lẻ, các chiến lược nhằm hạn chế tác động tới giá thị trường có vẻ không đem lại nhiều giá trị. Tuy nhiên, với các quỹ đầu tư hay nhóm nhà đầu tư lớn, việc tính toán và ứng dụng các thuật toán trên có ý nghĩa rất lớn. Tầm quan trọng của chúng không thua kém so với việc nỗ lực tìm ra cổ phiếu tốt hay quản lý rủi ro danh mục đầu tư.

Thuật toán POV 

Thuật toán này thực hiện giao dịch theo một tỷ lệ phần trăm xác định trước so với thanh khoản thực tế của thị trường cho đến khi đủ số lượng cần mua/bán. Khi khối lượng giao dịch trên thị trường tăng lên, thuật toán này sẽ giao dịch nhiều cổ phiếu hơn và ngược lại.

Ví dụ, nhà đầu tư cần mua 5.000.000 cổ phiếu FPT, thực hiện giao dịch bằng thuật toán POV với tỷ lệ tham gia là 10%, như vậy, cứ mỗi 10.000 cổ phiếu FPT được giao dịch trên thị trường thì thuật toán sẽ tham gia mua 1.000 cổ phiếu cho đến khi đủ số lượng 5.000.000.

Lợi thế của thuật toán này là luôn giữ khối lượng lệnh mua cổ phiếu được đưa vào thị trường không quá nhiều so với thanh khoản hiện tại của thị trường (luôn giữ ở mức quanh 10% như trong ví dụ trên), nhờ đó giảm thiểu tác động tới giá thị trường.

Bất lợi chính của thuật toán này là có thể nhà đầu tư sẽ không hoàn tất giao dịch trong một khoảng thời gian được chỉ định nếu thanh khoản thị trường không thuận lợi. Như trong ví dụ trên, thanh khoản lịch sử trung bình của FPT tại thời điểm viết quyển sách này là khoảng 2.500.000 cổ phiếu/ngày, và nếu thanh khoản tiếp tục giữ ở mức 2.500.000 cổ phiếu/ngày thì dự kiến sẽ mất 20 ngày để mua đủ 5.000.000 cổ phiếu.

Tuy nhiên, nếu thị trường không thuận lợi, thanh khoản thị trường giảm mất một nửa, thì thực tế phải mất tới 40 ngày để thuật toán hoàn tất giao dịch. Và việc kéo dài thời gian do điều kiện thanh khoản thị trường dẫn đến rủi ro giá cổ phiếu có thể đã tăng đáng kể so với giá mua dự kiến.

Thuật toán VWAPTWAP có thể giải quyết được vấn đề thời gian thực hiện giao dịch. Cả hai thuật toán này đều tính toán để chia khối lượng cổ phiếu cần giao dịch thành các lệnh có khối lượng nhỏ hơn và đưa lệnh vào thị trường theo lịch trình định trước, đảm bảo hoàn tất giao dịch trong một khoảng thời gian xác định. Ví dụ: mua 5.000.000 cổ phiếu FPT, hoàn tất giao dịch trong vòng 20 ngày.

Thuật toán VWAP

Chia nhỏ và đưa lệnh vào thị trường theo các khung thời gian khác nhau, khối lượng lệnh nhiều hay ít trong mỗi khung thời gian được tính toán dựa vào dữ liệu lịch sử về khối lượng giao dịch. Thách thức khi sử dụng thuật toán này là dữ liệu thanh khoản lịch sử không lặp lại trong tương lai. Do đó, có những khung thời gian khối lượng giao dịch đưa vào thị trường khá lớn nhưng thị trường lại không có thanh khoản cao như dự kiến.

Thuật toán TWAP 

Chia nhỏ lệnh thành các phần bằng nhau và đưa lệnh liên tục vào thị trường, mỗi lệnh cách nhau một khoảng thời gian như nhau (thông thường cách nhau mỗi 5 phút). Vấn đề cần lưu ý là nhà đầu tư phải chia lệnh đủ nhỏ để bỏ qua tác động thanh khoản thị trường, bởi vì thuật toán này không đưa yếu tố thanh khoản vào tính toán mà chỉ quan trọng việc hoàn tất giao dịch trong khoảng thời gian chỉ định.

Trên thị trường chứng khoán Việt Nam, nếu quan sát chi tiết, nhà đầu tư có thể nhận thấy thuật toán này được áp dụng khá rộng rãi trên các cổ phiếu lớn với các khối lượng dưới 1.000 cổ phiếu trong khoảng thời gian mỗi 2 giây.