Bài viết gần đây
-
Quản lý CRM toàn diện: Từ lead đến học viên trung thành
Tháng 8 16, 2026 -
Auto Trading MQL5: Xây Dựng Bot Giao Dịch Tự Động Trên MetaTrader 5
Tháng 8 15, 2026
| Tự Động Hóa Giao Dịch T+0 Trên Chứng Khoán Việt Nam Bằng Python
Được viết bởi Đặng Trí Thanh vào ngày 28/06/2026 lúc 15:43 | 33 lượt xem
Auto trade T+0 trên chứng khoán Việt Nam là chủ đề nóng khi thị trường mở rộng giao dịch trong ngày. Bài này nói thực tế triển khai bằng Python — không hứa lợi nhuận — gồm thiết kế rule, semi-auto, phí và rủi ro kẹt vị thế.
Nền: Python và chứng khoán VN · Backtest Python SSI/DNSE
T+0 / day trading là gì trong bối cảnh VN?
- T+0 (trong ngày): mua và bán cùng mã trong phiên, không giữ qua đêm (theo sản phẩm/quy định áp dụng).
- Khác swing: day trading cần tốc độ ra quyết định và kỷ luật phí — lướt nhiều lệnh, phí ăn margin lợi nhuận nhanh.
- Python phù hợp cảnh báo + semi-auto trước khi full-auto.
Kiến trúc hệ thống Python cho T+0 (khung)
| Thành phần | Vai trò |
|---|---|
| Data feed | Giá intraday từ broker/API hoặc file export |
| Scanner | Quét biên độ, volume, điều kiện rule |
| Signal | Rule rõ (không “cảm giác”) |
| Risk | Max lệnh/ngày, stop, chặn khi lỗ X% |
| Execution | Cảnh báo Telegram → semi-auto → auto (sau paper) |
# Khung scanner đơn giản (demo giáo dục)
import pandas as pd
def scan_intraday(df: pd.DataFrame, pct_threshold: float = 2.0) -> pd.DataFrame:
"""df: cột time, close, volume — nến 1m/5m"""
df = df.copy()
df["pct_from_open"] = (df["close"] / df["close"].iloc[0] - 1) * 100
return df[df["pct_from_open"].abs() >= pct_threshold]
Rule mẫu: chênh lệch trong phiên (không phải lời khuyên đầu tư)
- Chọn universe mã thanh khoản (volume phiên ổn).
- Định nghĩa trigger: vd. biên độ từ tham chiếu phiên ±X%.
- Paper 2–4 tuần: so sánh tín hiệu với nhật ký tay.
- Semi-auto: bot gửi alert, bạn xác nhận lệnh.
- Chỉ auto khi rule + risk đã kiểm chứng.
Chi tiết backtest: backtest Python CK VN.
Rủi ro đặc thù T+0
- Phí giao dịch — nhiều lệnh/ngày → cần mô phỏng phí trong backtest.
- Slippage — khớp không đúng giá kỳ vọng trên mã mỏng thanh khoản.
- Kẹt vị thế — rule không có exit rõ → ôm qua phiên (vi phạm kế hoạch T+0).
- Latency API — CK VN không phải HFT; kỳ vọng “micro giây” là sai.
Semi-auto vs full-auto
| Semi-auto | Full-auto | |
|---|---|---|
| An toàn học | Cao | Thấp nếu chưa paper |
| Tốc độ | Chậm hơn vài giây | Nhanh hơn |
| Phù hợp | Người mới T+0 + Python | Sau vài tháng paper ổn |
Khung chuyển đổi: Algorithmic trading VN.
Bước tiếp theo
- Backtest rule trên dữ liệu lịch sử intraday (nếu có).
- Hub K11: Xây dựng IB bằng Bot Auto Trading.
FAQ
T+0 VN có auto trade 100% được không?
Phụ thuộc broker, API và quy định sản phẩm — luôn đọc tài liệu chính thức trước khi code live.
Cần VPS không?
Scanner intraday chạy trong phiên — máy ổn định hoặc VPS; không bắt buộc HFT.
Python hay Excel trước?
Excel cho nhật ký tay; Python khi rule phức tạp và cần alert/auto.
Đặng Trí Thanh
Giám đốc Công nghệ · DNT Digital · Giảng viên Hướng Nghiệp Dữ Liệu
Đào tạo và triển khai thực chiến Python, MT5 và hệ thống bot auto trading / IB cho học viên và doanh nghiệp.
Xây dựng IB bằng Bot Auto Trading: https://www.huongnghiepdulieu.com/xay-dung-ib-bang-bot-auto-trading/ · Lịch khai giảng · Hotline 0934 145 100
Mở rộng — Thiết kế rule T+0 rõ ràng
Để giao dịch T+0 thành công, quy tắc phải cụ thể, đo được và không dựa vào cảm tính. Dưới đây là khung rule mẫu cho hệ thống day trading chứng khoán Việt Nam.
Xác định bộ lọc thanh khoản
- Chỉ giao dịch mã có giá trị giao dịch trung bình phiên đủ lớn.
- Tránh mã mỏng thanh khoản, dễ bị trượt giá và khó thoát.
- Ưu tiên cổ phiếu trong rổ VN30 hoặc nhóm thanh khoản cao.
# [LỌC THANH KHOẢN - PYTHON]
import pandas as pd
def filter_liquid(df, min_value=1_000_000_000):
# df: cột symbol, value (giá trị giao dịch theo VND)
return df[df["value"] >= min_value]
Định nghĩa trigger vào lệnh
- Giá phá biên độ của N phiên gần nhất kèm volume tăng.
- Chỉ vào khi xu hướng ngắn hạn đồng thuận với khối lượng.
- Dừng nếu chạm điều kiện lọc rủi ro (max lệnh/ngày, max lỗ).
Mở rộng — Quản lý rủi ro T+0 bằng Python
Rủi ro của day trading đến từ phí, trượt giá và kẹt vị thế. Hệ thống cần chặn tự động trước khi mở lệnh.
# [QUẢN LÝ RỦI RO - PYTHON]
class RiskManager:
def __init__(self, daily_loss_limit=0.03, max_trades=10):
self.daily_loss_limit = daily_loss_limit
self.max_trades = max_trades
self.trades_today = 0
self.pnl_today = 0.0
def can_open(self, equity):
# chặn khi lỗ vượt ngưỡng hoặc quá nhiều lệnh
if self.pnl_today / equity <= -self.daily_loss_limit:
return False
if self.trades_today >= self.max_trades:
return False
return True
Các ngưỡng cần cấu hình
| Tham số | Khuyến nghị | Vai trò |
|---|---|---|
| Max lỗ/ngày | 2–3% tài khoản | Dừng khi thua nhiều |
| Max lệnh/ngày | 5–10 | Tránh overtrading |
| Max vốn/lệnh | 1–2% | Giới hạn rủi ro từng lệnh |
| Thời gian giữ | Theo rule | Tránh kẹt qua phiên |
Mở rộng — Mô phỏng phí và slippage
Phí giao dịch và trượt giá ăn mòn lợi nhuận day trading. Backtest phải mô phỏng cả hai.
# [MÔ PHỎNG PHÍ - PYTHON]
def apply_costs(df, fee_rate=0.0025, slippage=0.001):
# df: cột entry, exit
df = df.copy()
df["entry_cost"] = df["entry"] * (fee_rate + slippage)
df["exit_cost"] = df["exit"] * (fee_rate + slippage)
df["net_pnl"] = df["exit"] - df["entry"] - df["entry_cost"] - df["exit_cost"]
return df
FAQ mở rộng
Chi phí nào quan trọng nhất với T+0? Phí giao dịch lũy kế theo số lệnh; với nhiều lệnh/ngày, phí có thể chiếm phần lớn lợi nhuận.
Semi-auto có đủ nhanh không? Với T+0 VN không phải HFT, vài giây xác nhận là chấp nhận được và an toàn hơn full-auto khi mới bắt đầu.
Học ở đâu? Khóa Python chứng khoán VN và Xây dựng IB bằng Bot Auto Trading tại HNDL.
Mở rộng — Xây dựng Scanner T+0 hoàn chỉnh
Scanner là trái tim của hệ thống day trading: quét toàn bộ mã trong phiên và lọc những mã đạt điều kiện.
# [SCANNER HOÀN CHỈNH - PYTHON]
import pandas as pd
def scan_all_universe(data, open_price_col="open", close_col="close",
vol_col="volume", min_vol=500_000):
# data: dict {symbol: DataFrame} chứa nến intraday
hits = []
for symbol, df in data.items():
df = df.copy()
df["pct_from_open"] = (df[close_col] / df[open_price_col].iloc[0] - 1) * 100
df["vol_ratio"] = df[vol_col] / df[vol_col].rolling(20).mean()
latest = df.iloc[-1]
if latest["pct_from_open"] >= 2.0 and latest["vol_ratio"] >= 1.5:
hits.append({
"symbol": symbol,
"pct": round(latest["pct_from_open"], 2),
"vol_ratio": round(latest["vol_ratio"], 2),
"time": latest.name,
})
return pd.DataFrame(hits)
Ý nghĩa các cột
pct_from_open: biến động so với giá mở cửa — phát hiện mã “bùng nổ” trong phiên.vol_ratio: tỷ lệ khối lượng so với trung bình 20 nến — xác nhận sức mạnh.- Kết hợp cả hai giúp giảm tín hiệu nhiễu.
Mở rộng — Cảnh báo Telegram cho semi-auto
Semi-auto bắt đầu bằng việc gửi cảnh báo về điện thoại, bạn xác nhận lệnh.
# [TELEGRAM - PYTHON]
import requests
def send_alert(token, chat_id, text):
url = f"https://api.telegram.org/bot{token}/sendMessage"
requests.post(url, json={"chat_id": chat_id, "text": text})
# Gửi khi scanner tìm thấy mã đạt điều kiện
send_alert(TOKEN, CHAT_ID, "Signal: VNM tăng 2.5% từ mở cửa, volume x1.6")
Nhận cảnh báo ngay trong phiên giúp bạn kiểm tra và xác nhận trước khi vào lệnh — an toàn hơn full-auto khi mới bắt đầu.
Mở rộng — Nhật ký giao dịch và đánh giá
# [NHẬT KÝ - PYTHON]
import csv
from datetime import datetime
def log_trade(trade):
with open("trades.csv", "a", newline="", encoding="utf-8") as f:
w = csv.writer(f)
w.writerow([datetime.now().isoformat(), trade["symbol"],
trade["side"], trade["entry"], trade["exit"],
trade["pnl"]])
Nhật ký đầy đủ giúp bạn đo win rate, profit factor và tinh chỉnh rule sau mỗi tuần.
FAQ mở rộng 2
Scanner cần dữ liệu intraday từ đâu? Từ broker API hoặc file export — hãy đọc tài liệu chính thức của broker.
Bao lâu kiểm tra lại rule? Hàng tuần dựa trên nhật ký; chỉ thay đổi khi có đủ bằng chứng.
Học ở đâu? Khóa Python chứng khoán VN tại HNDL.
Mở rộng — Kiểm chứng rule bằng nhật ký tay
Trước khi tự động hóa, hãy ghi nhật ký tay các tín hiệu và so sánh với bot.
# [SO SÁNH TAY/BOT - PYTHON]
def compare_manual_bot(manual, bot_signals):
# manual: DataFrame nhật ký tay
# bot_signals: tín hiệu bot
merged = manual.merge(bot_signals, on="time", how="outer")
merged["agree"] = merged["manual_sig"] == merged["bot_sig"]
return merged["agree"].mean()
Độ đồng thuận cao → rule rõ ràng; thấp → rule còn mơ hồ, cần chỉnh.
Mở rộng — Chuyển từ semi-auto sang full-auto
- Paper 2–4 tuần với rule ổn định.
- Semi-auto 2–4 tuần (cảnh báo + xác nhận).
- Full-auto với vốn nhỏ, theo dõi sát.
- Tăng dần vốn khi kết quả ổn định.
# [CỔNG AN TOÀN - PYTHON]
def auto_gate(weeks_paper, weeks_semi, profit_factor):
# chỉ bật full-auto khi đủ điều kiện
if weeks_paper >= 4 and weeks_semi >= 2 and profit_factor > 1.2:
return "ALLOW_AUTO"
return "KEEP_SEMI"
Mở rộng — Báo cáo hiệu suất tuần
# [BÁO CÁO - PYTHON]
def weekly_report(trades):
wins = trades[trades.pnl > 0]
losses = trades[trades.pnl <= 0]
pf = wins.pnl.sum() / abs(losses.pnl.sum()) if len(losses) else float("inf")
return {
"trades": len(trades),
"win_rate": len(wins) / len(trades),
"profit_factor": pf,
"net_pnl": trades.pnl.sum(),
}
FAQ mở rộng 3
Bao lâu mới nên full-auto? Tối thiểu 4–6 tuần paper + semi ổn định, profit factor > 1.2.
Nếu rule hết hiệu quả thì sao? Theo dõi báo cáo tuần; khi profit factor giảm liên tục, tạm dừng và phân tích.
Học ở đâu? Khóa Python chứng khoán VN và Bot Auto Trading tại HNDL.
Mở rộng — Dữ liệu intraday và xử lý phiên giao dịch VN
Chứng khoán VN có phiên khớp lệnh theo quy định (khớp lệnh liên tục, đóng cửa). Hệ thống T+0 phải hiểu cấu trúc phiên.
- Phiên mở cửa (ATO) và phiên đóng cửa (ATC) có cơ chế khớp riêng.
- Giá tham chiếu và biên độ dao động theo quy định từng thời kỳ.
- Scanner cần nhận diện vùng thời gian hợp lệ để tránh tín hiệu giả.
# [PHIÊN VN - PYTHON]
def is_valid_session(dt):
# khung giờ khớp lệnh liên tục (ví dụ)
return dt.time() >= datetime.time(9, 0) and dt.time() <= datetime.time(14, 30)
def filter_by_session(df):
return df[df.index.map(is_valid_session)]
Mở rộng — Đo lường chi phí thực tế
# [CHI PHÍ - PYTHON]
def total_cost(notional, buy_fee, sell_fee, tax_rate=0.001):
# phí môi giới 2 chiều + thuế bán (áp dụng theo quy định)
return notional * (buy_fee + sell_fee) + notional * tax_rate
# Ví dụ: 100 triệu VND, phí 0.25% mỗi chiều
print(total_cost(100_000_000, 0.0025, 0.0025))
Mở rộng — Ví dụ rule breakout phiên
# [RULE BREAKOUT - PYTHON]
def breakout_signal(df, lookback=5, vol_mult=1.5):
# mức kháng cự = max đóng cửa N phiên gần nhất
resistance = df["close"].rolling(lookback).max().iloc[-1]
latest = df.iloc[-1]
if latest["close"] > resistance and latest["volume"] > latest["vol_ma"] * vol_mult:
return "BUY_BREAKOUT"
return "WAIT"
FAQ mở rộng 4
Có nên giao dịch ngay phiên mở cửa không? Biến động mạnh đầu phiên; cần rule lọc kỹ để tránh nhiễu.
Thuế và phí ảnh hưởng thế nào? Ăn mòn lợi nhuận rõ; phải mô phỏng đầy đủ trong backtest.
Học ở đâu? Khóa Python chứng khoán VN tại HNDL.
Mở rộng — Lộ trình thực chiến T+0 bằng Python
Bắt đầu từ đơn giản và tăng dần độ phức tạp, không “nhảy” thẳng vào full-auto.
- Học Python + Pandas xử lý dữ liệu giá.
- Viết scanner quét biên độ và volume trong phiên.
- Backtest rule trên dữ liệu lịch sử.
- Semi-auto: cảnh báo Telegram + xác nhận tay.
- Full-auto chỉ khi đã kiểm chứng đủ lâu.
# [LỘ TRÌNH - PYTHON]
STEPS = [
"PYTHON_BASIC",
"SCANNER",
"BACKTEST",
"SEMI_AUTO",
"FULL_AUTO",
]
def next_step(current):
idx = STEPS.index(current)
return STEPS[idx + 1] if idx + 1 < len(STEPS) else "DONE"
Mở rộng — Các sai lầm cần tránh
| Sai lầm | Hậu quả | Cách tránh |
|---|---|---|
| Full-auto quá sớm | Mất vốn khi rule chưa kiểm chứng | Paper + semi trước |
| Bỏ qua phí | Backtest ảo, live lỗ | Mô phỏng phí/slippage |
| Quá nhiều lệnh | Overtrading, phí cao | Giới hạn lệnh/ngày |
| Không có exit | Kẹt vị thế qua phiên | Rule exit rõ ràng |
Mở rộng — Kết luận tổng quan T+0
Giao dịch T+0 chứng khoán VN bằng Python là hành trình từ scanner, rule, quản lý rủi ro đến semi-auto/full-auto. Điều quan trọng nhất là kỷ luật: rule rõ ràng, kiểm chứng kỹ, quản lý vốn nghiêm. Hãy bắt đầu từng bước và ưu tiên bảo vệ vốn.
📖 Python chứng khoán VN · Backtest Python SSI/DNSE · Xây dựng IB bằng Bot Auto Trading · Lịch khai giảng
Mở rộng — Tích hợp dữ liệu và lịch sử
Dữ liệu là nền tảng của mọi hệ thống T+0. Bạn cần dữ liệu giá intraday sạch và lịch sử đủ dài để backtest.
# [DỮ LIỆU - PYTHON]
import pandas as pd
def clean_intraday(df):
df = df.copy()
df["time"] = pd.to_datetime(df["time"])
df = df.sort_values("time").drop_duplicates(subset="time")
df = df[df["volume"] > 0] # bỏ nến rỗng
df["vol_ma"] = df["volume"].rolling(20).mean()
return df
Lưu ý khi xử lý dữ liệu
- Loại bỏ nến không có giao dịch (volume = 0).
- Chuẩn hóa múi giờ để khớp với phiên VN.
- Chia dữ liệu train/test tránh overfit.
Mở rộng — Ví dụ phân tích biên độ trong ngày
# [BIÊN ĐỘ - PYTHON]
def intraday_range(df):
# biên độ so với giá mở cửa qua từng thời điểm
df = df.copy()
df["range"] = (df["high"] - df["low"]) / df["open"] * 100
df["avg_range"] = df["range"].expanding().mean()
return df
Biên độ trung bình giúp đặt kỳ vọng lợi nhuận/stop hợp lý cho từng mã.
FAQ mở rộng 5
Dữ liệu intraday lấy ở đâu? Broker API, sàn hoặc file export — kiểm tra độ tin cậy và cập nhật.
Cần bao nhiêu năm dữ liệu? Càng nhiều càng tốt; tối thiểu 1–2 năm để bao gồm nhiều trạng thái thị trường.
Học ở đâu? Khóa Python chứng khoán VN tại HNDL.
Mở rộng — Các câu hỏi thực hành T+0
Tự kiểm tra hiểu biết trước khi triển khai:
- Scanner cần những cột dữ liệu nào?
- Vì sao phải mô phỏng phí và slippage trong backtest?
- Semi-auto khác full-auto thế nào về độ an toàn?
- Làm sao tránh kẹt vị thế qua phiên?
- Khi nào nên chuyển sang full-auto?
Mở rộng — Kiểm tra chéo rule với dữ liệu mới
# [KIỂM TRA CHÉO - PYTHON]
def walk_forward(df, train_ratio=0.7):
split = int(len(df) * train_ratio)
train = df[:split]
test = df[split:]
# tối ưu tham số trên train, đánh giá trên test
best = optimize(train)
return evaluate(best, test)
Walk-forward giúp tránh overfitting — một trong những sai lầm lớn nhất của trader tự học.
Mở rộng — Kết luận cuối cùng T+0 VN
Hệ thống T+0 bằng Python: từ scanner, rule breakout, quản lý rủi ro, phí/slippage đến semi-auto và full-auto. Thành công đòi hỏi kỷ luật, kiểm chứng kỹ lưỡng và quản lý vốn nghiêm túc. Hãy bắt đầu từ paper và semi-auto để bảo vệ vốn trong quá trình học.
📖 Python chứng khoán VN · Backtest Python SSI/DNSE · Xây dựng IB bằng Bot · Lịch khai giảng
Bot giao dịch tự động và vai trò của tự động hóa giao
Bot giao dịch tự động (trading bot) thực thi lệnh theo lập trình, loại bỏ cảm xúc và đảm bảo kỷ luật. Tự Động Hóa Giao là một phần quan trọng trong hệ thống, giúp nhà đầu tư kiểm soát toàn bộ quy trình từ tín hiệu đến lệnh thực tế.
Bài viết này phân tích chi tiết về tự động hóa giao: kiến trúc hệ thống, cách xây dựng, quản lý rủi ro, và những sai lầm phổ biến khiến bot thua lỗ.
| Thành phần | Chức năng | Ví dụ |
|---|---|---|
| Thu thập dữ liệu | Lấy giá realtime | Binance API, MT5 |
| Xử lý tín hiệu | Tính toán điểm vào/ra | Python strategy |
| Quản lý lệnh | Đặt/sửa/đóng lệnh | python-binance, MT5 |
| Quản lý vốn | Tính khối lượng theo rủi ro | risk module |
| Cảnh báo | Thông báo kết quả | Telegram Bot |
Kiến trúc một bot giao dịch chuẩn
Một bot tốt không chỉ gồm phần sinh tín hiệu mà còn có lớp quản lý lệnh, quản lý vốn và giám sát lỗi. Tách lớp giúp bạn dễ kiểm thử và nâng cấp từng phần mà không phá vỡ toàn hệ thống.
# Vòng lặp chính của bot
import time
while True:
price = get_price()
signal = strategy(price)
if signal == 'BUY':
open_position()
elif signal == 'SELL':
close_position()
time.sleep(60)
Quản lý rủi ro — yếu tố sống còn
| Nguyên tắc | Mô tả | Áp dụng |
|---|---|---|
| Rủi ro cố định/lệnh | Không mạo hiểm quá 1-2% | Tính lot tự động |
| Dừng lỗ bắt buộc | Giới hạn thua mỗi lệnh | Stop loss luôn bật |
| Không gồng lỗ | Cắt lỗ ngay khi sai | Đóng lệnh theo điều kiện |
| Phân bổ vốn | Không dồn hết vào 1 cặp | Đa dạng hóa tài sản |
| Backtest trước | Kiểm chứng trước khi live | Backtest ít nhất 1 năm |
Dù chiến lược tốt đến đâu, nếu quản lý rủi ro kém thì tài khoản vẫn có thể cháy. Hãy coi quản lý vốn là phần quan trọng nhất của hệ thống.
Các sai lầm khiến bot thua lỗ
Sai lầm phổ biến nhất là tin vào backtest đẹp mà quên chi phí giao dịch và trượt giá. Một bot lời 10% trong backtest có thể lỗ ngoài thực tế nếu không tính spread, phí và độ trễ khớp lệnh.
Sai lầm thứ hai là chạy bot mà không giám sát. Bot có thể dừng do mất mạng, hết API credit hoặc lỗi logic. Cần có cảnh báo Telegram và log đầy đủ.
Mẹo vận hành bot ổn định 24/7
Để bot chạy liên tục, hãy dùng VPS thay vì máy cá nhân, cấu hình tự khởi động lại khi crash, và đặt log có xoay vòng để tránh đầy ổ cứng.
Câu hỏi thường gặp về tự động hóa giao
Bot tự động hóa giao có chắc chắn sinh lời không?
Không có bot nào chắc chắn sinh lời. Bot chỉ thực thi kỷ luật theo chiến lược. Lợi nhuận phụ thuộc chất lượng chiến lược và quản lý rủi ro.
Cần kiến thức gì để tự xây bot?
Cần Python cơ bản, hiểu API sàn giao dịch và khái niệm thị trường. Bạn có thể học theo lộ trình từ phân tích dữ liệu đến tự động hóa.
Có nên chạy bot với tiền thật ngay không?
Không. Hãy chạy demo ít nhất vài tuần, đối chiếu kết quả, rồi mới dùng vốn nhỏ thật.
Kết luận
Tự Động Hóa Giao giúp bạn giao dịch kỷ luật và tiết kiệm thời gian, nhưng cần được xây dựng đúng chuẩn: dữ liệu sạch, backtest trung thực, quản lý rủi ro chặt chẽ và giám sát thường xuyên. Hãy bắt đầu nhỏ và tối ưu dần.
Weekly Digest — Nhận Bản Tin Hàng Tuần
Nhận các bài viết phân tích kỹ thuật chuyên sâu, thuật toán giao dịch tự động (Trading Bot) và các giải pháp công nghệ mới nhất từ Hướng Nghiệp Dữ Liệu.
Đặng Trí Thanh
Giám đốc Công nghệ · DNT Digital · Giảng viên HNDLĐặng Trí Thanh — Founder & CTO · Hướng Nghiệp Dữ Liệu - DNT Digital. Chuyên đào tạo và triển khai thực chiến Python, MT5 và hệ thống bot auto trading / IB cho học viên và doanh nghiệp.