TradingSignals.

TradingSignals là công cụ phân tích tín hiệu mua/bán cá nhân cho crypto và chứng khoán — không phải bot copy trade đại trà, mà là hệ thống được xây riêng để phục vụ đúng một người, với dữ liệu kiểm chứng thực tế 2–5 năm trở lại. NestJS scan đồng thời trên nhiều khung thời gian từ 15 phút đến 1 tháng, chạy song song qua 4 engine độc lập: <em>candlestick pattern, indicator, price action</em> và <em>volume analysis</em>. Tín hiệu chỉ được ghi nhận khi nhiều khung đồng thuận — loại bỏ nhiễu, chỉ giữ lại những điểm vào lệnh thực sự đáng chú ý. Sau 10 ngày, hệ thống tự nhìn lại từng tín hiệu — đúng hay sai — tích lũy dần độ chính xác theo thời gian sử dụng. Kết quả được đẩy thẳng về Telegram cá nhân ngay khi có tín hiệu, pattern hiển thị realtime trên TradingView tích hợp trong Next.js.

Year2022
RoleSolo · backend pipeline + frontend chart
Timeline24 tuần
Status● Live · production (self-hosted)

01.Overview

Tổng quan

Hầu hết tool tín hiệu đều có cùng một điểm chết: phát signal liên tục, mỗi khung một kiểu, và không ai chịu trách nhiệm khi sai. Một bar 15m bullish hôm nay có thể là noise bị quên ngay hôm sau — nhưng vẫn được hô lên để "lùa gà". TradingSignals được xây theo chiều ngược lại: ít signal hơn, nhưng signal nào phát ra cũng phải được kiểm tra ngược lại.

Trading-signals là một pipeline NestJS scan crypto và chứng khoán Việt qua 6 khung thời gian (15m → 1month) với 4 engine (candlestick · indicator · price action · volume); chỉ lưu DB khi nhiều khung đồng thuận liên tiếp nhiều ngày, và sau khi phát ra thì tự theo dõi 10 ngày để chốt SUCCESS / FAIL. Front-end Next.js + TradingView Charting Library hiển thị signal cùng các shape pattern (neckline, support/resistance, divergence) vẽ thẳng lên chart, realtime qua WebSocket. Dự án này đang chạy nội bộ phục vụ ~30 mã crypto + ~50 mã VN.

02.Features

Tính năng
  • 01
    Quét đa khung · 4 engine15m · 1h · 4h · 1d · 1w · 1month

    Mỗi mã được phân tích qua 6 timeframe; mỗi timeframe đi qua 4 engine: CandlestickPatternService (doji, hammer, engulfing, star, three soldiers/crows), TechnicalIndicatorService (RSI · MACD · Bollinger), PriceActionService (support / resistance · neckline) và VolumeAnalysisService (spike, dry-up). Mỗi engine trả về action + confidence + score — làm đầu vào cho bước tổng hợp đa khung phía sau.

  • 02
    Consensus nhiều khung · nhiều ngày15m+1h · 1h+4h (3d) · 4h+1d (5d)

    Daily state của mỗi khung được lưu vào Redis DB9 theo key crypto:stage:{symbol}:{tf}:{YYYY-MM-DD} với TTL căn chỉnh theo từng khung: 15m=1d, 1h=2d, 4h=5d, 1d=15d. Chỉ khi nhiều khung đồng thuận BUY hoặc SELL liên tiếp 1, 3 hoặc 5 ngày, signal mới được persist xuống bảng signals và POST sang RESULT_API_URL — đảm bảo những gì được ghi nhận là xu hướng thực sự, không phải biến động nhất thời.

  • 03
    Duplicate guardSkip nếu trùng 3 ngày trước

    Trước khi lưu một consensus mới, service kiểm tra xem trong 3 ngày gần nhất đã tồn tại cùng loại signal chưa. Nếu có → bỏ qua. Mục đích không phải để bỏ sót tín hiệu, mà để tránh notify lặp khi thị trường vẫn đang đi đúng hướng — hệ thống chỉ lên tiếng khi trạng thái thực sự thay đổi.

  • 04
    Self-eval 10 ngàyDaily cron · SUCCESS / FAIL

    Mỗi ngày lúc 07:00 với crypto và 10:00 các ngày trong tuần với chứng khoán, SignalTrackingService được cron kích hoạt để nhìn lại toàn bộ signal đã phát trong 10 ngày qua. Với mỗi signal còn trong vòng theo dõi, giá hiện tại được append vào metadata.tracking10d — ghi lại hành trình giá từng ngày kể từ lúc signal xuất hiện. Đến ngày thứ 10, hệ thống đối chiếu với takeProfitPricestopLossPrice để chốt phán quyết cuối cùng: trackingStatus = SUCCESS / FAILED, kèm timestamp evaluatedAt.

  • 05
    Chart + pattern overlayTradingView Charting Library · ws stream

    Front-end được xây trên Next.js tích hợp TradingView Charting Library với DatafeedService tự viết: HTTP để load history bars, WebSocket để nhận giá realtime. MobileChart nhận vào PatternDrawing[] và vẽ trực tiếp lên chart — màu sắc phản ánh bias của signal (bullish #16a34a, bearish #dc2626, neutral #64748b); style đường kẻ phân biệt theo loại pattern: neckline và support/resistance dùng dashed, các event như RSI divergence hay engulfing dùng solid mảnh.

03.Tech stack

Công nghệ sử dụng
BackendNestJS 10 · TypeScript · TypeORM · @nestjs/schedule (cron) · @nestjs/event-emitter · @nestjs/swagger · axios
FrontendNext.js 15 · React 19 · TypeScript · TradingView Charting Library (custom DatafeedService) · WebSocket streaming · port 3019
StorageMySQL (bảng signals · enum dataSource/type/source · decimal(18,8) cho giá crypto · metadata JSON · indexes theo dataSource+symbolRef+date)
Stage cacheRedis DB9 với key crypto:stage:{symbol}:{tf}:{date} và stock:stage:{symbol}:{tf}:{date} · TTL điều chỉnh theo rule (15m=1d, 1h=2d, 4h=5d, 1d=15d)
Data sourcesBinance API (crypto · spot OHLCV 6 khung) · stock data nội bộ (1h / 1d / 1w native, 15m proxy) · giờ giao dịch VN qua trading-hours.helper
ReliabilityisScanning flag chống chồng job · cron 07:00 crypto / 10:00 weekday stock · POST RESULT_API_URL notify ngoài · duplicate guard 3 ngày

04.How it works

Kiến trúc tổng thể

Trục chính của hệ thống là một state machine ẩn trong Redis. Mỗi lần scan một timeframe, service ghi {action, confidence, score, capturedAt} vào key {source}:stage:{symbol}:{tf}:{YYYY-MM-DD} với TTL căn chỉnh vừa đủ để rule consensus có thể tra ngược nhiều ngày: 15m sống 1 ngày, 1h sống 2 ngày, 4h sống 5 ngày, 1d sống 15 ngày. Nhờ cách tổ chức này, việc đánh giá một rule phức tạp như 1h+4h trong 3 ngày liên tiếp trở nên đơn giản: đọc 3 key 1h gần nhất, 3 key 4h gần nhất, rồi kiểm tra xem có ngày nào cả hai cùng BUY hoặc cùng SELL không — không cần query DB, không cần join bảng.

Khi một signal được lưu, nó mang theo đầy đủ ngữ cảnh giá tại thời điểm phát: priceAtSignal, entryPrice, takeProfitPrice, stopLossPrice. Từ đó, SignalTrackingService chạy daily cron (crypto 07:00, chứng khoán 10:00 ngày thường) để theo dõi hành trình giá: với mỗi signal chưa đủ 10 ngày tuổi, giá hiện tại được append vào metadata.tracking10d mỗi ngày một lần. Đến ngày thứ 10, hệ thống tính max/min trong toàn bộ mảng rồi đối chiếu với TP/SL: chạm takeProfitPrice trước → SUCCESS, chạm stopLossPrice trước → FAILED, không chạm cả hai → EXPIRED. Tỷ lệ SUCCESS theo từng rule và từng timeframe đều query được trực tiếp từ SQL — không cần tính toán thêm ở tầng ứng dụng.

Design decision

Hầu hết tool tín hiệu phát rất nhiều signal rồi im lặng — không biết đúng hay sai, không đúc kết được gì sau mỗi lần vào lệnh. tracking10d và daily cron trong TradingSignals sinh ra để giải quyết đúng điểm đó: mỗi signal bắt buộc phải có kết quả cuối cùng, rule nào hay sai thì số liệu nói thay, và tôi sửa lại code. Signal ít đi, nhưng cái nào phát ra thì tin được — đó mới là thứ tôi cần khi ngồi giao dịch.

05.Bình luận

Ý kiến của bạn

Chưa có bình luận nào.

Xem tiep
bank-notify-bridge preview
B
Bank Notify

BankNotify biến một chiếc điện thoại Android cũ thành cổng thanh toán DIY cho merchant nhỏ. App Flutter + Kotlin chạy nền trên điện thoại, đọc thông báo biến động số dư từ app ngân hàng và forward ngay về backend qua HTTP. Backend nhận thông báo, match với đơn hàng đang pending, rồi gọi callback để hoàn thành thanh toán — tất cả xảy ra trong vài giây, không cần tích hợp cổng thanh toán chính thức, không cần phí hàng tháng.

rbac-platform preview
A
Auto Hub

AutoHub là trang quản lý dành cho những ai đang chạy MMO nghiêm túc — nuôi acc số lượng lớn, điểm danh hàng ngày, đặt vé giờ cao điểm, farm theo lịch, và mọi tác vụ lặp lại cần chạy đều đặn mà không muốn ngồi canh tay. Mỗi khách có dashboard riêng để theo dõi toàn bộ job, tự cấu hình giờ chạy cho từng tác vụ hoặc dùng lịch mặc định. Hệ thống tự gắn proxy sạch từ pool đảm bảo cho các job yêu cầu, chạy nền liên tục 24/7 và đẩy kết quả thẳng về Telegram của từng khách. Cần hỗ trợ thì có AI tự động xử lý FAQ hoặc chat thẳng với admin. Dữ liệu phân quyền chặt chẽ — tài khoản, lịch sử chạy, log của bạn là của bạn, không ai khác thấy được.

python-ocr preview
O
Captcha OCR

CaptchaOCR là một micro-service FastAPI nhận ảnh captcha 4 chữ số dưới dạng base64 và trả về số nguyên tương ứng. Model ddddocr pretrained được load một lần duy nhất lúc process khởi động — mọi request sau đó chỉ là inference, latency vài chục ms mỗi ảnh. Service deploy bằng PM2 với auto-restart và giới hạn RAM cứng, đảm bảo chạy ổn định dài hạn mà không cần giám sát thủ công.

hotel preview
H
Hotel management

Hotel Management là phần mềm quản trị khách sạn nội bộ, xây cho đội ngũ lễ tân và quản lý vận hành hàng ngày. Toàn bộ luồng cốt lõi được xử lý trong một hệ thống: nhận đặt phòng walk-in tại quầy hoặc từ kênh online, check-in và check-out, ghi nhận dịch vụ phát sinh trong quá trình lưu trú, và xuất hoá đơn tự động khi khách trả phòng. Phân quyền chi tiết đến từng thao tác — nhân viên lễ tân, thu ngân và quản lý có màn hình và quyền hạn khác nhau. Mọi thay đổi trên hệ thống đều được ghi vào audit log đầy đủ, đủ để truy vết khi cần.