Bài viết gần đây
-
Bot Telegram báo giá crypto — Python, Binance, cảnh báo ngưỡng
Tháng 8 9, 2026 -
Gọi API Claude và OpenAI bằng Python — AI vào app của bạn
Tháng 8 9, 2026
| Bot Telegram báo giá crypto — Python, Binance, cảnh báo ngưỡng
Được viết bởi Đặng Trí Thanh vào ngày 09/08/2026 lúc 13:40 | 4 lượt xem
Xem video Ngày 51 (Short)
Link trực tiếp: https://www.youtube.com/shorts/ylZyzdK07AA · Watch
Mục lục
- Vì sao trader cần bot Telegram?
- Telegram Bot API và @BotFather
- CHAT_ID — bot gửi tin cho ai?
- sendMessage — gửi tin thử
- Lấy giá crypto: Binance public API
- Fallback CoinGecko
- Cảnh báo theo ngưỡng THRESHOLD
- Vòng lặp INTERVAL và cờ alerted
- Script Ngày 51 từng bước
- Bảo mật token và .env
- FAQ
- Kết luận
1. Vì sao trader cần bot Telegram?
Khi bạn học Python cho trading hoặc bot paper, bạn không thể ngồi nhìn chart cả ngày. Telegram là kênh phổ biến ở Việt Nam: push notification nhanh, miễn phí, API ổn định. Ngày 51 trong chuỗi Python 365 ngày kết nối trực tiếp với Ngày 50 (gọi API lấy giá) và các ngày trước (bot paper, metric): dữ liệu giá → điều kiện → thông báo lên điện thoại.
Bot trong bài không đặt lệnh mua/bán — chỉ cảnh báo giáo dục khi BTC (hoặc cặp bạn chọn) vượt ngưỡng. Luôn kèm disclaimer: không cam kết lợi nhuận, tuân thủ điều khoản Telegram và sàn.
2. Telegram Bot API và @BotFather
@BotFather là bot chính thức của Telegram để tạo bot mới. Quy trình:
- Mở Telegram, tìm @BotFather.
- Gửi
/newbot, đặt tên hiển thị và username (phải kết thúcbot). - Nhận BOT_TOKEN dạng
123456789:AAH....
Token là mật khẩu của bot. Mọi request tới https://api.telegram.org/bot<TOKEN>/... phải giữ bí mật. Script Ngày 51 đọc token từ file .env hoặc biến môi trường — không hard-code trong repo public.
Endpoint gửi tin: sendMessage với JSON body chat_id và text. Python dùng thư viện chuẩn urllib.request — không cần pip install, phù hợp học viên mới.
3. CHAT_ID — bot gửi tin cho ai?
Bot cần biết chat_id — số định danh cuộc trò chuyện (user hoặc group). Cách đơn giản:
- Bạn bấm Start với bot vừa tạo.
- Gọi API
getUpdateshoặc dùng bot phụ trợ — lấymessage.chat.id. - Ghi vào
.envdòngCHAT_ID=....
Nếu gửi vào group, thêm bot vào group và lấy id group (thường số âm). Ngày 51 mặc định chat cá nhân — dễ demo Shorts.
4. sendMessage — gửi tin thử
Hàm send_telegram(text) trong script:
def send_telegram(text: str) -> bool:
url = f"https://api.telegram.org/bot{BOT_TOKEN}/sendMessage"
body = json.dumps({"chat_id": int(CHAT_ID), "text": text}).encode("utf-8")
req = urllib.request.Request(
url, data=body,
headers={"Content-Type": "application/json", **HEADERS})
with urllib.request.urlopen(req, timeout=15) as resp:
data = json.loads(resp.read().decode("utf-8"))
return data.get("ok", False)
Chạy:
python "Day 51_Bot Telegram bao gia crypto.py" --test
Nếu nhận tin Bot hoạt động! trên điện thoại — pipeline Telegram đã OK trước khi gắn giá.
5. Lấy giá crypto: Binance public API
Binance cung cấp endpoint public (không cần key cho ticker đơn giản):
https://api.binance.com/api/v3/ticker/price?symbol=BTCUSDT
Hàm fetch_price_binance parse JSON field price thành float. Symbol mặc định BTCUSDT — đổi thành ETHUSDT nếu bạn theo dõi ETH.
User-Agent header giúp tránh một số proxy chặn request “trống”. Timeout 10 giây tránh treo script.
Giá lấy được phục vụ minh họa và cảnh báo demo — không khuyến nghị giao dịch dựa trên một nguồn duy nhất.
6. Fallback CoinGecko
Khi Binance lỗi mạng hoặc HTTP, script in Binance lỗi — dùng CoinGecko và gọi:
https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd
Đây là pattern resilience quan trọng: bot thông báo không “chết im” vì một API sập. Production cần log lỗi và giới hạn retry — bài học dùng try/except đơn giản.
CoinGecko tier miễn phí có rate limit — không poll quá dày (xem mục INTERVAL).
7. Cảnh báo theo ngưỡng THRESHOLD
Biến THRESHOLD = 60000 (USD) — bạn đổi theo mục đích demo. Logic:
- Mỗi vòng lấy
price = get_price(). - Nếu
price > THRESHOLDvà chưa alert trong chu kỳ → gửi Telegram. - Dùng cờ
alertedđể không spam cùng một đợt vượt ngưỡng.
Khi giá hồi xuống dưới ngưỡng, reset alerted = False để lần vượt sau vẫn báo. Đây là hysteresis cơ bản — tránh gửi 100 tin trong 1 phút khi giá dao động quanh ngưỡng.
8. Vòng lặp INTERVAL và cờ alerted
INTERVAL = 60 giây giữa các lần kiểm tra. Vòng while True:
- Lấy giá, in log terminal (giúp debug khi quay video).
- So ngưỡng, gửi tin nếu cần.
time.sleep(INTERVAL).
Dừng bằng Ctrl+C — in “Đã dừng bot”. Trên server thật bạn dùng systemd, Docker hoặc Windows Task — ngoài phạm vi ngày 51 nhưng nên biết hướng mở rộng.
9. Script Ngày 51 từng bước
File: Day 51_Bot Telegram bao gia crypto.py
| Bước | Việc cần làm |
|---|---|
| 1 | Copy .env.example → .env, điền BOT_TOKEN, CHAT_ID |
| 2 | --test gửi tin |
| 3 | Chạy full bot, quan sát log giá |
| 4 | Hạ THRESHOLD tạm để thấy alert (demo) |
Chuỗi Python 365: Ngày 48 bot paper → 49 metric → 50 API → 51 notify Telegram — một pipeline quant mini hoàn chỉnh về mặt “cảm biến + báo động”.
10. Bảo mật token và .env
- Không commit
.envlên Git. - Không quay token trên video — blur hoặc dùng token test đã revoke sau buổi quay.
- Revoke token tại BotFather nếu lộ.
- CHAT_ID lộ ít nguy hiểm hơn token nhưng vẫn nên giữ riêng.
Hub Python cơ bản HNDL: https://www.huongnghiepdulieu.com/lap-trinh-python-co-ban/
Hub PyNhiQuaiBot / hedging: https://www.huongnghiepdulieu.com/lap-trinh-python-nang-cao-hedging-tu-dong-hoa/
11. FAQ
Q1: Bot có cần server 24/7 không?
A: Để cảnh báo liên tục, process phải chạy liên tục — VPS hoặc máy nhà. Demo học có thể chạy vài phút.
Q2: Có vi phạm Binance/Telegram không?
A: Dùng API public đúng docs và Bot API chuẩn — OK cho cá nhân. Đọc điều khoản; không spam user.
Q3: Thay BTC bằng coin khác?
A: Đổi SYMBOL Binance hoặc id CoinGecko tương ứng.
Q4: Sao không dùng python-telegram-bot?
A: Ngày 51 cố ý dùng urllib — ai mới học cũng chạy được. Sau này refactor thư viện nếu muốn.
Q5: Giá API khác app sàn?
A: Bình thường — độ trễ và nguồn khác nhau.
Q6: Học tiếp ở đâu?
A: Playlist Python 365: https://www.youtube.com/playlist?list=PLlvatcRiI_TLt4teIBQgtXBlGLAerk9Ce
12. Kết luận
Ngày 51 bạn đã có:
- Bot Telegram với token và chat_id.
- Gửi tin qua sendMessage.
- Giá Binance + fallback CoinGecko.
- Cảnh báo ngưỡng và vòng lặp an toàn cơ bản.
Đây là bước đệm tới bot gửi tín hiệu chi tiết hơn (entry/SL/TP) trong các ngày sau — luôn trong khuôn khổ giáo dục, không cam kết lời nhuận.
📌 #Python365 — hẹn ngày 52!
Cầu nối khóa PyNhiQuaiBot · QuantTrade
Cùng hướng Python + dữ liệu + tự động hóa, khóa PyNhiQuaiBot trên HNDL đi sâu hedging và kiến trúc bot production. QuantTrade là cách giới thiệu audience quant — cùng một lộ trình nâng cao.
Xem thêm trên chuỗi Python 365
Playlist: https://www.youtube.com/playlist?list=PLlvatcRiI_TLt4teIBQgtXBlGLAerk9Ce
Hashtag: #Python365 · #HướngNghiệpDữLiệu · #Telegram · #Crypto · #DataPass
13. Kiến trúc tối giản: ba lớp
Lớp config (đọc .env), lớp data (get_price), lớp notify (send_telegram) tách biệt giúp bạn thay Binance bằng sàn khác mà không sửa Telegram. Đây là tiền đề clean architecture cho bot lớn hơn trong khóa PyNhiQuaiBot — nơi bạn sẽ gặp risk engine, position sizing, và multi-account.
Mỗi lớp nên có một file Python riêng khi dự án vượt 150 dòng. Ngày 51 gom trong một file để học viên copy-paste nhanh; refactor là bài tập nâng cao.
14. Luồng dữ liệu từ API tới điện thoại
Hình dung pipeline: HTTP GET Binance → parse float → so sánh với THRESHOLD → quyết định boolean → HTTP POST Telegram. Không có database, không queue — đủ cho MVP. Khi scale, bạn thêm Redis queue để tách worker lấy giá và worker gửi tin, tránh block lẫn nhau.
Độ trễ end-to-end = latency Binance + xử lý Python + latency Telegram. Với BTC spot, thường vài trăm ms đến vài giây — đủ cho cảnh báo swing, không phải HFT.
15. Telegram so với email và SMS
Email SMTP (như CRM EduCRM gửi nhắc việc) phù hợp báo cáo dài; Telegram phù hợp ping ngắn “giá chạm ngưỡng”. SMS tốn phí. Bot Python + Telegram là combo miễn phí cho cá nhân học quant. Doanh nghiệp cần xem compliance và opt-in user.
16. Mở rộng: nhiều symbol và nhiều ngưỡng
Thay vì một SYMBOL, dùng dict THRESHOLDS = {"BTCUSDT": 60000, "ETHUSDT": 3000} và loop. Mỗi symbol một cờ alerted trong dict — pattern rõ ràng, dễ đọc. Tránh copy-paste code cho từng coin.
17. Mở rộng: lệnh /price từ user
Bước sau Ngày 51: dùng getUpdates long polling, nếu user gửi /price thì trả giá hiện tại. Cần xử lý offset update_id để không đọc trùng. Thư viện python-telegram-bot hỗ trợ tốt — nhưng hiểu urllib trước giúp bạn không “black box”.
18. Logging cho production
Thay print bằng module logging với level INFO/WARNING, ghi file bot.log xoay vòng theo ngày. Khi alert fail, log stack trace — đỡ mù lỗi 3h sáng. Pattern này giống collector Dashboard MT5/IB trên CRM: log rõ, retry có kiểm soát.
19. Liên kết chuỗi DataPass Python 365
| Ngày | Chủ đề | Vai trò trong pipeline |
|---|---|---|
| 48 | Bot paper | Quyết định logic |
| 49 | Metric | Đánh giá hiệu suất |
| 50 | API | Nguồn dữ liệu |
| 51 | Telegram | Kênh thông báo |
Bạn đang xây vòng phản hồi từ thị trường tới con người — nền tảng mọi hệ thống trading có người giám sát.
20. Checklist trước khi demo live
- [ ] Token test, không phải bot production fanpage
- [ ] THRESHOLD hợp lý, tránh alert liên tục khi quay clip
- [ ]
.envkhông lộ trên màn hình - [ ] Disclaimer miệng + mô tả YouTube
- [ ] Link playlist Python 365 trong description Short
21. Tóm tắt code mẫu (tham khảo)
Cấu trúc file Ngày 51 gồm: load_env(), fetch_price_binance, fetch_price_coingecko, get_price, send_telegram, main() với nhánh --test. Toàn bộ dùng thư viện chuẩn — phù hợp máy học viên Windows cài Python 3.11+.
Copy từ folder Ngay 51_2026.08.12 trên Drive DataPass; chạy make_code_image.py nếu cần regenerate slide code cho video tiếp theo.
22. Cộng đồng và hỗ trợ
Comment dưới Short hoặc fanpage HNDL nếu bạn muốn ngày tiếp theo cover Webhook TradingView → Telegram hoặc Binance futures. Đội ngũ giáo dục DataPass ưu tiên câu hỏi có log lỗi cụ thể (HTTP code, dòng traceback).
23. Tài liệu tham khảo chính thức
- Telegram Bot API: core.telegram.org/bots/api
- Binance API docs: public ticker price endpoint
- CoinGecko API: simple price
- Chuỗi Python 365 playlist YouTube HNDL
Đọc docs gốc — thói quen senior dev — thay vì chỉ copy snippet không nguồn.
24. Lời kết cho người mới
Nếu bạn làm xong Ngày 51, bạn đã chứng minh được: lấy dữ liệu online + hành động tự động + thông báo realtime. Đó là 80% cảm giác “bot sống” mà người mới khao khát. Phần còn lại là kỷ luật risk và kiểm thử — các ngày sau và khóa PyNhiQuaiBot.
Xem lại video embed ở đầu bài nếu bạn cần sync hình slide với từng bước code. Short #Python365 Ngày 51 tóm tắt visual; bài web này là tài liệu tra cứu lâu dài trên huongnghiepdulieu.com.
25. Phụ lục A — Từ điển thuật ngữ nhanh
BOT_TOKEN: Chuỗi bí mật cấp bởi BotFather, xác thực mọi request HTTP tới Telegram. CHAT_ID: Số định danh hội thoại đích. sendMessage: Phương thức POST gửi text. Ticker price: Giá last/public từ sàn, không phải order book depth. THRESHOLD: Ngưỡng so sánh boolean. INTERVAL: Chu kỳ sleep giữa các lần poll. alerted: Cờ tránh spam. Fallback: Nguồn dự phòng khi primary API fail. urllib: Thư viện HTTP chuẩn Python. Public API: Endpoint không bắt buộc API key (vẫn có rate limit). Rate limit: Giới hạn số request theo thời gian — vi phạm có thể bị 429 hoặc ban tạm. Paper trading: Giao dịch giả lập, không dùng tiền thật. Disclaimer: Tuyên bố không cam kết lợi nhuận — bắt buộc trong giáo dục tài chính.
26. Phụ lục B — Các lỗi thường gặp khi học viên chạy bot
401 Unauthorized Telegram: Token sai hoặc thừa khoảng trắng khi copy .env. 400 Bad Request chat not found: CHAT_ID sai hoặc chưa Start bot. 403 Forbidden: Bot bị user block. Binance connection reset: Mạng hoặc DNS — thử lại, hoặc dùng fallback CoinGecko. Giá luôn 0: Parse JSON sai key. Alert không dừng: Quên reset alerted khi giá hồi — xem lại logic mục 7. Script treo: Thiếu timeout urlopen — Ngày 51 đã set 10–15s. Module not found: Học viên gõ nhầm Python 2 — cần Python 3.11+. UnicodeEncodeError Windows: Thêm UTF-8 stdout hoặc chạy trong terminal hỗ trợ Unicode.
Mỗi lỗi nên được ghi vào FAQ lớp học — giảm support lặp lại cho giảng viên DataPass.
27. Phụ lục C — Gợi ý nội dung marketing (fanpage / Shorts)
Hook video: Nhận cảnh báo giá ngay trên điện thoại! CTA: comment coin muốn theo dõi. Link bio: playlist Python 365 + bài web ngày 51. Không dùng ngôn ngữ “lãi chắc” — giữ tone giáo dục HNDL. Repost Short lên fanpage quant QuantTrade như teaser PyNhiQuaiBot. Đồng bộ thumbnail xanh #569CD6 (VS Code) với slide code trong video.
28. Phụ lục D — Câu hỏi mở rộng (FAQ 7–12)
Q7: Bot có lưu lịch sử giá không?
A: Ngày 51 không — bài tập ghi CSV là mở rộng. Production nên có storage.
Q8: Có thể gửi ảnh chart không?
A: sendPhoto API — cần file hoặc URL; bài sau có thể ghép matplotlib.
Q9: Group Telegram nhiều người?
A: Cần chat_id group và quyền bot; tránh leak token trong group public.
Q10: Binance testnet?
A: Endpoint khác — dùng khi học order; Ngày 51 chỉ spot public ticker.
Q11: Chạy trên Mac/Linux?
A: Script cross-platform; đường dẫn .env giữ nguyên.
Q12: Liên quan CRM EduCRM?
A: Cùng tinh thần tự động hóa thông báo — CRM gửi email task, bot gửi Telegram giá — kênh khác nhau.
29. Phụ lục E — Lịch sử phiên bản bài học
- 2026-08-12: Phát hành Ngày 51 — script urllib, Binance, CoinGecko, Telegram alert.
- Video Short quay từ slide
make_code_image.py+ TTS tiếng Việt. - Bài web embed YouTube ID public sau upload.
30. Lời cảm ơn và đọc tiếp
Cảm ơn bạn đã đọc tới cuối bài dài Python 365 ngày 51. Nếu nội dung hữu ích, hãy like Short, subscribe kênh Hướng Nghiệp Dữ Liệu, và bookmark playlist để không bỏ lỡ ngày 52. Mọi thắc mắc kỹ thuật khi chạy script — kèm ảnh màn hình lỗi — gửi qua fanpage hoặc nhóm lớp DataPass.
Chúc bạn build bot an toàn, học Python bền vững, và luôn giao dịch có trách nhiệm.
31. Hành trình một buổi học Ngày 51 (90 phút gợi ý)
Phút 0–10: Giới thiệu hook Short — “cảnh báo giá trên điện thoại”. Xem lại embed video, thống nhất mục tiêu không live trade. Phút 10–25: Hướng dẫn BotFather live, học viên tạo bot riêng. Phút 25–40: Lấy CHAT_ID, chạy --test, celebrate khi tin tới máy. Phút 40–55: Giải thích get_price Binance + fallback, in log terminal. Phút 55–70: Chỉnh THRESHOLD demo, quan sát alert một lần. Phút 70–85: Q&A lỗi thường gặp (token, chat_id, mạng). Phút 85–90: Giao bài tập CSV + đọc FAQ trên bài web. Giảng viên ghi link python365-ngay-51 và playlist vào slide kết.
Buổi học có thể quay lại thành Short thứ hai (FAQ errors) — content recycling HNDL vẫn giữ giá trị giáo dục nếu không trùng hook.
Ghi chú thực hành (1)
Tạo bot test riêng trên @BotFather — không dùng token production cho clip demo.
Ghi chú thực hành (2)
Lưu CHAT_ID trong .env; thêm .env vào .gitignore trước khi push GitHub.
Ghi chú thực hành (3)
Chạy --test sau mỗi lần đổi token để xác nhận sendMessage OK.
Ghi chú thực hành (4)
Thử ngưỡng THRESHOLD thấp (ví dụ 1 USD) trên testnet logic — chỉ để thấy alert, không giao dịch.
Ghi chú thực hành (5)
Log giá ra CSV logs/btc_{date}.csv mỗi vòng lặp — chuẩn bị cho backtest sau.
Ghi chú thực hành (6)
Khi Binance 451/403, script đã fallback CoinGecko — ghi nhận latency khác nhau.
Ghi chú thực hành (7)
Đặt INTERVAL ≥ 30s khi demo live để tránh rate limit API miễn phí.
Ghi chú thực hành (8)
Thêm emoji trong tin Telegram giúp đọc nhanh trên mobile — giữ message < 4096 ký tự.
Ghi chú thực hành (9)
Parse getUpdates một lần để lấy CHAT_ID thay vì hard-code nếu dạy lớp đông.
Ghi chú thực hành (10)
So sánh giá Binance spot vs CoinGecko — bài tập hiểu spread nguồn.
Ghi chú thực hành (11)
Viết hàm format_price(p: float) -> str dùng locale Việt Nam.
Ghi chú thực hành (12)
Bọc send_telegram retry 3 lần khi HTTP 429 từ api.telegram.org.
Ghi chú thực hành (13)
Tách module price.py và telegram_notify.py — cấu trúc mini-bot sạch.
Ghi chú thực hành (14)
Thêm lệnh /price qua webhook sau này; Ngày 51 dùng push một chiều.
Ghi chú thực hành (15)
Document trong README: cách revoke token BotFather nếu lỡ commit.
Ghi chú thực hành (16)
Chạy bot trong screen hoặc Task Scheduler Windows cho demo 24h.
Ghi chú thực hành (17)
Kết hợp alert với bot paper Ngày 48–50: API → metric → notify.
Ghi chú thực hành (18)
Không gửi tín hiệu mua/bán tự động — chỉ giáo dục, disclaimer rõ.
Ghi chú thực hành (19)
Quay clip màn hình Telegram khi alert — social proof cho Shorts.
Ghi chú thực hành (20)
Subscribe playlist Python 365 để không miss ngày 52.
Ghi chú thực hành (21)
Đọc Telegram Bot API docs phần rate limits — tránh flood khi scale lớp học.
Ghi chú thực hành (22)
Thử gửi tin có Markdown (parse_mode) — lưu ý escape ký tự đặc biệt trong giá.
Ghi chú thực hành (23)
Tạo channel riêng ‘Alert demo’ thay vì DM cá nhân khi demo cho nhiều người xem.
Ghi chú thực hành (24)
Ghi timestamp UTC trong message để so sánh với nến sàn sau này.
Ghi chú thực hành (25)
Unit test hàm get_price bằng mock urlopen — không gọi API thật mỗi lần pytest.
Ghi chú thực hành (26)
Dockerfile một dòng CMD python bot.py — bước đầu deploy VPS giá rẻ.
Ghi chú thực hành (27)
Healthcheck: gửi ping Telegram mỗi 6h ‘bot still alive’ — ops cơ bản.
Ghi chú thực hành (28)
Map SYMBOL sang tên hiển thị tiếng Việt trong message cho dễ đọc.
Ghi chú thực hành (29)
Thêm nút inline keyboard sau này — Ngày 51 chỉ text thuần.
Ghi chú thực hành (30)
So sánh độ trễ Telegram vs email SMTP cho alert — bài tập chọn kênh.
Ghi chú thực hành (31)
Lưu version script trong footer message (v51.0.1) khi debug học viên.
Ghi chú thực hành (32)
Viết checklist bảo mật 5 dòng dán README — thói quen professional.
Ghi chú thực hành (33)
Quay Short vertical 9:16 sync với slide code — đồng bộ PR HNDL.
Ghi chú thực hành (34)
Embed Short vào bài web như block iframe — SEO + giữ người đọc lâu hơn.
Ghi chú thực hành (35)
Cross-link bài Ngày 50 API và Ngày 51 notify trong hub Python.
Ghi chú thực hành (36)
Fanpage post: hook ‘Nhận cảnh báo giá trên điện thoại’ + link Short.
Ghi chú thực hành (37)
Linear task đóng khi playlist + web + Short đều có URL public.
Ghi chú thực hành (38)
Review quota YouTube API trước batch upload — tránh kẹt thumbnail.
Ghi chú thực hành (39)
Thêm video vào playlist thủ công Studio nếu API quotaExceeded.
Python 365 ngày · Ngày 51 — Xem Short trên YouTube · Playlist Python 365 Ngày
Python cơ bản HNDL · PyNhiQuaiBot · Python Hedging
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.