Indicator Go: Thư viện phân tích kỹ thuật & backtest cho Go

ByNgọc Trai MKT05/07/2026in GitHub Tools 0
indicator

Indicator Go là một thư viện Go mã nguồn mở cung cấp hơn 80 chỉ báo phân tích kỹ thuật, khung backtest và tích hợp AI qua MCP. Nó giải quyết bài toán thiếu thư viện toàn diện cho lập trình viên Go muốn xây dựng và kiểm tra chiến lược giao dịch tự động một cách nhanh chóng, đáng tin cậy. Xem thêm tại repository Indicator trên GitHub.

Thank you for reading this post, don't forget to subscribe!

Những điểm chính

  • Hơn 80 chỉ báo kỹ thuật theo 4 nhóm: xu hướng, động lượng, biến động, khối lượng, cùng với chỉ báo định giá tài sản.
  • Chiến lược giao dịch tích hợp sẵn (trend, momentum, volatility, volume) và chiến lược kết hợp (And, Or, Majority) cùng decorator (Inverse, Stop Loss).
  • Khung backtest tạo báo cáo HTML, hỗ trợ đồng bộ dữ liệu từ Tiingo và Alpaca Markets qua CLI hoặc Docker.
  • Hỗ trợ MCP Server cho tích hợp AI, đồng thời có bản TypeScript riêng (Indicator TS).
  • Mã nguồn v2 được viết lại hoàn toàn với generics, code coverage >90%, test dữ liệu CSV riêng cho từng chỉ báo.

Indicator Go là gì và giải quyết vấn đề gì?

Indicator Go là gì và giải quyết vấn đề gì?
Indicator Go là gì và giải quyết vấn đề gì?

Indicator Go là thư viện Go cung cấp bộ công cụ phân tích kỹ thuật đầy đủ cho lập trình viên phát triển robot giao dịch. Nó bao gồm hơn 80 chỉ báo phổ biến như SMA, EMA, RSI, MACD, Bollinger Bands, cùng với các chiến lược giao dịch sẵn có và khung backtest để đánh giá hiệu suất. Vấn đề mà nó giải quyết là sự thiếu hụt một thư viện Go chất lượng cao, dễ tích hợp, không phụ thuộc bên ngoài, dành cho cả nhà phát triển cá nhân và tổ chức muốn thử nghiệm chiến lược giao dịch nhanh mà không cần viết lại từ đầu. Nó cũng hỗ trợ MCP Server để kết nối với AI, mở ra khả năng gợi ý chiến lược thông minh.

Những tính năng nổi bật của thư viện Indicator Go

Những tính năng nổi bật của thư viện Indicator Go
Những tính năng nổi bật của thư viện Indicator Go

Thư viện này có rất nhiều điểm mạnh. Đầu tiên là bộ chỉ báo phong phú: trend (36 chỉ báo), momentum (16), volatility (17), volume (12), và asset valuation (3). Mỗi chỉ báo đều có thể cấu hình linh hoạt, không giá trị mặc định cứng nhắc. Thứ hai, chiến lược tích hợp sẵn gồm hơn 30 chiến lược đơn lẻ cho từng nhóm, cộng thêm 5 chiến lược kết hợp (And, Or, Majority, MACD-RSI, Split) và 4 decorator strategy (Inverse, No Loss, Stop Loss). Bạn có thể kết hợp chúng để tạo chiến lược phức tạp. Thứ ba, khung backtest tạo báo cáo HTML trực quan, cho phép chạy trên nhiều asset cùng lúc với đa luồng. Thứ tư, tích hợp nguồn dữ liệu qua Tiingo và Alpaca Markets, hỗ trợ đồng bộ CLI. Cuối cùng, MCP Server giúp tích hợp với AI tool, còn Docker image giúp chạy ngay lập tức mà không cần cài đặt Go. Tất cả đều không có dependency bên ngoài – chỉ cần Go là đủ.

Hướng dẫn cài đặt và sử dụng Indicator Go

Hướng dẫn cài đặt và sử dụng Indicator Go
Hướng dẫn cài đặt và sử dụng Indicator Go

Để bắt đầu, bạn cần Go phiên bản 1.18+ (hỗ trợ generics). Các bước cài đặt và chạy thử như sau:

  1. Cài package: go get github.com/cinar/indicator/v2
  2. Import trong code: import "github.com/cinar/indicator/v2"
  3. Tạo một backtest đơn giản với chiến lược APO (Absolute Price Oscillator) trên asset BRK-B:
    report := backtest.NewHTMLReport("output")
    bt := backtest.NewBacktest(repository, report)
    bt.Names = append(bt.Names, "brk-b")
    bt.Strategies = append(bt.Strategies, trend.NewApoStrategy())
    err = bt.Run()
  4. Hoặc dùng Docker để chạy backtest toàn bộ asset chỉ với một lệnh:
    docker run -it --rm -v $(pwd)/output:/app/output ghcr.io/cinar/indicator:latest --api-key YOUR_TIINGO_KEY --days 365 --assets aapl msft googl
  5. Kết quả sẽ là file HTML trong thư mục output, bạn có thể mở bằng trình duyệt.

Nếu muốn đồng bộ dữ liệu từ Tiingo, dùng CLI: indicator-sync -source-name tiingo -source-config $TIINGO_KEY -target-name filesystem -target-config /home/user/assets -days 30. Nhớ xem tài liệu đầy đủ tại GitHub gốc.

Ai nên dùng – ai không nên dùng Indicator Go?

Ai nên dùng - ai không nên dùng Indicator Go?
Ai nên dùng – ai không nên dùng Indicator Go?

Nên dùng: Lập trình viên Go xây dựng robot giao dịch cá nhân hoặc hệ thống backtest nhanh. Nhà nghiên cứu muốn thử nghiệm chỉ báo mới hoặc chiến lược kết hợp. Team startup cần một giải pháp mã nguồn mở, không phụ thuộc, dễ mở rộng. Người dùng đã quen với Python nhưng muốn chuyển sang Go vì hiệu năng.

Không nên dùng: Người mới bắt đầu giao dịch chưa hiểu về chỉ báo kỹ thuật – thư viện này đòi hỏi kiến thức cơ bản. Ai cần giao dịch tần suất cao với mill giây – vì backtest chạy offline, không real-time (trừ khi tự build thêm). Người muốn tích hợp nguồn dữ liệu khác ngoài Tiingo/Alpaca – phải viết repository tùy chỉnh. Và lưu ý: phiên bản v2 được phát hành dưới AGPLv3, nếu bạn cần giấy phép thương mại phải liên hệ tác giả.

Câu hỏi thường gặp

Indicator Go có hỗ trợ dữ liệu thời gian thực không?

Có thể thông qua MCP Server. Thư viện có sẵn MCP Server giúp phục vụ chiến lược cho nhiều client, hỗ trợ thực thi real-time nếu bạn tích hợp với nguồn dữ liệu stream.

Tôi có cần API key để chạy không?

Chỉ cần khi bạn dùng Docker hoặc CLI để đồng bộ dữ liệu từ Tiingo (API key miễn phí tại tiingo.com). Nếu tự cung cấp dữ liệu qua repository khác thì không cần.

Phiên bản v2 có miễn phí không?

v2 được phát hành dưới AGPLv3 – miễn phí cho mục đích cá nhân và giáo dục. Nếu bạn muốn nhúng vào sản phẩm thương mại, cần giấy phép riêng từ tác giả.

Có bản TypeScript không?

Có, tác giả có bản Indicator TS riêng cho hệ sinh thái JavaScript/TypeScript với cùng bộ chỉ báo và chiến lược.

Kết luận

Indicator Go là lựa chọn mạnh mẽ cho bất kỳ lập trình viên Go nào muốn xây dựng hệ thống giao dịch thuật toán. Với hơn 80 chỉ báo, chiến lược sẵn có, khung backtest chuyên nghiệp, và tích hợp AI, nó tiết kiệm hàng tuần phát triển. Hãy ghé thăm GitHub repository của Indicator để clone và thử nghiệm ngay hôm nay.

Related Posts