- vừa được xem lúc

Làm chức năng Stop Loss và Take Profit trong trading chứng khoán

0 0 22

Người đăng: Nam Nguyen

Theo Viblo Asia

Các bác oánh chứng khoán có hay đặt SL và TP không ạ. Mình sau những cú sập mất cả đống tiền nên đã tự kỉ luật SL, TP cho bản thân. Trong quá trình sử dụng mình cũng khá tò mò về cách thức xử lí, công nghệ sử dụng bên dưới. Dưới đây là ý tưởng thiết kế của mình.

Trong thực tế, ví dụ con hàng cổ phiếu HPG thanh khoản một phiên của nó rất lớn. Các tín hiệu giá khớp được sinh ra liên tục.

Bài toán đặt ra:

  • Sử dụng công nghệ gi để lưu trữ lệnh stop loss, take profit
  • Tổ chức dữ liệu như nào để có thể trích xuất và kích hoạt lệnh nhanh chóng và hiệu quả nhất.

Sau khi mình đặt ra được bài toán cụ thể thì trong đầu mình có suy nghĩ ngay đến việc sử dụng redis và lựa trọn cấu trúc dữ liệu Redis Sorted Set để thực hiện lưu trữ thông tin, trong đó:

  • key: mã chứng khoán + suffix (suffix ở đây là loại lệnh STOPLOST hoặc TAKE_PROFIT)
  • score: giá mục tiêu
  • value: ID lệnh|ID khách hàng|khối lượng kích hoạt bán|Mã chứng khoán

Ví dụ hiện tại trong tài sản của mình đang có 1000 cổ phiếu HPG, giá vốn mình mua là giá 19, hiện tại HPG đang giao dịch với giá là 20, mình tiến hành đặt lệnh STOP_LOSS và TAKE_PROFIT lần lượt là 17 và 24. Sau khi đặt lệnh thành công hệ thống sinh ra cho mình 2 lệnh và có ID định danh tương ứng STOP_LOSS là 100 và TAKE_PROFIT là 101 . Đồng thời dữ liệu sẽ được tổ chức trong redis như sau:

ZADD HPG-STOPLOSS 17 "100|081xxx|1000|HPG"
ZADD HPG-TAKEPROFIT 24 "101|081xxx|1000|HPG"

Khi nhận được tín hiện giá thị trường ví dụ lúc này HPG tăng lên giá 23.5. Hệ thống sẽ thực hiện command redis như sau:

ZREVRANGEBYSCORE HPG-STOPLOSS +inf 23.5 LIMIT 0 1
ZRANGEBYSCORE HPG-TAKEPROFIT -inf 23.5 LIMIT 0 1

Kết quả:

Nhìn vào kết quả trên chúng ta không tìm thấy có lệnh nào thỏa mãn điều kiện khi HPG ở giá 23.5.

Tiếp, đội lái cỏ Việt Nam quyết tâm để cổ phiếu HPG hôm nay đóng nến ở 24. Nến đã kéo cổ phiếu lên và hiện tại giá cổ phiếu đang ở giá 24

ZREVRANGEBYSCORE HPG-STOPLOSS +inf 24 LIMIT 0 1
ZRANGEBYSCORE HPG-TAKEPROFIT -inf 24 LIMIT 0 1

Kết quả:

Nhìn kết quả thấy lệnh TAKE_PROFIT có kết quả lệnh thỏa mãn trả về => Hệ thống sẽ kích hoạt lệnh bán

Tương tự trường hợp nếu HPG bị đạp và giá hiện tại đang là 17 thì:

ZREVRANGEBYSCORE HPG-STOPLOSS +inf 17 LIMIT 0 1
ZRANGEBYSCORE HPG-TAKEPROFIT -inf 17 LIMIT 0 1

Kết quả:

Trên đây mình trình bày các khá đơn giản trong bài toán SL, TP. Anh em có ý tưởng nào hay thì comment phía dưới nhé.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Caching đại pháp 2: Cache thế nào cho hợp lý?

Caching rất dễ. Mình không nói đùa đâu, caching rất là dễ. Ai cũng có thể làm được chỉ sau 10 phút đọc tutorial. Nó cũng giống như việc đứa trẻ lên 3 đã có thể cầm bút để vẽ vậy.

0 0 126

- vừa được xem lúc

Caching đại pháp 1: Nấc thang lên level của developer

Bí quyết thành công trong việc đáp ứng hệ thống triệu user của những công ty lớn (và cả công ty nhỏ). Tại sao caching lại là kỹ thuật tối quan trọng để phù phép ứng dụng rùa bò của chúng ta thành siêu phẩm vạn người mê.

0 0 82

- vừa được xem lúc

Cache dữ liệu Nodejs với Redis

Một tí gọi là lý thuyết để anh em tham khảo. Cache là gì. Lợi ích của việc cache data. .

0 0 111

- vừa được xem lúc

Nguyên tắc hoạt động của redis server

Sự ra đời của Redis. . Câu chuyện bắt đầu khi tác giả của Redis, Salvatore Sanfilippo. (nickname: antirez), cố gắng làm những công việc gần như là không.

0 0 97

- vừa được xem lúc

Viết ứng dụng chat realtime với Laravel, VueJS, Redis và Socket.IO, Laravel Echo

Xin chào tất cả các bạn, đây là một trong những bài post đầu tiên của mình. Sau bao năm toàn đi đọc các blog tích luỹ được chút kiến thức của các cao nhân trên mạng.

0 0 918

- vừa được xem lúc

Tìm hiểu tổng quan về Redis

1. Lời mở đầu.

0 0 368