jvinhit//lab

Search posts

Type to search across journal entries.

navigate open esc close

Đầu tư Cổ phiếu · Phần 2 — Thị trường vận hành thế nào: sàn, lệnh & sổ lệnh

Sàn giao dịch (HOSE/HNX/UPCoM và quốc tế), công ty chứng khoán, sổ lệnh, bid/ask, các loại lệnh (market, limit, stop), khớp lệnh, T+ settlement, phí và thuế. Không phải lời khuyên đầu tư.

Đây là Phần 2 của series 12 phần. Phần 1 nói cổ phiếu là gì; phần này là đường ống — làm sao một lệnh mua trong app biến thành cổ phiếu trong tài khoản. Bỏ qua phần này, bạn sẽ mất tiền vì cơ chế, chứ không phải vì thị trường.

Lưu ý

Chỉ mang tính giáo dục — không phải lời khuyên đầu tư. Quy định, phí, và thuế khác nhau theo quốc gia, công ty chứng khoán và thay đổi theo thời gian; luôn kiểm chứng với công ty chứng khoán và sàn của bạn.


Các nhân vật

Lỗi người mới là nghĩ bạn mua cổ phiếu trực tiếp từ công ty hoặc từ một thực thể duy nhất gọi là “thị trường”. Bạn bấm “Mua ABC” trong app và tưởng Apple (hay Vinamilk) trao chứng chỉ cho bạn. Thực tế, bạn gần như luôn mua từ một nhà đầu tư khác đã sở hữu cổ phiếu và đặt lệnh bán. Công ty không có mặt trừ khi phát hành cổ phiếu mới (IPO/phát hành thêm) — một sự kiện riêng.

Giữa bạn và nhà đầu tư kia là ba tầng hạ tầng:

  YOU ──► BROKER ──► EXCHANGE ──► CLEARING / DEPOSITORY
 (bạn)   (CTCK)      (sàn)        (bù trừ / lưu ký)

  - Broker (công ty chứng khoán): your gateway; holds your account, routes orders.
  - Exchange (sàn): the matching engine that pairs buyers and sellers.
  - Clearing house + depository (bù trừ + lưu ký): settles the trade, records who owns what.
  • nơi bạn mở tài khoản. Nó định tuyến lệnh và giữ tiền, chứng khoán của bạn. Bạn không đăng nhập HOSE trực tiếp; công ty chứng khoán là cổng pháp lý và kỹ thuật của bạn.
  • chạy bộ khớp lệnh ghép các lệnh. Sàn không “chọn giá” — nó chỉ thực thi quy tắc và ghép người mua sẵn sàng với người bán sẵn sàng.
  • sau khi khớp, tầng này bảo đảm cả hai bên thực hiện và cập nhật sổ sở hữu. Số dư tài khoản công ty chứng khoán là quyền đòi theo sổ lưu ký — không phải giấy chứng khoán trong két.

Ví dụ: hành trình một lệnh mua

  09:15  You tap "Buy 200 ABC @ limit 100.5" in TCBS app
         → TCBS checks: enough cash? order valid? routes to HOSE

  09:15  HOSE matching engine sees your bid at 100.5
         → crosses best ask at 100.5 (seller queued earlier)
         → match: 200 shares @ 100.5

  09:15  Trade "done" on screen — but ownership not final yet
         → VSDC records obligation: you owe cash, seller owes shares

  T+2    Settlement completes: shares credited to your account, cash debited
         → now you truly own 200 ABC (sellable per broker rules)

Cẩn thận: toast “Lệnh đã khớp” màu xanh không đồng nghĩa “Tôi sở hữu cổ phiếu này hoàn toàn hôm nay”. Độ trễ thanh toán (nói ở dưới) và quy định riêng của công ty chứng khoán vẫn áp dụng.

Tóm lại: bạn → CTCK → sàn → bù trừ/lưu ký; sàn ghép người lạ, bù trừ làm chính thức.


Sổ lệnh — nơi giá ra đời

Người mới nhìn báo giá — “ABC: 100” — và tưởng mua hoặc bán đúng 100. Con số đó thường là giá khớp gần nhất: mức người mua và người bán cuối cùng thỏa thuận, vài giây hoặc vài phút trước. Nó không nói bạn sẽ trả bao nhiêu nếu mua ngay bây giờ.

Giá thật được hình thành ở sổ lệnh — danh sách các lệnh chờ sẵn:

              ORDER BOOK for ABC (sổ lệnh)
   ───────────────────────────────────────────
   SELLERS (ask / chào bán)        ▲ higher price
     102.0   ×  500
     101.5   × 1,200
     101.0   ×   800   ← best ask (giá bán tốt nhất)
   ───────────────────────────────  ◄ spread = 101.0 − 100.5 = 0.5
     100.5   × 1,000   ← best bid (giá mua tốt nhất)
     100.0   × 2,000
      99.5   × 3,500
   BUYERS (bid / chào mua)         ▼ lower price
  • Giá mua — giá cao nhất một người mua sẵn sàng trả lúc này. Đây là các lệnh mua giới hạn đang xếp hàng.
  • Giá bán — giá thấp nhất một người bán chấp nhận. Đây là các lệnh bán giới hạn đang chờ.
  • Chênh lệch — khoảng cách giữa bid và ask tốt nhất. Spread hẹp = thanh khoản tốt; spread rộng = kém thanh khoản và đắt để giao dịch.

Một giao dịch xảy ra ngay khi một lệnh mua và một lệnh bán trùng giá. “Giá khớp gần nhất” trên biểu đồ chỉ là giá của lần khớp mới nhất.

Ví dụ: vì sao “giá 100” ≠ giá khớp của bạn

Giả sử lần khớp cuối là 100.0, nhưng sổ lệnh hiện tại như sơ đồ trên:

  You place MARKET BUY for 1,500 shares

  Step 1: take all 800 @ 101.0 (best ask)     → 800 filled, 700 remaining
  Step 2: take 700 from 1,200 @ 101.5           → 1,500 filled total

  Average fill ≈ (800×101.0 + 700×101.5) / 1,500 = 101.23
  Last price still showed ~100 — you paid ~1.2% above it (slippage)

Nếu bạn đặt LỆNH MUA GIỚI HẠN @ 100.5 cho 1,500 cổ phiếu:

  Step 1: match 1,000 @ 100.5 (entire best-bid queue + your price level)
  Step 2: nothing left at ≤ 100.5 — 500 shares REST on the book, unfilled

  Result: 1,000 filled @ 100.5, 500 still waiting (or cancel them)

Cẩn thận: (1) Giá khớp gần nhất là quá khứ, không phải báo giá. (2) Bạn mua ở ask, bán ở bid — mỗi vòng bạn trả spread. (3) Với mã mỏng, sổ lệnh có thể trống nhiều bậc — lệnh thị trường có thể nhảy qua nhiều mức giá.

Tóm lại: giá nằm ở sổ lệnh; bid, ask và spread cho biết giao dịch tốn bao nhiêu ngay bây giờ.


Các loại lệnh phải biết

Chọn sai loại lệnh là khoản “thuế người mới” kinh điển. Cách ngây thơ: luôn bấm “Thị trường” vì cảm giác nhanh nhất. Nhanh thật — nhưng bạn đưa sàn một tờ séc trắng về giá.

LệnhLàm gìDùng khiRủi ro
Lệnh thị trườngMua/bán ngay ở giá tốt nhất hiện cóCần vào/ra nhanhTrượt giá ở mã kém thanh khoản
Lệnh giới hạnMua ≤ X hoặc bán ≥ X — không bao giờ tệ hơnQuan tâm giá hơn tốc độCó thể không khớp
Lệnh dừngThành lệnh thị trường khi giá chạm mức dừngTự thoát để chặn lỗKích hoạt rồi trượt khi giá nhảy
Dừng giới hạnThành lệnh giới hạn tại mức dừngMuốn dừng + bảo vệ giáCó thể không khớp khi rơi nhanh

Một quy tắc đơn giản: mặc định dùng lệnh giới hạn. Lệnh thị trường ổn với cổ phiếu lớn, thanh khoản cao nhưng nguy hiểm với mã mỏng, nơi một lệnh mua thị trường có thể nhảy vài phần trăm.

Lệnh thị trường — “khớp ngay cho tôi”

Lệnh thị trường nói: Tôi chấp nhận mọi giá sổ lệnh đưa ra, bắt từ mức tốt nhất rồi đi lên (mua) hoặc xuống (bán) cho đủ khối lượng.

  Book: best ask 101.0 × 800, next 101.5 × 1,200, next 102.0 × 500
  MARKET SELL 2,000 shares

  Fill 800 @ 101.0
  Fill 1,200 @ 101.5
  Still need 0 — done. Average ≈ 101.3

  If you expected "around 100" from the chart → you sold ~1.3% below that illusion

Cẩn thận — thanh khoản không đủ: nếu sổ lệnh không đủ khối lượng, bạn hoặc chỉ được khớp một phần, hoặc quét nhiều bậc giá — luôn xem độ sâu sổ lệnh trước khi đặt lệnh thị trường lớn.

Lệnh giới hạn — “chỉ ở giá tôi đặt hoặc tốt hơn”

Lệnh mua giới hạn 100.5 nghĩa là: “Khớp tôi ở 100.5 hoặc thấp hơn”. Lệnh bán giới hạn 101.0 nghĩa là: “Khớp tôi ở 101.0 hoặc cao hơn”.

  Book: best ask 101.0 × 800, best bid 100.5 × 1,000
  LIMIT BUY 300 @ 100.5

  Your bid joins the queue AT 100.5 (behind existing 1,000)
  No instant fill — price must come down OR a seller must hit 100.5

  Later: seller market-sells 400 → 300 of yours fill @ 100.5, 100 goes to next bid

Cẩn thận — thứ tự xếp hàng: cùng mức giá, lệnh đặt trước khớp trước. Xếp cuối hàng dài ở 100.5 có thể phải chờ trong khi người khác đã khớp.

Lệnh dừng và dừng giới hạn — lệnh có điều kiện

Lệnh cắt lỗ không hoạt động cho đến khi giá kích hoạt bị chạm. Người mới tưởng nó đảm bảo thoát đúng giá dừng — không phải; sau khi kích hoạt, nó là lệnh thị trường.

  You own ABC, bought ~105. Stop-loss SELL trigger @ 100.

  Normal day: price drifts to 100.2 → stop not triggered
  Bad day: opens at 97 (gap down overnight)

  Stop triggers → becomes MARKET SELL
  Best bids might be 96.5, 96.0… → you fill ~96.8, not 100

  Stop "worked" (you exited) but did NOT cap loss at 100

Dừng giới hạn thêm sàn: kích hoạt ở 100, nhưng chỉ bán ≥ 99.5. Khi sập, giá có thể vượt 99.5 ngay — lệnh của bạn treo không khớp trong khi cổ phiếu tiếp tục rơi. Đó là đánh đổi: cắt lỗ = thoát được nhưng giá lệch; dừng giới hạn = bảo vệ giá nhưng không chắc thoát.

Tóm lại: thị trường = tốc độ hơn giá; giới hạn = giá hơn tốc độ; lệnh dừng là báo động chuyển thành lệnh thị trường hoặc giới hạn.

Hiệu lực lệnh

Lệnh còn mang hiệu lực thời gian — sàn giữ lệnh bao lâu nếu không khớp ngay:

  • hết hiệu lực khi đóng cửa nếu chưa khớp. Mặc định hợp lý: bạn không thức dậy thấy lệnh khớp bất ngờ tuần sau.
  • nằm trên sổ đến khi bạn hủy hoặc khớp. Rủi ro: quên một lệnh mua giá thấp từ tháng trước và nó khớp đúng ngày hoảng loạn.
  • chuyên dụng: khớp được bao nhiêu ngay (IOC) hoặc tất cả hoặc không (FOK).

Việt Nam có thêm các loại theo phiên:

  • lệnh giới hạn thường trong phiên liên tục.
  • lệnh kiểu thị trường trong khớp liên tục.
  • lệnh chỉ cho phiên mởđóng cửa định kỳ; không giống LO giữa phiên.
  Mistake: place ATO limit buy, expect instant fill at 10:00
  Reality: ATO collects until auction cut-off → one clearing price for everyone
  Your fill price may differ from the last LO trade at 09:59

Tóm lại: hiệu lực thời gian quyết định lệnh “sống” bao lâu; loại phiên VN (LO/MP/ATO/ATC) quyết định khi nào hệ thống xét lệnh.


Khớp lệnh chạy ra sao

Mô hình sai: sàn “tìm giá công bằng” rồi gán cho mọi người. Mô hình đúng: quy tắc xác định sắp xếp hàng đợi các lệnh vì lợi ích riêng. Phần lớn sàn khớp theo ưu tiên giá–thời gian:

  1. Giá tốt hơn thắng — bid 100.6 thắng 100.5.
  2. Cùng giá → thời gian sớm hơn thắng — đến trước, khớp trước.

Một phiên thường gồm:

  Opening auction → Continuous trading → Closing auction
  (phiên mở ATO)    (khớp liên tục LO)   (phiên đóng ATC)
  • Khớp liên tục — mỗi lệnh tới kiểm tra sổ và khớp ngay nếu vượt mức. “Vượt mức nghĩa là giá mua ≥ ask tốt nhất, hoặc giá bán ≤ bid tốt nhất.
  • Khớp định kỳ — lệnh dồn lại, rồi tính một giá khớp duy nhất để tối đa khối lượng. Dùng ở mở/đóng cửa.

Ví dụ: ưu tiên giá–thời gian trong phiên liên tục

  At 101.0 ask: Seller S1 queued 500 shares at 09:00
  At 101.0 ask: Seller S2 queued 300 shares at 09:05

  Buyer B1: LIMIT BUY 600 @ 101.0 at 09:10

  Match order:
    500 from S1 @ 101.0  (S1 was first at this price)
    100 from S2 @ 101.0  (S2 next at same price)
    400 still wanted → B1's order rests on book as bid 600 @ 101.0? 

  Actually B1 wanted 600, got 600 filled. Done.
  If B1 wanted 800: 600 filled, remaining 200 rests as bid @ 101.0

Nhiều thị trường thêm biên độ giá / ngắt mạch: VN giới hạn biên độ ngày (HOSE ±7%, HNX ±10%, UPCoM ±15%) còn Mỹ tạm dừng một cổ phiếu hoặc cả thị trường khi giảm cực mạnh. Chúng tồn tại để làm chậm hoảng loạn, không phải để bảo vệ lãi/lỗ của bạn. Cổ phiếu chạm trần có thể “không có người bán” — lệnh mua thị trường của bạn đơn giản không khớp được.

Tóm lại: liên tục = khớp ngay với sổ; định kỳ = khớp hàng loạt một giá; ưu tiên giá–thời gian là quy tắc công bằng mặc định.

Khớp định kỳ — một giá khớp

Trong phiên khớp định kỳ mở/đóng cửa, hệ thống chọn một giá khớp được nhiều cổ phiếu nhất. Người mới kỳ vọng giá giới hạn = giá khớp — trong phiên định kỳ, mọi người khớp cùng một giá, có thể khác mức họ gõ.

  Bids cumulative   Price   Asks cumulative   Matchable
  (mua dồn)                 (bán dồn)         (khớp được)
     3,000           99      6,000              3,000
     2,500          100      4,500              2,500
     1,800          101      2,000              1,800   ◄ max → clearing 101
     1,000          102        800                800

  At 101: buyers want 1,800 cumulatively, sellers offer 2,000 cumulatively
  Matchable volume = min(1,800, 2,000) = 1,800 ← highest among price levels

  Everyone in the auction who trades → 1,800 shares @ 101.0
  (Even a buyer who bid 102 and a seller who asked 99 both clear at 101)

Cẩn thận: thanh khoản ATO/ATC mỏng hơn — giá khớp có thể lệch xa giá đóng cửa hôm trước, nhất là khi có tin.

Vì thế lệnh ATO/ATC của bạn có thể khớp ở giá khác lần khớp liên tục gần nhất — mọi người trong phiên định kỳ nhận cùng một giá khớp.

Tóm lại: khớp định kỳ tối đa khối lượng ở một giá; giới hạn của bạn là bộ lọc tham gia, không phải cam kết khớp đúng mức đó.

Các đặc thù của thị trường Việt Nam

Khái niệm toàn cầu vẫn đúng, nhưng VN thêm các ma sát cơ học khiến người mới bất ngờ:

  • HOSE giao dịch theo lô chẵn 100 cổ phiếu; lô lẻ giao dịch riêng và thường bị chiết khấu.
  You want 150 shares of a HOSE stock
  → 100 shares via normal LO board
  → 50 shares = odd lot (separate, often worse price / less liquidity)
  • nhiều cổ phiếu VN giới hạn tỷ lệ sở hữu nước ngoài (vd 30% với ngân hàng); khi hết “room”, khối ngoại chỉ mua được từ khối ngoại. Lệnh của bạn có thể bị từ chối dù đủ tiền và giá tốt.
  • mỗi ngày mở bằng giá tham chiếu; giá trần và sàn là mức đó ± biên độ. Lệnh ngoài biên độ không hợp lệ trong phiên đó.
  Reference 50,000 → HOSE band ±7%
  Ceiling (trần) = 53,500   Floor (sàn) = 46,500
  LIMIT BUY @ 54,000 → rejected (above ceiling)
  Stock pinned at ceiling all day → buyers queue, few sellers

Tóm lại: kiểm tra lô, room (nếu là khối ngoại), và biên độ ngày trước khi đổ lỗi “app lỗi”.


Thanh toán — bạn không sở hữu ngay

Sau khi khớp, quyền sở hữu chuyển sau một độ trễ gọi là thanh toán. Niềm tin sai: “Khớp = của tôi, bán ngay được”. Về pháp lý và vận hành, có độ trễ T+N: T là ngày giao dịch; +N là số ngày làm việc đến khi tiền và cổ phiếu thực sự chuyển ở lưu ký.

Mỹ chuyển sang T+1 năm 2024; thanh toán cổ phiếu Việt Nam khoảng T+2, nghĩa là cổ phiếu mua thứ Hai mới thực sự là của bạn (bán được) khoảng hai ngày làm việc sau.

Ví dụ: dòng thời gian T+2 ở VN

  Mon  — BUY 100 ABC, trade executes (T = Monday)
  Tue  — T+1: back-office processing
  Wed  — T+2: settlement completes; shares in your account

  If you try to SELL those 100 ABC on Monday afternoon:
  → many brokers block (no "available" shares yet) or allow only if you
    already hold other settled shares (broker policy varies)

  Mon SELL of *other* settled shares:
  → cash from sale may be "pending" until Wed+ settlement before withdrawal

Điều này quan trọng: bạn không phải lúc nào cũng bán lại ngay được thứ vừa mua, và tiền từ một lần bán có thể chưa rút được tới khi thanh toán xong. Giao dịch trong ngày qua lại mà không hiểu thanh toán dẫn tới vi phạm free-riding hoặc lệnh bán bị từ chối.

Cẩn thận: “Sức mua” và “tiền rút được” trong app không cùng một con số.

Tóm lại: khớp tức thì; chuyển quyền sở hữu là T+N — lên kế hoạch bán và rút tiền theo ngày làm việc, không phải phút.


Ma sát: phí, spread, và thuế

Mỗi vòng (mua rồi bán) đều rò rỉ tiền. Người mới lấy giá bán trừ giá mua gọi là “lãi” — quên spread đã trả khi vào và ra, cộng phí rõ ràng.

  • Phí giao dịch — một % giá trị giao dịch (VN thường ~0.1–0.35%); nhiều broker Mỹ miễn phí cổ phiếu.
  • Spread — bạn thường mua ở giá bán và bán ở giá mua, trả luôn khoảng chênh. Với spread 0.5 ở giá 100, đó là 0.5% mỗi vòng trước phí.
  • Thuế — VN thu thuế bán (~0.1% giá trị bán) cộng thuế cổ tức; nước khác đánh thuế lãi vốn. Quy định khác nhau — hãy tự kiểm tra.
  Trade 100 shares @ 100 = 10,000 value
  Buy  fee 0.15%  = 15
  Sell fee 0.15%  = 15
  Sell tax 0.10%  = 10   (on VN sell value)
  Spread ~0.5%    ≈ 50   (buy ask, sell bid on a 0.5-wide book)
  ──────────────────────
  ~90 lost on a flat trade → you need >0.9% gain just to break even.
  ~mất ~90 dù giá đứng yên → cần lãi >0.9% mới hòa vốn.

Ví dụ: spread vẫn đau khi “giá không đổi”

  Book: bid 100.0 / ask 100.5 (last trade showed 100.25)

  BUY  100 @ 100.5 (market)  → pay 10,050
  SELL 100 @ 100.0 (market)  → receive 10,000
  "Price flat" but you lost 50 on spread alone (0.5%)

Bài học phũ và đơn giản: giao dịch nhiều nhân lên ma sát. Mười vòng giao dịch một tháng trên tài khoản nhỏ có thể xóa cả năm lãi khiêm tốn — đây là một trong những lập luận toán học mạnh nhất cho hướng đầu tư dài hạn ở Phần 10.

Tóm lại: lãi = biến động giá trừ spread, phí và thuế — tính điểm hòa vốn trước khi mừng.


Ký quỹ — vay để mua

Công ty chứng khoán cho bạn vay để mua nhiều hơn số tiền mặt — ký quỹ. Ảo tưởng người mới: “đòn bẩy miễn phí — lãi gấp đôi!”. Thực tế: lỗ cũng nhanh gấp đôi, trả lãi, và chấp nhận bị bán ép.

Nó khuếch đại cả lãi lẫn lỗ, và thêm một kiểu sụp đổ mới: call margin / bán giải chấp. Nếu tài sản đảm bảo rớt dưới ngưỡng, công ty chứng khoán tự bán vị thế của bạn — thường vào đúng thời điểm tệ nhất.

Ví dụ: margin call xảy ra thế nào

  You have 100M cash, broker allows 50% margin → ~200M buying power
  You buy 200M of stock (100M your cash + 100M borrowed)

  Stock drops 30% → position now 140M, loan still 100M, equity = 40M
  Maintenance margin say 35% of position → need 49M equity
  You have 40M → MARGIN CALL

  Broker issues call: deposit 9M+ within X hours OR they market-sell
  Often they sell into the same panic — you lock in the loss + interest

Cẩn thận: (1) Lãi vay tính hàng ngày. (2) Bán giải chấp dùng lệnh thị trường — khớp tệ nhất khi thị trường lao dốc. (3) Trường hợp cực đoan, bạn có thể mất nhiều hơn tiền ban đầu nếu giá gap xuyên qua vốn chủ.

Người mới nên coi margin như lửa: tôn trọng nó, và phần lớn thời gian nên tránh.

Tóm lại: margin là khoản vay có nút tắt — công ty chứng khoán có thể bán ép trước khi bạn “quyết định”.


Bạn vừa nắm được gì

  • Lệnh chảy bạn → CTCK → sàn → bù trừ/lưu ký.
  • Giá nằm ở sổ lệnh; bid/ask/spread đo thanh khoản.
  • Mặc định lệnh giới hạn; hiểu stopstop-limit.
  • Khớp theo ưu tiên giá–thời gian, có khớp định kỳ ở mở/đóng và biên độ giá.
  • Thanh toán (T+1/T+2), phí, spread, thuế, và margin là chi phí/rủi ro thật — không phải chuyện phụ.

Bài tập

  1. Mở một cổ phiếu bất kỳ và chụp sổ lệnh. Xác định bid tốt nhất, ask tốt nhất, và spread tính theo % giá.
  2. Với một mã vốn hóa nhỏ ít thanh khoản, bạn dùng lệnh thị trường hay giới hạn? Giải thích trong một câu.
  3. Tính tổng ma sát (phí + thuế) cho một vòng giao dịch 50.000.000 VND theo biểu phí thật của công ty chứng khoán bạn.

Tiếp theo, Phần 3 — Đọc báo cáo tài chính: ba bản báo cáo cho bạn biết doanh nghiệp sau mã cổ phiếu có thật sự khỏe không.