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
Trang chủ → Bài Viết → Vẽ Biểu Đồ Giá Bằng Python | matplotlib Candlestick, Đường Giá + MA, Dữ Liệu Binance (Python 365 Ngày 65)
| Vẽ Biểu Đồ Giá Bằng Python | matplotlib Candlestick, Đường Giá + MA, Dữ Liệu Binance (Python 365 Ngày 65)
Được viết bởi Đặng Trí Thanh vào ngày 18/08/2026 lúc 11:46 | 6 lượt xem
Vẽ biểu đồ giá bằng Python là kỹ năng không thể thiếu của bất kỳ ai làm phân tích dữ liệu tài chính. Trong bài học Python 365 Ngày 65 này, bạn sẽ dùng matplotlib — thư viện vẽ biểu đồ phổ biến nhất của Python — để tải dữ liệu BTCUSDT thật từ Binance, vẽ đường giá kèm trung bình động MA5/MA20, và tự tay dựng biểu đồ nến Nhật (candlestick) từ số 0 mà không cần thư viện phụ trợ.
Một biểu đồ đẹp không chỉ để “nhìn cho vui” — nó là công cụ ra quyết định: nhận diện xu hướng, vùng hỗ trợ/kháng cự, tín hiệu giao cắt MA. Khi bạn biết tự vẽ, bạn không còn bị giới hạn bởi mẫu có sẵn trên web — bạn vẽ đúng thứ mình cần, đúng cách mình thích.
Mục lục
- Vẽ biểu đồ giá bằng Python là gì? Vì sao cần biết?
- matplotlib — thư viện vẽ biểu đồ số 1 của Python
- Tải dữ liệu giá thật từ Binance
- Tính trung bình động SMA — nền tảng của phân tích xu hướng
- Vẽ đường giá đóng cửa + MA5/MA20
- Tự vẽ biểu đồ nến Nhật (candlestick) từ số 0
- Ghép hai khung biểu đồ — cấu trúc figure với subplots
- Script hoàn chỉnh Ngày 65
- Kết quả chạy thật — biểu đồ BTCUSDT
- Video hướng dẫn Ngày 65
- Tùy chỉnh nâng cao — màu sắc, lưới, chú thích
- Ứng dụng vào bot giao dịch và báo cáo
- Những lưu ý khi vẽ biểu đồ dữ liệu tài chính
- FAQ
- Kết luận
1. Vẽ biểu đồ giá bằng Python là gì? Vì sao cần biết?
Vẽ biểu đồ giá bằng Python là dùng thư viện lập trình (chủ yếu là matplotlib) để chuyển dữ liệu giá dạng số (ngày, giá mở, cao, thấp, đóng) thành hình ảnh trực quan như đường giá, biểu đồ nến, biểu đồ cột khối lượng.
Vì sao đây là kỹ năng quan trọng?
- Hiểu dữ liệu nhanh hơn: nhìn biểu đồ 1 giây hiểu được điều mà hàng trăm dòng số không thể hiện.
- Ra quyết định có căn cứ: xu hướng, vùng giá, tín hiệu MA hiện rõ bằng mắt.
- Trình bày chuyên nghiệp: báo cáo phân tích, báo cáo học viên, bài đăng mạng xã hội đều cần biểu đồ đẹp.
- Chủ động thay vì phụ thuộc: bạn vẽ đúng thứ mình cần, không bị giới hạn bởi công cụ web.
Trong hành trình Python 365 ngày tại Hướng Nghiệp Dữ Liệu, bạn đã học xử lý dữ liệu giá (Ngày 56–63), đo tâm lý thị trường (Ngày 64). Ngày 65 đánh dấu kỹ năng trực quan hóa — biến những con số khô khan thành hình ảnh sinh động, bước đệm hoàn hảo trước khi xây dựng dashboard và bot giao dịch hoàn chỉnh.
2. matplotlib — thư viện vẽ biểu đồ số 1 của Python
matplotlib là thư viện vẽ biểu đồ tiêu chuẩn của Python, được dùng trong khoa học dữ liệu, tài chính, học máy. Nó cho phép tạo hầu hết mọi loại biểu đồ: đường, cột, phân tán, nến, histogram…
Cách cài đặt:
pip install matplotlib
Các khái niệm cốt lõi cần nắm:
- Figure: “tờ giấy vẽ” — toàn bộ khung chứa biểu đồ.
- Axes: một khung vẽ cụ thể bên trong figure (có thể có nhiều axes = nhiều biểu đồ con).
- Line/Artist: các phần tử vẽ như đường, điểm, hình chữ nhật.
plt.subplots(): tạo figure kèm nhiều axes con — cực kỳ hữu ích khi muốn xếp chồng biểu đồ.
Trong bài này ta dùng chế độ Agg (vẽ ra file, không hiện cửa sổ) — phù hợp cho máy chủ, script tự động, và render hàng loạt:
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
Đây là thói quen tốt khi viết script chạy tự động: bạn không cần màn hình đồ họa, chỉ cần file ảnh đầu ra.
3. Tải dữ liệu giá thật từ Binance
Giống các bài trước, chúng ta lấy dữ liệu thật từ Binance public API — không cần API key. Endpoint klines trả về nến giá (open, high, low, close) theo khung thời gian tùy chọn:
def fetch_klines(symbol: str = "BTCUSDT", limit: int = 90) -> list:
url = (f"https://api.binance.com/api/v3/klines?"
f"symbol={symbol}&interval=1d&limit={limit}")
req = urllib.request.Request(url, headers=HEADERS)
with urllib.request.urlopen(req, timeout=20) as resp:
raw = json.loads(resp.read().decode("utf-8"))
out = []
for k in raw:
out.append({
"date": datetime.fromtimestamp(k[0] / 1000),
"open": float(k[1]), "high": float(k[2]),
"low": float(k[3]), "close": float(k[4]),
})
return out
Điểm đáng chú ý:
interval=1d— nến ngày (90 phiên gần nhất, ~3 tháng).datetime.fromtimestamp(k[0] / 1000)— Binance trả timestamp mili-giây, cần chia 1000 để chuyển sang giây rồi đổi thành datetime.- Dữ liệu được chuyển thành list dict có cấu trúc rõ ràng — dễ dùng cho vẽ biểu đồ và tính toán.
- Header
User-Agentgiúp request không bị chặn.
Chạy thử:
candles = fetch_klines()
print(f"Đã lấy {len(candles)} nến ngày BTCUSDT")
4. Tính trung bình động SMA — nền tảng của phân tích xu hướng
Trung bình động (SMA) là giá đóng cửa trung bình của window phiên gần nhất. Nó làm mượt biến động giá, giúp nhìn rõ xu hướng. MA5 phản ánh xu hướng ngắn hạn, MA20 phản ánh xu hướng trung hạn.
Hàm tính SMA hiệu quả dùng cửa sổ trượt (sliding window) — chỉ cần một vòng lặp:
def sma(values, window):
out = [None] * len(values)
total = 0.0
for i, v in enumerate(values):
total += v
if i >= window:
total -= values[i - window]
if i >= window - 1:
out[i] = total / window
return out
Cách hoạt động:
- Cộng dần
total, khi vượt qua cửa sổ thì trừ đi giá trị cũ nhất (values[i - window]). - Chỉ khi có đủ
windowphiên (i >= window - 1) mới tính được trung bình — các phiên đầu làNone. - Độ phức tạp O(n) — rất nhanh kể cả với hàng nghìn nến.
Ứng dụng:
closes = [c["close"] for c in candles]
ma5, ma20 = sma(closes, 5), sma(closes, 20)
Tín hiệu giao cắt vàng (golden cross): MA5 cắt lên trên MA20 → xu hướng tăng. Giao cắt tử thần (death cross): MA5 cắt xuống dưới MA20 → xu hướng giảm. Chính là nền tảng chiến lược bạn đã học ở Ngày 56.
5. Vẽ đường giá đóng cửa + MA5/MA20
Khung đầu tiên của biểu đồ là đường giá đóng cửa kèm hai đường trung bình động:
dates = [c["date"] for c in candles]
a1.plot(dates, closes, color="#569CD6", linewidth=1.3, label="Close")
a1.plot(dates, ma5, color="#F0A45B", linewidth=1.1, label="MA5")
a1.plot(dates, ma20, color="#C586C0", linewidth=1.1, label="MA20")
a1.set_title("Giá đóng cửa BTCUSDT (đường) + MA5/MA20", fontsize=12)
a1.legend()
a1.grid(alpha=0.3)
Giải thích:
a1.plot(x, y, ...)— vẽ đường nối các điểm.label— chú thích; hiển thị bằnglegend().grid(alpha=0.3)— lưới mờ giúp đọc giá dễ hơn.- Màu riêng cho từng đường — Close xanh dương, MA5 cam, MA20 tím — giúp phân biệt ngay.
Nhìn vào biểu đồ này bạn có thể nhận diện: giá đang trên hay dưới MA20, MA5 giao cắt MA20 ở đâu, xu hướng chung tăng hay giảm.
6. Tự vẽ biểu đồ nến Nhật (candlestick) từ số 0
Phần thú vị nhất: tự dựng nến Nhật bằng matplotlib mà không cần thư viện mplfinance. Mỗi nến gồm:
- Thân nến (body): hình chữ nhật giữa giá mở và đóng.
- Bóng nến (wick): đường thẳng từ thấp đến cao.
- Màu: xanh (giá đóng ≥ mở, tăng) / đỏ (giá đóng < mở, giảm).
def draw_candles(ax, candles, ma5, ma20):
from matplotlib.patches import Rectangle
up, down = "#26A69A", "#EF5350" # xanh tăng, đỏ giảm
for i, c in enumerate(candles):
color = up if c["close"] >= c["open"] else down
body_low = min(c["open"], c["close"])
body_high = max(c["open"], c["close"])
ax.plot([i, i], [c["low"], c["high"]], color=color, linewidth=1)
height = max(body_high - body_low, 1e-6)
ax.add_patch(Rectangle((i - 0.32, body_low), 0.64, height,
facecolor=color, edgecolor=color))
xs = list(range(len(candles)))
ax.plot(xs, ma5, color="#F0A45B", linewidth=1.2, label="MA5")
ax.plot(xs, ma20, color="#C586C0", linewidth=1.2, label="MA20")
ax.set_xlim(-1, len(candles))
ax.set_title(f"Candlestick {len(candles)} phiên — Binance BTCUSDT", fontsize=12)
ax.legend()
Phân tích:
Rectangle((x, y), w, h)— vẽ thân nến: góc trái dưới tại(i-0.32, body_low), rộng 0.64, cao = hiệu giá mở/đóng.ax.plot([i, i], [low, high])— bóng nến: đường thẳng đứng từ giá thấp đến cao tại cộti.height = max(..., 1e-6)— tránh lỗi khi giá mở = đóng (nến “doji”), chiều cao tối thiểu gần 0.- MA5/MA20 vẽ chồng lên nến bằng chỉ số cột (0, 1, 2…) — dễ căn khớp với nến.
- Đây là nến tự vẽ — bạn hiểu 100% cơ chế, không phải “hộp đen”.
7. Ghép hai khung biểu đồ — cấu trúc figure với subplots
Biểu đồ cuối cùng gồm hai khung chồng dọc: khung trên là đường giá + MA, khung dưới là nến Nhật. Dùng plt.subplots:
fig, (a1, a2) = plt.subplots(2, 1, figsize=(12, 9), sharex=True,
gridspec_kw={"height_ratios": [2, 1]})
subplots(2, 1)— 2 hàng, 1 cột →a1(trên),a2(dưới).sharex=True— hai khung dùng chung trục x (thời gian) → căn khớp hoàn hảo.height_ratios=[2, 1]— khung trên cao gấp đôi khung dưới (đường giá quan trọng hơn).
Cuối cùng lưu ảnh:
fig.suptitle("Python 365 · Ngày 65 — Trực quan hóa dữ liệu giá", fontsize=14, y=0.98)
fig.tight_layout(rect=(0, 0, 1, 0.95))
fig.savefig(OUT, dpi=130)
suptitle— tiêu đề chung cho toàn figure.tight_layout— tự động dàn trang tránh chồng chéo.dpi=130— độ phân giải cao, ảnh sắc nét khi chia sẻ.
8. Script hoàn chỉnh Ngày 65
Dưới đây là script đầy đủ — lưu thành Day 65_Ve bieu do gia matplotlib.py và chạy:
"""Day 65 - Vẽ biểu đồ giá bằng matplotlib"""
import json
import sys
import urllib.request
from datetime import datetime
from pathlib import Path
try:
sys.stdout.reconfigure(encoding="utf-8")
except Exception:
pass
BASE_DIR = Path(__file__).parent
OUT = BASE_DIR / "bieu_do_gia.png"
HEADERS = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) PythonDay65"}
def fetch_klines(symbol: str = "BTCUSDT", limit: int = 90) -> list:
url = (f"https://api.binance.com/api/v3/klines?"
f"symbol={symbol}&interval=1d&limit={limit}")
req = urllib.request.Request(url, headers=HEADERS)
with urllib.request.urlopen(req, timeout=20) as resp:
raw = json.loads(resp.read().decode("utf-8"))
out = []
for k in raw:
out.append({
"date": datetime.fromtimestamp(k[0] / 1000),
"open": float(k[1]), "high": float(k[2]),
"low": float(k[3]), "close": float(k[4]),
})
return out
def sma(values, window):
out = [None] * len(values)
total = 0.0
for i, v in enumerate(values):
total += v
if i >= window:
total -= values[i - window]
if i >= window - 1:
out[i] = total / window
return out
def draw_candles(ax, candles, ma5, ma20):
from matplotlib.patches import Rectangle
up, down = "#26A69A", "#EF5350"
for i, c in enumerate(candles):
color = up if c["close"] >= c["open"] else down
body_low = min(c["open"], c["close"])
body_high = max(c["open"], c["close"])
ax.plot([i, i], [c["low"], c["high"]], color=color, linewidth=1)
height = max(body_high - body_low, 1e-6)
ax.add_patch(Rectangle((i - 0.32, body_low), 0.64, height,
facecolor=color, edgecolor=color))
xs = list(range(len(candles)))
ax.plot(xs, ma5, color="#F0A45B", linewidth=1.2, label="MA5")
ax.plot(xs, ma20, color="#C586C0", linewidth=1.2, label="MA20")
ax.set_xlim(-1, len(candles))
ax.set_title(f"Candlestick {len(candles)} phiên — Binance BTCUSDT", fontsize=12)
ax.legend()
def main():
try:
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
except ImportError:
print("❌ Chưa cài matplotlib. Chạy: pip install matplotlib")
return
candles = fetch_klines()
closes = [c["close"] for c in candles]
ma5, ma20 = sma(closes, 5), sma(closes, 20)
print(f"📡 Đã lấy {len(candles)} nến ngày BTCUSDTn")
fig, (a1, a2) = plt.subplots(2, 1, figsize=(12, 9), sharex=True,
gridspec_kw={"height_ratios": [2, 1]})
dates = [c["date"] for c in candles]
a1.plot(dates, closes, color="#569CD6", linewidth=1.3, label="Close")
a1.plot(dates, ma5, color="#F0A45B", linewidth=1.1, label="MA5")
a1.plot(dates, ma20, color="#C586C0", linewidth=1.1, label="MA20")
a1.set_title("Giá đóng cửa BTCUSDT (đường) + MA5/MA20", fontsize=12)
a1.legend()
a1.grid(alpha=0.3)
draw_candles(a2, candles, ma5, ma20)
a2.grid(alpha=0.3)
fig.suptitle("Python 365 · Ngày 65 — Trực quan hóa dữ liệu giá", fontsize=14, y=0.98)
fig.tight_layout(rect=(0, 0, 1, 0.95))
fig.savefig(OUT, dpi=130)
print(f"✅ Đã lưu biểu đồ: {OUT}")
if __name__ == "__main__":
main()
Cách chạy:
pip install matplotlib
python "Day 65_Ve bieu do gia matplotlib.py"
Chỉ cần một thư viện (matplotlib), mọi thứ khác dùng chuẩn Python — kể cả nến Nhật vẽ tay.
9. Kết quả chạy thật — biểu đồ BTCUSDT
Khi chạy script, kết quả như sau:
📡 Đã lấy 90 nến ngày BTCUSDT
✅ Đã lưu biểu đồ: bieu_do_gia.png
File bieu_do_gia.png chứa hai khung:
- Khung trên (đường giá): đường Close màu xanh dương + MA5 màu cam + MA20 màu tím, kèm chú thích và lưới. Nhìn rõ xu hướng giá và các lần giao cắt MA.
- Khung dưới (nến Nhật): 90 nến ngày, xanh = tăng, đỏ = giảm, MA5/MA20 vẽ chồng lên — chuẩn phong cách biểu đồ nhà giao dịch chuyên nghiệp.
Điểm ấn tượng: toàn bộ nến được vẽ thủ công bằng Rectangle và plot — bạn hiểu từng pixel trên biểu đồ. Đây là nền tảng vững chắc để tùy biến theo ý mình.
10. Video hướng dẫn Ngày 65
Xem video Shorts hướng dẫn đầy đủ Ngày 65 (có code, kết quả thật, phụ đề tiếng Việt):
▶️ Xem video: https://www.youtube.com/watch?v=agHDgD_cZ5s
Trong video bạn sẽ thấy: từng bước import matplotlib, tải dữ liệu Binance, vẽ đường giá + MA, dựng nến Nhật và tùy chỉnh màu/lưới — toàn bộ quy trình trong chưa đầy một phút.
11. Tùy chỉnh nâng cao — màu sắc, lưới, chú thích
Biểu đồ đã đẹp, nhưng bạn có thể nâng cấp thêm:
- Đổi bảng màu: thử
plt.style.use("dark_background")hoặc"seaborn-v0_8"để có nền tối/thanh lịch. - Khối lượng giao dịch: thêm khung thứ ba vẽ cột volume (xanh/đỏ theo phiên tăng/giảm) — bộ ba chuẩn của biểu đồ trading.
- Đánh dấu điểm giao cắt: dùng
ax.scattervẽ chấm tại nơi MA5 cắt MA20. - Chú thích vùng giá:
ax.axhlinevẽ đường ngang tại mức hỗ trợ/kháng cự. - Chia sẻ tự động: lưu thêm bản
pngvàsvg, tự động gửi qua email (đã học Ngày 59). - Khung thời gian khác: đổi
interval=1hhoặcinterval=15mcho phân tích nội ngày.
plt.style.use("dark_background")
for i in range(1, len(closes)):
if ma5[i] is not None and ma20[i] is not None:
if (ma5[i-1] <= ma20[i-1] and ma5[i] > ma20[i]) or
(ma5[i-1] >= ma20[i-1] and ma5[i] < ma20[i]):
a1.scatter(dates[i], closes[i], color="#FFD54F", zorder=5)
12. Ứng dụng vào bot giao dịch và báo cáo
Vẽ biểu đồ không dừng ở “đẹp” — nó phục vụ công việc thực tế:
- Báo cáo kết quả bot: sau mỗi phiên, bot tự vẽ biểu đồ giá + vị thế mua/bán + PnL (như các bài Ngày 56–63 đã làm).
- Dashboard VPS: biểu đồ cập nhật tự động trên web dashboard cho khách hàng (chủ đề khóa MT5 nâng cao).
- Kiểm chứng chiến lược: nhìn trực quan lệnh BUY/SELL trên biểu đồ giúp phát hiện lỗi logic mà số liệu không lộ.
- Nội dung marketing: biểu đồ đẹp là “hình ảnh bán hàng” cho bài viết, fanpage, YouTube.
- Học máy: trực quan hóa dữ liệu trước khi huấn luyện mô hình — bước quan trọng của phân tích dữ liệu chuyên nghiệp.
Trong khóa Bot Auto Trading tại HNDL, kỹ năng vẽ biểu đồ này được dùng xuyên suốt: từ báo cáo backtest, dashboard thời gian thực đến tối ưu tham số.
13. Những lưu ý khi vẽ biểu đồ dữ liệu tài chính
- Không dùng biểu đồ như lời khuyên đầu tư: biểu đồ minh họa dữ liệu quá khứ, không dự đoán tương lai.
- Chọn khung thời gian phù hợp: nến ngày cho xu hướng dài, nến giờ/phút cho giao dịch ngắn.
- Cẩn thận với trục x: đảm bảo thời gian đúng thứ tự, không bị khoảng trống cuối tuần (crypto giao dịch 24/7, chứng khoán không).
- Dữ liệu có thể thay đổi: Binance API đôi khi chỉnh sửa nến gần nhất — luôn tải lại khi cần độ chính xác cao.
- Hiệu suất: với hàng nghìn nến, vòng lặp vẽ từng
Rectanglechậm — có thể dùngmplfinancehoặc vẽ bằng array cho dữ liệu lớn. - Thiếu dữ liệu: nếu
limitquá lớn, API có thể trả ít hơn — kiểm tra số lượng trước khi vẽ. - Màu sắc nhất quán: dùng chung bảng màu (tăng xanh / giảm đỏ) cho mọi biểu đồ để tránh nhầm lẫn.
14. FAQ
Vẽ biểu đồ giá bằng Python cần cài gì? Chỉ cần pip install matplotlib. Dữ liệu lấy từ Binance public API, nến tự vẽ không cần thư viện phụ trợ.
Candlestick là gì? Là biểu đồ nến Nhật: mỗi nến biểu thị giá mở, cao, thấp, đóng của một phiên. Thân nến = khoảng mở-đóng, bóng nến = khoảng cao-thấp.
Tại sao không dùng mplfinance cho nến? mplfinance tiện nhưng “đóng hộp”. Tự vẽ bằng matplotlib giúp bạn hiểu cơ chế và tùy biến hoàn toàn — kỹ năng tốt hơn cho người học.
Làm sao đổi symbol khác? Đổi symbol trong fetch_klines(), ví dụ ETHUSDT, BNBUSDT, SOLUSDT.
Làm sao đổi khung thời gian? Đổi interval=1d thành 1h, 4h, 15m, 1w tùy nhu cầu.
Biểu đồ có hiện cửa sổ không? Không — dùng chế độ Agg, chỉ lưu ra file bieu_do_gia.png. Phù hợp script chạy tự động.
Có vẽ thêm khối lượng không? Có thể. Thêm khung thứ ba với ax.bar và đổi màu theo phiên tăng/giảm.
Vẽ biểu đồ có dùng được cho chứng khoán VN không? Được. Chỉ cần thay nguồn dữ liệu (SSI, VNDirect…) — kỹ thuật vẽ giống hệt.
File ảnh lưu ở đâu? Tại bieu_do_gia.png trong thư mục chạy script, độ phân giải 130 dpi.
Python 365 ngày là gì? Chuỗi bài học Python mỗi ngày của Hướng Nghiệp Dữ Liệu, từ cơ bản đến bot giao dịch thực chiến.
15. Kết luận
Trong Ngày 65 của loạt bài Python 365, bạn đã học vẽ biểu đồ giá bằng Python: tải dữ liệu BTCUSDT thật từ Binance, tính trung bình động MA5/MA20, vẽ đường giá, và tự tay dựng biểu đồ nến Nhật bằng matplotlib — tất cả chỉ với một thư viện duy nhất.
Những kỹ năng bạn vừa rèn:
- Gọi API lấy dữ liệu thị trường và chuyển đổi kiểu dữ liệu.
- Triển khai thuật toán trung bình động hiệu quả (O(n)).
- Vẽ nhiều loại biểu đồ: đường, MA, nến Nhật.
- Ghép nhiều khung biểu đồ với
subplots. - Tùy chỉnh màu sắc, lưới, chú thích, tiêu đề.
- Lưu ảnh chất lượng cao tự động.
Trực quan hóa là cầu nối giữa dữ liệu và quyết định. Từ bài học này, bạn có thể xây dashboard, báo cáo bot, biểu đồ khối lượng — và cuối cùng là hệ thống giao dịch hoàn chỉnh với đầy đủ biểu đồ minh họa.
Hành trình Python 365 ngày tại Hướng Nghiệp Dữ Liệu tiếp tục đồng hành cùng bạn: sau trực quan hóa sẽ là quản lý rủi ro, bot arbitrage, tự động hóa và các chủ đề nâng cao. Mỗi ngày một viên gạch — hôm nay bạn đã xây thêm một viên về trực quan hóa dữ liệu tài chính, kỹ năng khiến báo cáo của bạn nổi bật giữa đám đông.
Đọc thêm:
- Python 365 Ngày 64 — Đo tâm lý thị trường bằng Python (Sentiment Analysis)
- Khóa học Bot Auto Trading: https://www.huongnghiepdulieu.com/bot-auto-trading/
- Khóa học Lập trình Python cơ bản: https://www.huongnghiepdulieu.com/lap-trinh-python-co-ban/
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.