Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 2 của 2
  1. #1
    Ngày tham gia
    Sep 2015
    Đang ở
    89 Tam Trinh - Hoàng Mai - Hà Nội
    Bài viết
    0

    code xử lí khớp lệnh chứng khoán?

    Mình đang làm 1 trang giao dịch chứng khoán ảo bằng ASP.Net (C#) nhưng đang bí phần xử lí khớp lệnh,mong các bạn giúp đỡ!
    Source của mình đây :
    Mã:
    http://www.mediafire.com/?n1xmndnbmjm
    Đây là yêu cầu khớp lệnh :

    Nguyên tắc khớp lệnh

    i. Là mức giá thực hiện đạt được khối lượng giao dịch lớn nhất;

    ii. Nếu có nhiều mức giá thoả mãn điểm i thì mức giá trùng hoặc gần với giá thực hiện của lần khớp lệnh gần nhất sẽ được chọn;

    iii. Nếu vẫn còn nhiều mức giá thoả mãn điểm ii thì mức giá cao hơn sẽ được chọn

    a. Ưu tiên về giá:

    - Lệnh mua có mức giá cao hơn được ưu tiên thực hiện trước;

    - Lệnh bán có mức giá thấp hơn được ưu tiên thực hiện trước;

    b. Ưu tiên về thời gian:

    Trường hợp các lệnh mua hoặc lệnh bán có cùng mức giá thì lệnh nhập vào hệ thống giao dịch trước sẽ được ưu tiên thực hiện trước.



    Trong sổ lệnh trên
    Ở cột Tích Lũy đầu tiên bên phía bên trái là tích lũy mua,tức là, mình sẽ cộng dồn số lượng đặt mua bên cột thứ thứ 2 (MUA) từ trên xuống,cột thứ 3 là cột GIÁ,tức là giá mà người ta đặt mua hoặc đặt bán cổ phiếu.
    Cột thứ 4 là cột BÁN ,cột này chỉ ra số lượng cổ phiếu mỗi người đặt bán,ở cột thứ 5 cột TÍCH LŨY,ở cột này mình sẽ cộng dồn từ dưới lên.
    Cụ thể ở ví dụ trên:
    Có 10000 cp đc đặt mua ở mức giá 30000 và có 5,500 cp đc đặt mua ở giá 29000, điều này giống như mình bán đấu giá vậy.cho nên,giả sử mình có giá khớp lệnh là 28000 đi,thì lúc này,thằng đặt mua ở giá 30000 sẽ mua được trước và lần lượt tới mấy thằng mua ở giá thấp hơn,cho nên ở bên MUA sẽ cộng dồn từ trên xuống.Ngược lại,ai đặt bán có mức giá thấp hơn sẽ được bán sớm,cho nên tích lũy của bán là cộng dồn từ dưới lên.
    Bây giờ mình sẽ giải thích thế nào là khối lượng giao dịch. Nếu mình mua 5 cái bánh,người ta chỉ còn có 3 cái,mà mình mua 3 cái này,tức là số lượng giao dịch là 3.HOẶc nếu người ta có 10 cái,mình chỉ mua 7,thì 7 cái chính là số lượng giao dịch.
    Ở đây mình xét khối lượng giao dịch theo từng mức giá để chọn ra giá khớp lệnh.
    trong ví dụ trên:
    Ở mức giá : 26k , thì tổng số lượng mua là 34000, tổng số lượng bán ra là 2500,vậy khối lượng giao dịch là 2500
    27k tổng mua 25500,tổng bán 5500 vấy kl giao dịch là 5500
    28k tổng mua 22500,tổng bán 9500 vây kl giao dịch là 9500
    Tương tự cho các mức giá 29 và 30k, ta nhận thấy ở mức giá 29 k khối lượng giao dịch là 15500, đây là mức giá mà đạt được khối lượng giao dịch lớn nhất nên nó sẽ đc chọn là giá khớp lệnh.
    Sau khi mình chọn được 29k là giá khớp lệnh rồi thì những lệnh đc khớp tức là lệnh đặt mua hoặc đặt bán thành công sẽ là:
    10000cp ở giá 30000 sẽ được mua trước vì mua ở giá cao hơn 29k,sau đó là 5500cp ở mức giá 29k sẽ đc mua.
    và 2500cp ở mức giá 26k sẽ được bán trước
    3000cp ở mức giá 27k cũng sẽ bán
    4000cp ở giá 28k đc bán
    như vậy tới đây là đã có 9500 cp đã được bán thành công,
    nhưng khối lượng mua là 15500,
    vậy 6500 cp ở mức giá 29k sẽ được bán,vậy ở mức giá 29 còn tồn lại 8500cp chưa được bán,và dĩ nhiên là 10000cp ở mức giá 30k cũng sẽ ko đc bán.
    Ngoài ra các lệnh bán có mức giá đặt dưới 29k cũng ko mua được.
    Mình đã nói rõ ràng và chi tiết rồi,mong được mọi người ra tay giúp đỡ.Và nếu cần tạo CSDL để xử lí thì tạo giùm mình ,cám ơn bạn rất nhiều!

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Vui lòng giúp đỡ mình với,sr 4 my spam!

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •