Trong tài chính định lượng, các nhà nghiên cứu xây dựng thuật toán để giao dịch tài sản, phái sinh và các công cụ tài chính khác. Một phần then chốt của công việc đó là tìm kiếm tín hiệu: các mẫu trong dữ liệu thị trường lộn xộn có thể giúp dự đoán lợi suất trong tương lai. Những tín hiệu này có thể đến từ dữ liệu giá và khối lượng, chỉ báo kinh tế, dữ liệu cơ bản, hoặc các nguồn thay thế như sắc thái cảm xúc trong tin tức.
Trong nhiều năm, các công ty định lượng đã phát hiện và kiểm thử tín hiệu phần lớn theo cách thủ công. Theo truyền thống, các nhà nghiên cứu định lượng phải tự đưa ra giả thuyết, viết code, backtest và tinh chỉnh hàng trăm tín hiệu tiềm năng. Quy trình làm việc thường bị phân mảnh, luân chuyển giữa các nhà khoa học dữ liệu, nhà phát triển và nhà phân tích, tạo ra độ trễ đáng kể trong một thị trường vận động theo từng mili giây. Giờ đây, AI có thể giúp tự động hóa một phần quy trình này và tăng tốc chu kỳ nghiên cứu. ví dụ dành cho nhà phát triển về agent khám phá tín hiệu định lượng của NVIDIA cho thấy cách tự động hóa khám phá tín hiệu bằng kiến trúc agentic được xây dựng với họ mô hình mở NVIDIA Nemotron và thư viện mã nguồn mở NVIDIA NeMo Agent Toolkit.
Trong bài viết blog này, chúng tôi hướng dẫn bạn qua một ví dụ hoàn chỉnh về cách xây dựng một hệ thống agentic để khám phá tín hiệu bằng NeMo Agent Toolkit.
Các hệ thống agentic cho khám phá tín hiệu
Agentic AI đang thu hẹp khoảng cách giữa chuyên môn của con người và hiệu quả tự động hóa. Chúng tôi đã thiết kế một hệ thống các agent khám phá tín hiệu bằng NeMo Agent Toolkit để chuyển việc khám phá tín hiệu từ một quy trình thủ công nặng nhọc thành một vòng lặp tự chủ, tự tiến hóa. Kết quả là một quy trình dễ dàng để thiết kế, kiểm thử và tối ưu hóa hệ thống agentic.
Hệ thống điều phối ba agent chuyên biệt:
- Signal agent: Xác định các tín hiệu alpha tiềm năng từ dữ liệu thị trường.
- Code agent: Chuyển các mô tả tín hiệu thành mã Python có thể thực thi.
- Evaluation agent: Chạy backtest, áp dụng đánh giá logic và tinh chỉnh lặp lại các đề xuất tín hiệu.
Vòng lặp khám phá tín hiệu đa agent của NeMo Agent Toolkit
NeMo Agent Toolkit cung cấp lớp điều phối để xây dựng các agent thông minh có khả năng lập kế hoạch cho những tác vụ nghiên cứu phức tạp, sử dụng tool để thực thi mã Python, và tự phản tư trên kết quả backtesting nhằm tinh chỉnh các giả thuyết của chính chúng. Hệ thống được đề xuất của chúng tôi gồm ba agent chuyên biệt tương tác trong một chu trình liên tục gồm tạo lập, thực thi và tinh chỉnh. NeMo Agent Toolkit quản lý các bước “bàn giao” giữa những agent này, đảm bảo rằng ngữ cảnh (chẳng hạn như định nghĩa tín hiệu hoặc kết quả backtest) được bảo toàn xuyên suốt workflow.

Bộ tạo tín hiệu
Agent này đóng vai trò như bộ não sáng tạo, sử dụng nemotron-3-nano-30b-a3b thông qua NVIDIA NIM để giả thuyết hóa các biểu thức tín hiệu mới. Chúng tôi thiết kế system prompt sau: “Bạn là một nhà nghiên cứu định lượng cấp cao tại một quỹ phòng hộ hàng đầu. Hãy tạo {config.num_signals} tín hiệu chọn cổ phiếu độc nhất dựa trên yêu cầu” để xác định mục tiêu cốt lõi của agent.
Để đảm bảo agent tạo ra kết quả hợp lý về mặt logic thay vì “ảo giác” toán học, chúng tôi cung cấp cho nó một thư viện có cấu trúc gồm các bộ tính toán toán học làm khối xây dựng. Mỗi bộ tính toán là một dictionary chứa tên, signature và ý nghĩa. Trong ví dụ của chúng tôi, có 66 toán tử khác nhau bao phủ các phép toán từ số học, toán học (abs, clip, power), xếp hạng và chuỗi thời gian (log return, momentum, delta). Ví dụ, Rank_Add chuẩn hóa hai tập dữ liệu khác nhau (như giá và khối lượng) về cùng một thang phân vị từ 0 đến 1 rồi cộng chúng lại với nhau. Chúng tôi cung cấp phần diễn giải và mã Python, cho phép agent kết hợp các tín hiệu thị trường khác nhau thành một điểm số duy nhất, cân bằng.
{
"name": "Rank_Add",
"signature": "Rank_Add(x: pd.DataFrame, y: pd.DataFrame) -> pd.DataFrame",
"meanings": "Return the sum of the quantiles of the elements in DataFrame x and the corresponding elements in DataFrame y.",
"code": "def Rank_Add(x, y):\n rank_x = x.T.rank() / (len(x.T) + 1)\n rank_y = y.T.rank() / (len(y.T) + 1)\n return (rank_x + rank_y).T\n"
}
Bằng cách cung cấp các toán tử tham chiếu này, agent có thể suy luận trong “hộp công cụ” của mình để chọn tổ hợp toán tử tốt nhất nhằm đo lường xu hướng thị trường, đảm bảo tín hiệu thu được vừa có chất lượng cao vừa vững chắc về mặt lý thuyết.
Bộ tạo tín hiệu xuất ra “bản thiết kế” theo prompt sau:
Return each signal as a JSON object with these fields:
- name: Signal name (descriptive)
- formula: Formula using ONLY the operators listed above
- meaning: Economic intuition (what alpha it captures)
- category: One of [momentum, volatility, volume, reversal, quality, other]
- data_fields_used: List of data fields used (Open, Close, High, Low, Volume)
- operators_used: List of operators used
- lookback_periods: List of lookback days used
Bằng cách yêu cầu agent xuất ra toàn bộ chi tiết, chúng ta đảm bảo tính diễn giải được và khả năng tái lập của các tín hiệu do agent tạo ra; đồng thời, việc theo dõi thông tin này cũng sẽ hỗ trợ bước đánh giá ở giai đoạn tiếp theo trong vòng lặp.
Code agent
Sau khi một giả thuyết được hình thành, code agent chuyển đổi các ý tưởng bằng ngôn ngữ tự nhiên thành mã Python có thể thực thi. Trong hệ sinh thái NeMo Agent Toolkit, agent này được tinh chỉnh riêng cho gọi tool và tạo mã. Nó nhận bản thiết kế từ signal agent và tạo ra mã Python để tính toán tín hiệu trên dữ liệu giá-khối lượng lịch sử—với các triển khai toán tử từ calculator.json được tự động nhúng trực tiếp, để module kết quả có tính độc lập và dễ di chuyển.
Agent đánh giá
Agent này xử lý dữ liệu thô từ code agent để tính các chỉ số Information Coefficient (IC) và Rank IC, nhằm định lượng mức độ tín hiệu dự đoán biến động giá tốt đến đâu. Trong nghiên cứu định lượng, Rank IC là tương quan giữa thứ hạng của các giá trị tín hiệu và thứ hạng của lợi suất tài sản sau đó.
Không giống Pearson IC tiêu chuẩn, Rank IC vững hơn trước các ngoại lệ và tập trung vào thứ tự tương đối của các tài sản—một đặc tính thiết yếu để xây dựng các chiến lược giao dịch dựa trên xếp hạng.
Thông thường, một tín hiệu cấp tổ chức “tốt” duy trì Rank IC trung bình trong khoảng 0,02 đến 0,05. Bất kỳ tín hiệu nào ổn định trên 0,05 đều được xem là tín hiệu rất mạnh, thường xuất hiện trong các chiến lược tần suất cao hoặc momentum ngách.
Người dùng có thể định nghĩa một ngưỡng chấp nhận để evaluation agent quyết định khi nào chấp nhận một tín hiệu được tạo ra. Nếu một tín hiệu có hiệu suất chưa tối ưu trong backtesting, evaluation agent sẽ tạo các đề xuất tối ưu hóa và đưa chúng trở lại vòng lặp kế tiếp của Signal Agent. Điều này tạo ra một vòng lặp tự cải thiện, trong đó mỗi thế hệ tín hiệu tiếp theo được tinh chỉnh hơn thế hệ trước.
Vì sao dùng NeMo Agent Toolkit để tự động hóa khám phá tín hiệu?
Việc sử dụng bộ công cụ cho trường hợp sử dụng cụ thể này mang lại nhiều lợi ích:
Workflow dựa trên cấu hình
Bộ công cụ giúp chuyển dự án từ một script cứng nhắc thành một nền tảng nghiên cứu linh hoạt. Thay vì hard-code các tương tác giữa các agent, bạn định nghĩa logic của hệ thống—bao gồm persona, tool và các ràng buộc—hoàn toàn trong một cấu hình YAML. Tính mô-đun này giúp việc thay đổi model cho các tác vụ khác nhau trở nên rất đơn giản. Ví dụ, bạn có thể chỉ định một model có năng lực suy luận cao để xử lý việc tạo giả thuyết, đồng thời dùng một model nhanh hơn và hiệu quả hơn về chi phí cho code agent mà không cần sửa đổi mã nguồn nền tảng.
Trong triển khai của chúng tôi, config.yml đóng vai trò là nguồn chân lý duy nhất cho toàn bộ thử nghiệm khám phá tín hiệu. Nó tập trung hóa mọi tham số quan trọng, từ các ngưỡng IC đến độ sâu của vòng lặp tối ưu hóa. Điều này cho phép các nhà nghiên cứu định lượng lặp lại với tốc độ cao—điều chỉnh kỳ hạn forward-returns hoặc siết chặt các yêu cầu IC—chỉ bằng cách chỉnh sửa một tệp YAML.
llms:
signal_generator:
_type: nim
model_name: nvidia/nemotron-3-nano-30b-a3b
base_url: "https://integrate.api.nvidia.com/v1/"
temperature: 0.8
max_tokens: 3000
code_generator:
_type: nim
model_name: nvidia/nemotron-3-nano-30b-a3b
base_url: "https://integrate.api.nvidia.com/v1/"
temperature: 0.0
max_tokens: 2000
optimization_advisor:
_type: nim
model_name: nvidia/nemotron-3-nano-30b-a3b
base_url: "https://integrate.api.nvidia.com/v1/"
temperature: 0.5
max_tokens: 1000
workflow:
_type: signal_optimizer
signal_generator_llm: signal_generator
code_generator_llm: code_generator
optimization_advisor_llm: optimization_advisor
ic_threshold: 0.02
p_value_threshold: 0.05
max_iterations: 3
num_signals: 2
forward_periods: 5
Khả năng quan sát tích hợp sẵn
Tracing của Arize Phoenix bổ sung khả năng quan sát cho các agent khám phá tín hiệu chạy bằng NIM trong các workflow định lượng chạy dài. Vì khám phá tín hiệu bao gồm các vòng lặp có độ trễ cao—tạo các công thức giá-khối lượng phức tạp, chạy backtest vector hóa và thực hiện đánh giá fitness—Phoenix cho phép chúng ta trực quan hóa các trace suy luận của LLM theo thời gian thực.

Bằng cách theo dõi các trace suy luận và mức sử dụng token trên các lệnh gọi ChatNVIDIA(), chúng ta có thể xác định liệu điểm nghẽn có nằm ở quá trình tạo logic của mô hình hay không, đồng thời có được hiểu biết sâu hơn về quá trình tư duy của agent ở từng bước. Tính minh bạch này rất cần thiết để gỡ lỗi các “lỗi âm thầm”, trong đó một agent có thể tạo ra một tín hiệu hợp lệ về mặt toán học nhưng vô nghĩa về mặt kinh tế, qua đó cho phép tối ưu hóa cả chiến lược prompt lẫn chi phí tính toán của chu kỳ khám phá.
Ví dụ đầu cuối: Khai thác tín hiệu dựa trên động lượng
Các tín hiệu dựa trên momentum là một trong những loại được sử dụng phổ biến nhất trong giao dịch. Chúng dựa trên quan sát thực nghiệm rằng những tài sản có hiệu suất tốt trong thời gian gần đây có xu hướng tiếp tục quỹ đạo đi lên, trong khi những tài sản có hiệu suất kém thường tiếp tục suy giảm. Hãy chạy workflow với prompt này:
nat run --config_file configs/config-optimization.yml --input "momentum signals"
Lệnh nat run khởi chạy workflow dựa trên cấu hình YAML để thực hiện vòng lặp sinh và tối ưu hóa:
026-04-24 14:34:02 - INFO - signal_discovery_workflow.signal_discovery_optimization_workflow:353 - === Iteration 1/3 ===
2026-04-24 14:34:02 - INFO - signal_discovery_workflow.signal_discovery_optimization_workflow:355 - Generating signals...
2026-04-24 14:34:10 - INFO - signal_discovery_workflow.signal_discovery_optimization_workflow:360 - Generating code...
2026-04-24 14:34:13 - INFO - signal_discovery_workflow.signal_discovery_optimization_workflow:366 - Evaluating IC...
2026-04-24 14:34:13 - INFO - signal_discovery_workflow.signal_evaluator:391 - Found 2 signal function(s): ['signal_volume_adjusted_momentum', 'signal_20_day_price_rank_momentum']
2026-04-24 14:34:15 - INFO - signal_discovery_workflow.signal_evaluator:457 - signal_volume_adjusted_momentum: |IC| = 0.0103
2026-04-24 14:34:18 - INFO - signal_discovery_workflow.signal_evaluator:457 - signal_20_day_price_rank_momentum: |IC| = 0.0138
2026-04-24 14:34:18 - INFO - signal_discovery_workflow.signal_evaluator:472 - Selected best signal: signal_20_day_price_rank_momentum with |IC| = 0.0138
2026-04-24 14:34:19 - INFO - signal_discovery_workflow.signal_discovery_optimization_workflow:371 - Mean IC: -0.0138, p-value: 7.202971903375044e-07
2026-04-24 14:34:19 - INFO - signal_discovery_workflow.signal_discovery_optimization_workflow:413 - Generating optimization feedback...
signal_discovery_workflow.signal_discovery_optimization_workflow:353 - === Iteration 2/3 ===
...
signal_discovery_workflow.signal_discovery_optimization_workflow:353 - === Iteration 3/3 ===
...
Sau ba vòng lặp tối ưu hóa, chúng ta thu được các tín hiệu được tạo sau đây:
Signal 1: ExpVolume-Adjusted Momentum
Formula: Div(TS_Return(Close, 10), Decay_Exp(Volume, 10))
Meaning: 10‑day price return scaled by exponentially weighted volume, isolating momentum that is amplified when trading activity is sustained
Category: momentum
Data fields: Close, Volume
Operators: Div, TS_Return, Decay_Exp
Lookback: [10]
Signal 2: Rank-Adjusted Return Momentum << SELECTED
Formula: Rank_Mul(Rank(Close), Rank(TS_Return(Close, 10)))
Meaning: Combines the relative standing of price with the relative strength of recent returns, highlighting stocks that are both highly ranked in price and showing strong upward momentum
Category: momentum
Data fields: Close
Evaluation Metrics (on: signal_rank_adjusted_return_momentum):
----------------------------------------
Mean IC: -0.0134
IC Std: 0.1483
IC IR: -0.0906
T-stat: -5.3655
P-value: 0.000000
Num Periods: 3504
Positive IC Ratio: 46.38%
Trong phần minh họa này, signal agent đã tạo ra hai tín hiệu lựa chọn cổ phiếu dựa trên động lượng bằng cách sử dụng thư viện có cấu trúc gồm các toán tử toán học mà chúng tôi cung cấp.
Tín hiệu thứ nhất, ExpVolume-Adjusted Momentum, tính lợi suất giá 10 ngày của mỗi cổ phiếu và chia cho trung bình động có trọng số hàm mũ của khối lượng giao dịch trong cùng khoảng thời gian:

Mẫu số là trung bình có trọng số hàm mũ đệ quy với span bằng 10:

Trực giác ở đây là lợi suất giá trong 10 ngày có trọng số lớn hơn khi nó xảy ra trong điều kiện thanh khoản thấp hoặc hoạt động giao dịch mỏng. Với hai cổ phiếu có lợi suất giá giống hệt nhau, cổ phiếu có khối lượng EWMA yếu hơn và đang suy giảm sẽ nhận được độ lớn tín hiệu lớn hơn.
Tín hiệu thứ hai, Rank-Adjusted Return Momentum, kết hợp hai thứ hạng theo lát cắt ngang: thứ hạng giá của từng cổ phiếu và thứ hạng lợi suất 10 ngày của nó, nhân với nhau để tín hiệu chỉ lớn khi cả hai đồng thời ở mức cao:

Thứ hạng theo lát cắt ngang vào ngày \(t\) là phân vị trong cùng ngày trên \(N\) mã thuộc S&P 500:

Điều này cô lập các cổ phiếu đồng thời có mức định giá cao và thể hiện đà tăng mạnh gần đây—tích của hai yếu tố này làm sắc nét tín hiệu hơn so với việc xét riêng từng thứ hạng, vì các mã nằm ở nhóm trung bình theo một trong hai chiều sẽ bị làm suy giảm theo phép nhân.
Bộ đánh giá đã kiểm thử ngược cả hai tín hiệu so với lợi suất kỳ hạn của S&P 500 và chọn Rank-Adjusted Return Momentum làm ứng viên mạnh hơn, đạt IC trung bình -0,0134 (độ lệch chuẩn IC 0,1483, information ratio -0,091) với thống kê \(t\) là -5,37, giá trị \(p\) cực kỳ nhỏ (\(p < 10^{-7}\)) trong 3.504 ngày giao dịch.
Tỷ lệ IC dương 46,4% xác nhận rằng tín hiệu thường nghiêng về phía âm nhiều hơn là dương. Dù $|IC|$ chỉ nằm ngay dưới ngưỡng chấp nhận 0,02 (do đó dẫn đến kết quả “nỗ lực tốt nhất” sau hai lần lặp), dấu âm có ý nghĩa thống kê rất cao cho thấy tín hiệu mang thông tin dự đoán nhất quán—các cổ phiếu giá cao, đà tăng mạnh có xu hướng kém hiệu quả một cách có hệ thống trong tương lai, đúng với mô hình short-momentum / reversal kinh điển.
Ví dụ dành cho nhà phát triển agent khám phá tín hiệu định lượng
Chúng ta kết thúc bằng việc đi qua một ví dụ về cách xây dựng một engine có khả năng mở rộng cao, linh hoạt và mạnh mẽ để phát hiện các nguồn alpha mới. Ví dụ dành cho nhà phát triển agent khám phá tín hiệu định lượng này có thể mở rộng dễ dàng:
- Thử các danh mục tín hiệu khác nhau bằng cách thay đổi chuỗi –input, chẳng hạn như “tín hiệu biến động”, “tín hiệu hồi quy về trung bình” hoặc “tín hiệu phân kỳ khối lượng-giá”.
- Kết hợp các kích thước mô hình theo từng agent. Gán một mô hình suy luận có năng lực cao hơn như nemotron-3-super-120b-a12b cho signal agent để có khả năng hình thành ý tưởng phong phú hơn, trong khi vẫn giữ mô hình nhỏ hơn nemotron-3-nano-30b-a3b cho code agent và advisor; chỉ cần thay đổi một dòng trong YAML.
- Thêm các operator của riêng bạn bằng cách chỉnh sửa template/calculator.json. Đưa vào các chỉ báo kỹ thuật độc quyền của công ty bạn hoặc các phép biến đổi dữ liệu thay thế; signal agent sẽ tự động phát hiện chúng trong lần chạy tiếp theo.
- Cắm dữ liệu của riêng bạn vào. Thay thế các tệp CSV S&P 500 đi kèm bằng universe của riêng bạn (cổ phiếu châu Á, crypto, ETF) hoặc thêm các trường dữ liệu mới như dữ liệu cơ bản hoặc sentiment.
- Điều chỉnh các tiêu chí tối ưu hóa—chẳng hạn như ic_threshold, max_iterations và forward_periods—để phù hợp với phong cách đầu tư của bạn.
Bắt đầu
Truy cập build.nvidia.com để triển khai notebook trong môi trường tăng tốc bằng GPU với NVIDIA Brev hoặc hạ tầng đám mây của riêng bạn bằng notebook agent khám phá tín hiệu định lượng trên GitHub.
Bài viết liên quan
- NVIDIA Riva giải pháp Voice RAG: tối ưu luồng dữ liệu âm thanh và đồng bộ Avatar 3D
- NVIDIA Dynamo Snapshot: Khởi động nhanh cho workload suy luận trên Kubernetes
- Triển khai kiến trúc Multi-Agent Intelligent Warehouse cho việc vận hành kho hàng hiện đại
- Triển khai hệ thống Voice RAG bằng NVIDIA Riva framework trên hạ tầng cục bộ
- Triển khai AI Agent sẵn sàng cho thực tế tại biên với hiệu quả sử dụng bộ nhớ cao trên NVIDIA JetPack 7.2
- GPT-5.5 mới của OpenAI vận hành Codex trên hạ tầng NVIDIA — và NVIDIA đã đưa vào sử dụng
