Gần đây AI thực sự quá hot.
Chủ đề mạnh nhất trên thị trường hai năm nay, xoay quanh thế nào cũng khó tránh khỏi AI. NVIDIA, AMD, Broadcom, TSMC, Micron, Microsoft, Google, Meta, CoreWeave, Supermicro... Cứ mỗi một thời gian, lại có một công ty bất ngờ tăng mạnh vì báo cáo tài chính, đơn đặt hàng, chi tiêu vốn, HBM, GPU, điện toán đám mây, trung tâm dữ liệu.
Thú vị hơn là, chúng thường không tăng một cách riêng lẻ.
Có khi NVIDIA tăng trước, rồi thị trường bắt đầu đào sâu vào ASIC, module quang, máy chủ, làm mát bằng chất lỏng, điện năng; có khi báo cáo tài chính của Micron vượt kỳ vọng, sau đó dòng tiền lại nhắm đến HBM, bộ nhớ, thiết bị bán dẫn, đóng gói tiên tiến; đôi khi các nhà cung cấp dịch vụ đám mây tăng chi tiêu vốn, toàn bộ chuỗi cơ sở hạ tầng AI sẽ được định giá lại.
Điều này giống như một sự luân chuyển tài sản nội bộ trong chủ đề AI hơn. Thị trường không đơn giản là mua một cổ phiếu, mà là dưới một câu chuyện lớn, liên tục tìm kiếm các nhánh mới, giải thích mới và các đối tượng tăng bù mới.
Vấn đề đặt ra là: nếu chỉ dựa vào con người để sắp xếp các mối quan hệ này, thì quá mệt mỏi.
Một người có thể biết NVIDIA, AMD, Micron, Microsoft, Google, nhưng rất khó để liên tục theo dõi sự thay đổi kinh doanh, tin tức, phân loại ngành và sự liên kết giá cổ phiếu của hàng chục, hàng trăm hợp đồng cổ phiếu TradFi. Rắc rối hơn là, nhiều công ty không chỉ có một thuộc tính duy nhất. Google vừa là AI Cloud, vừa là Gemini, vừa là nền tảng quảng cáo; Microsoft vừa là Cloud, vừa là Copilot, vừa là phần mềm doanh nghiệp; Broadcom vừa có ASIC, vừa có chip mạng, lại còn liên quan đến trung tâm dữ liệu AI.
Vì vậy tôi bắt đầu thử nghiệm: Liệu có thể nhờ mô hình lớn giúp chúng ta xây dựng một bản đồ cổ phiếu AI?
Không phải để mô hình lớn trực tiếp cho chúng ta biết nên mua gì, mà để nó làm điều nó giỏi hơn: hiểu hoạt động kinh doanh của công ty, phân loại các tiểu ngành AI, tổng hợp tin tức, giải thích sự kiện, đánh giá một công ty có biến động bất thường thì có thể ảnh hưởng đến những cổ phiếu cùng chủ đề nào. Quyết định giao dịch thực sự vẫn nên dựa vào giá cả, thống kê và quản lý rủi ro.
Đầu tiên, đặt cổ phiếu vào đúng basket
Bước đầu tiên của chiến lược không phải là giao dịch, mà là xây dựng bản đồ.
Sàn giao dịch hiện có khá nhiều hợp đồng cổ phiếu TradFi, có thể trực tiếp lấy được một loạt các hợp đồng cổ phiếu như NVDA, AMD, MU, MSFT, GOOGL, SMCI. Hệ thống trước tiên lọc các hợp đồng thuộc loại cổ phiếu, chỉ giữ lại các mục tiêu là EQUITY thực sự.
Có một chi tiết rất quan trọng ở đây: không được lẫn ETF, chỉ số, ETF đòn bẩy vào. Ví dụ như QQQ, SOXL, EWT, mặc dù cũng có thể xuất hiện trong danh sách hợp đồng, nhưng chúng không phải là cổ phiếu công ty. Nếu đưa chúng vào basket cổ phiếu AI, các mối quan hệ thống kê sau này sẽ bị nhiễu.
Logic lọc cốt lõi đại khái như sau:
python
def refresh_equity_universe(store, force_reanalyze):
ms = exchange.GetMarkets()
symbols = []
for key, market in ms.items():
info = market.get("Info", {}) or {}
sub_type = info.get("underlyingSubType", []) or []
underlying_type = info.get("underlyingType", "")
if ".swap" not in key:
continue
if "TradFi" not in sub_type:
continue
if underlying_type != "EQUITY":
continue
symbol = normalize_symbol(key)
store["markets"][symbol] = {
"symbol": symbol,
"contract": key,
"underlyingType": underlying_type,
"amountPrecision": market.get("AmountPrecision", 0),
"pricePrecision": market.get("PricePrecision", 2),
"ctVal": market.get("CtVal", 1) or 1,
"minQty": market.get("MinQty", 0) or 0,
}
symbols.append(symbol)
Sau khi có được danh sách cổ phiếu, hệ thống sẽ yêu cầu mô hình lớn vẽ chân dung cho từng cổ phiếu.
Chân dung không đơn giản là viết một câu "đây là cổ phiếu công nghệ", mà phải xác định nó thuộc những tiểu ngành AI nào. Ví dụ, một cổ phiếu có thể đồng thời thuộc nhiều basket. Google có thể thuộc AI Cloud, Ứng dụng mô hình AI, Quảng cáo nền tảng AI; Microsoft có thể thuộc AI Cloud và Ứng dụng AI doanh nghiệp; NVIDIA có thể thuộc Sức mạnh tính toán AI và Máy chủ AI; Micron có thể thuộc Bộ nhớ AI.
Điểm mấu chốt của bước này là: Cổ phiếu trong kỷ nguyên AI không phải là đơn nhãn, mà là đa nhãn.
Mỗi cổ phiếu đều mang một số thuộc tính: thuộc những basket nào, mức độ tiếp xúc cao bao nhiêu, trong basket này giống leader hay follower hơn, có thể bị ảnh hưởng bởi những công ty nào, và có thể ảnh hưởng đến những công ty nào.
Tôi đã đặt ràng buộc chặt chẽ cho cấu trúc đầu ra của mô hình lớn:
python
schema = {
"symbol": symbol,
"asset_type": "stock|adr|etf|leveraged_etf|index|fund|other",
"company_name": "",
"sector": "",
"business_summary": "",
"tradable": False,
"model_confidence": 0,
"baskets": [
{
"id": "ai_cloud",
"exposure": 0.0,
"role": "leader|follower|both|observer",
"sub_theme": "",
"reason": ""
}
],
"search_names": [],
"event_keywords": [],
"negative_keywords": [],
"possible_leaders": [],
"possible_followers": [],
"brave_queries": [],
"reason": ""
}
Điều quan trọng nhất ở đây là asset_type. Chỉ stock và adr mới có thể vào basket, ETF, ETF đòn bẩy, chỉ số, quỹ, hàng hóa hoặc ETF khu vực đều bị lọc trực tiếp.
Ngoài ra, reason phải dùng tiếng Trung, tên trường phải nhất quán, độ tin cậy thống nhất từ 0 đến 100. Nếu không, trang giao dịch thực tế sau này sẽ trông rất lộn xộn.
Thông tin ngành không thể dựa vào suy luận
Chỉ có phân loại cổ phiếu thôi là chưa đủ.
Ngành AI thay đổi quá nhanh. Hôm nay thị trường giao dịch GPU, ngày mai có thể là HBM, ngày kia có thể là module quang, vài ngày sau lại bắt đầu giao dịch làm mát bằng chất lỏng, điện năng, chi tiêu vốn của các nhà cung cấp dịch vụ đám mây.
Nếu chỉ dựa vào kiến thức của riêng mô hình lớn, rất dễ bị lỗi thời. Vì vậy hệ thống còn cần nguồn thông tin thời gian thực.
Tôi đã tích hợp BraveSearch ở đây. Hệ thống sẽ định kỳ tìm kiếm thông tin ngành của từng basket AI, cũng như tìm kiếm tin tức về các cổ phiếu trọng điểm trong basket.
Ví dụ, basket AI Storage, sẽ xem xét các từ khóa như Micron, Western Digital, SanDisk, HBM, DRAM, NAND; basket AI Optical Communication, sẽ xem xét thông tin về Ciena, Credo, Lumentum, AAOI, module quang 800G, 1.6T.
Quy trình cốt lõi của thông tin tình báo ngành là:
python
def refresh_basket_intelligence(store):
if not BRAVE_KEY:
return
if not LLM_API_KEY:
return
intel = {}
for bid, basket in store["baskets"].items():
members = sorted(
basket["members"],
key=lambda x: x.get("exposure", 0),
reverse=True
)
top_symbols = [m["symbol"] for m in members[:8]]
basket_news = fetch_basket_news(basket, top_symbols)
stock_news = {}
for symbol in top_symbols[:6]:
profile = store["profiles"].get(symbol, {})
stock_news[symbol] = fetch_stock_news(profile, bid)
Sleep(800)
analysis = analyze_basket_intel_with_llm(
store, basket, top_symbols, basket_news, stock_news
)
if analysis:
analysis["basket"] = bid
analysis["basket_name"] = basket["name"]
analysis["symbols"] = top_symbols
analysis["updatedAt"] = int(time.time())
intel[bid] = analysis
store["basket_intel"] = intel
Bước này có tác dụng thiết lập một bối cảnh động cho mỗi phân nhóm AI.
Mô hình lớn sẽ dựa trên tin tức kéo về từ BraveSearch để đưa ra xu hướng phân nhóm, chất xúc tác cốt lõi, rủi ro cốt lõi, ứng cử viên leader, ứng cử viên follower, cũng như các mối quan hệ cần xác minh trọng điểm tiếp theo.
Điều này khác với việc hỏi trực tiếp mô hình lớn "Góc nhìn về lưu trữ AI thế nào". Trước tiên chúng ta đưa tin tức thời gian thực cho nó, sau đó mới để nó tổng kết.
Không phải giao dịch theo tin tức, mà là giá cả bất thường trước
Ban đầu tôi cũng nghĩ đến việc dẫn dắt bằng tin tức.
Ví dụ, thấy báo cáo tài chính của một công ty nào đó vượt kỳ vọng, thì để mô hình lớn đánh giá cổ phiếu nào có lợi, sau đó trực tiếp tạo tín hiệu. Nhưng nghĩ kỹ thì con đường này nhiễu rất lớn. Tin tức quá nhiều, nhiều tin tức trông có vẻ quan trọng, nhưng thị trường chẳng thèm để ý.
Vì vậy tôi đã đảo ngược logic lại.
Xem giá trước, sau đó mới xem tin tức.
Nếu tất cả cổ phiếu trong một basket đều khá ổn định, hệ thống chỉ quan sát. Chỉ khi một cổ phiếu nào đó lệch hẳn so với hiệu suất trung bình của phân nhóm, trở thành leader hiện tại, hệ thống mới truy vấn: Tại sao nó biến động?
Bước này sử dụng ZScore nội bộ basket.
Hiểu đơn giản, là xem một cổ phiếu có mạnh hoặc yếu bất thường so với các cổ phiếu khác cùng phân nhóm hay không. Nếu một cổ phiếu đột nhiên vượt lên, trong khi các cổ phiếu khác trong cùng basket chưa phản ứng đồng bộ, thì có thể tồn tại cơ hội lan tỏa.
Logic cốt lõi để tính basket ZScore như sau:
python
def calc_basket_zscores(store, symbols):
returns = {}
min_len = 999999
for symbol in symbols:
bars = get_records(
store["markets"][symbol]["contract"],
KLINE_PERIOD,
SYNC_WINDOW + 10
)
if len(bars) < SYNC_WINDOW + 2:
return None
r = calc_returns(bars)[-SYNC_WINDOW:]
returns[symbol] = r
min_len = min(min_len, len(r))
latest = {s: returns[s][-1] for s in symbols}
avg_latest = mean(list(latest.values()))
dev_series = {s: [] for s in symbols}
for i in range(min_len):
row = [returns[s][-min_len + i] for s in symbols]
row_avg = mean(row)
for s in symbols:
dev_series[s].append(returns[s][-min_len + i] - row_avg)
zscores = {}
max_abs = 0
for s in symbols:
sigma = std(dev_series[s])
z = (latest[s] - avg_latest) / sigma if sigma > 0 else 0
zscores[s] = round(z, 3)
max_abs = max(max_abs, abs(z))
return {"zscores": zscores, "maxAbs": max_abs}
Nếu độ lệch lớn nhất của một basket vượt quá ngưỡng đột phá, hệ thống sẽ chuyển sang trạng thái BREAKOUT_DETECTED.
Lúc này hệ thống không giao dịch ngay, mà bắt đầu truy nguyên nhân.
Tin tức chỉ giải thích, mối quan hệ thống kê mới xác minh
Khi leader xuất hiện đột phá giá, hệ thống sẽ lấy tin tức mới nhất của nó, sau đó để mô hình lớn đánh giá xem tin tức này có thể giải thích biến động giá hay không.
Nhưng ở đây không đơn giản hỏi "tin này có lợi không".
Hệ thống sẽ đưa cho mô hình lớn: basket hiện tại, thông tin tình báo phân nhóm, trạng thái giá thời gian thực, ZScore của leader, candidate follower, các mối quan hệ thống kê đã được xác minh, và tin tức kéo về từ BraveSearch.
Mô hình lớn cần trả lời:
(1) Tin tức này có thể giải thích sự bất thường về giá của leader không.
(2) Hướng tin tức có phù hợp với hướng giá không.
(3) Có cho phép giao dịch không.
(4) Ảnh hưởng đến những follower nào.
(5) Mức độ tác động lên mỗi follower là bao nhiêu.
(6) Tại sao những follower này có thể bị ảnh hưởng.
Logic truy nguyên nhân cốt lõi như sau:
python
def explain_breakout_with_news(store, bid, leader, direction, leader_z, followers, edges):
if not BRAVE_KEY:
return None
if not LLM_API_KEY:
return None
profile = store["profiles"].get(leader, {})
news = fetch_stock_news(profile, bid)
if not news:
return None
event = analyze_breakout_news_with_llm(
store, bid, leader, direction, leader_z,
followers, edges, news
)
if not event:
return None
if not event.get("explains_price_move"):
return None
expected_direction = "bullish" if direction == "long" else "bearish"
if event.get("direction") != expected_direction:
return None
event["confidence"] = normalize_confidence(event.get("confidence", 0))
if event["confidence"] < MIN_NEWS_CONFIDENCE:
return None
if not event.get("trade_allowed"):
return None
return event
Nhưng ngay cả khi mô hình lớn nói rằng một follower nào đó có thể bị ảnh hưởng, cũng không thể giao dịch ngay lập tức.
Còn phải xem xét mối quan hệ thống kê từ biểu đồ K.
Hệ thống sẽ tính toán mối liên kết lịch sử giữa các cổ phiếu trong mỗi basket, ví dụ như sau khi source đột phá thì target có thường xuyên đi theo không, mức tương quan ra sao, chu kỳ trễ tối ưu là bao nhiêu, lợi nhuận trung bình khi đi theo như thế nào.
Chỉ những source -> target nào vượt qua được kiểm tra mối quan hệ thống kê mới trở thành active edge.
python
def rebuild_basket_stats(store):
edges = []
for bid, basket in store["baskets"].items():
symbols = [
m["symbol"] for m in basket["members"]
if m["symbol"] in store["markets"]
]
for source in symbols:
for target in symbols:
if source == target:
continue
metric = validate_pair(store, source, target)
if not metric:
continue
source_exp = basket_member_info(basket, source).get("exposure", 0)
target_exp = basket_member_info(basket, target).get("exposure", 0)
score = clamp(
metric["corr"] * 0.3 +
metric["follow"] * 0.4 +
min(source_exp, target_exp) * 0.3,
0, 1
)
edge = {
"basket": bid,
"source": source,
"target": target,
"corr": round(metric["corr"], 3),
"follow": round(metric["follow"], 3),
"lag": metric["lag"],
"avgReturn": round(metric["avgReturn"], 6),
"sample": metric["sample"],
"score": round(score, 3),
"active": (
score >= MIN_EDGE_SCORE and
metric["corr"] >= MIN_CORR and
metric["follow"] >= MIN_FOLLOW_SUCCESS
),
"updatedAt": int(time.time()),
}
edges.append(edge)
store["edges"] = edges
Bước này rất quan trọng.
Mô hình lớn giỏi hiểu logic, nhưng thị trường không nhất thiết đi theo logic. Mối quan hệ thống kê dùng để kiểm chứng: logic này trong quá khứ đã từng được thị trường giao dịch hay chưa.
Giao dịch là sự lan tỏa, không phải đuổi đỉnh
Chiến lược này không nhằm đuổi theo leader.
Leader đã đột phá rồi, nếu đuổi trực tiếp dễ biến thành đuổi đỉnh. Chiến lược thực sự muốn tận dụng cơ hội lan tỏa trong cùng một AI basket.
Nghĩa là: leader đã dịch chuyển, tin tức giải thích hợp lý, nhưng một số follower vẫn chưa phản ứng đầy đủ. Nếu những follower này và leader có mối quan hệ liên kết trong lịch sử, thì có thể tồn tại cơ hội đi theo ngắn hạn.
Trong quét đột phá, đầu tiên tìm active edge, sau đó tìm follower còn chậm:
python
def scan_price_breakouts(store):
for bid, rt in store["realtime"].items():
if rt["state"] != "BREAKOUT_DETECTED":
continue
leader = rt["leader"]
z = 0
for m in rt["members"]:
if m["symbol"] == leader:
z = m["z"]
direction = "long" if z > 0 else "short"
edges = [
e for e in store["edges"]
if e["active"] and e["basket"] == bid and e["source"] == leader
]
followers = []
for e in edges:
target_rt = find_realtime_member(rt, e["target"])
if target_rt and abs(target_rt["z"]) < BREAKOUT_THRESHOLD * 0.75:
followers.append(e["target"])
if not followers:
continue
Chỉ khi nào việc truy tìm nguyên nhân từ tin tức cũng được thông qua, thì mới tạo ra confirmed signal.
Đối tượng giao dịch chủ yếu là follower.
Nếu hiện tại không có vị thế, thì mở lệnh theo hướng tín hiệu. Nếu cùng một hợp đồng đã có vị thế cùng hướng, thì thêm vị thế. Nếu đã có vị thế ngược hướng, thì đóng vị thế cũ trước, sau đó mở lệnh theo hướng mới.
python
def execute_symbol_trade(store, signal, symbol, detail):
direction = signal["direction"]
if TRADE_MODE != "trade":
return open_or_add_position(store, signal, symbol, detail, add_mode=False)
pos = get_position_by_symbol(symbol)
if pos:
pos_dir = position_direction(pos)
if pos_dir == direction:
return open_or_add_position(store, signal, symbol, detail, add_mode=True)
close_existing_position(store, symbol, pos, "reverse_signal")
Sleep(1000)
return open_or_add_position(store, signal, symbol, detail, add_mode=False)
Điều này cũng là vì nhiều cổ phiếu xuất hiện đồng thời trong nhiều basket. Một cổ phiếu có thể là follower trong AI Cloud, nhưng lại là thành viên của một logic khác trong AI Application. Tín hiệu từ các basket khác nhau có thể đồng thời ảnh hưởng đến nó, vì vậy cần xử lý thống nhất hướng của cùng một hợp đồng.
Kiểm soát rủi ro ban đầu đơn giản, nhưng phải có
Về kiểm soát rủi ro, hiện tại đang sử dụng stop loss cứng và trailing stop.
Khi lỗ đạt ngưỡng thì thoát; khi lợi nhuận đạt một mức nhất định sẽ kích hoạt trailing stop, nếu từ mức lãi thả nổi cao nhất bị rút lui quá nhiều, thì khóa lợi nhuận và thoát.
python
def monitor_positions(store):
for pos in exchange.GetPosition() or []:
symbol = position_symbol(pos)
if symbol not in store["markets"]:
continue
state = _G(position_state_key(symbol)) or {}
market = store["markets"][symbol]
ticker = exchange.GetTicker(market["contract"])
direction = position_direction(pos)
pnl_pct = (
(ticker["Last"] - pos["Price"]) /
pos["Price"] * 100 *
(1 if direction == "long" else -1)
)
if pnl_pct > state.get("peakPnlPct", 0):
state["peakPnlPct"] = pnl_pct
if not state.get("trailActive") and state.get("peakPnlPct", 0) >= TRAIL_ACTIVATE_PCT:
state["trailActive"] = True
hard_stop = False
if state.get("stop"):
hard_stop = (
ticker["Last"] <= state["stop"]
if direction == "long"
else ticker["Last"] >= state["stop"]
)
trail_hit = False
if state.get("trailActive"):
giveback = state.get("peakPnlPct", 0) - pnl_pct
allowed = max(
1.5,
state.get("peakPnlPct", 0) * TRAIL_GIVEBACK_PCT / 100.0
)
trail_hit = giveback >= allowed
if hard_stop or trail_hit:
close_existing_position(
store, symbol, pos,
"hard_stop" if hard_stop else "trailing_stop"
)
Đây chưa phải là phiên bản quản lý rủi ro cuối cùng, nhưng đã đủ dùng để quan sát thực tế ở giai đoạn đầu.
Sau này còn cần thêm các giới hạn: tổng vị thế cấp tài khoản, mức độ tiếp xúc theo ngành, giới hạn thua lỗ trong ngày, xác nhận khớp lệnh và giới hạn số lần gia tăng vị thế.
Hệ thống hiện tại đã đạt đến mức độ nào?
Hiện tại hệ thống này đã có thể hoàn thành một vòng nghiên cứu tương đối hoàn chỉnh.
Nó có thể tự động quét các hợp đồng TradFi, tự động yêu cầu mô hình lớn tạo chân dung (basket) cho các cổ phiếu long, tự động xây dựng các tiểu ngành AI, tự động kéo thông tin ngành và thông tin cổ phiếu qua BraveSearch, tự động tổng hợp tình báo ngành, tự động phát hiện sức mạnh thời gian thực của từng basket, tự động thống kê mối quan hệ theo dõi (follow) giữa các cổ phiếu trong basket, và truy tìm nguyên nhân tin tức sau khi giá leader phá vỡ.
Nếu giải thích tin tức hợp lý, hướng đi khớp, và các mối quan hệ thống kê cũng ủng hộ, hệ thống sẽ tạo ra tín hiệu đã xác nhận (confirmed signal). Ở chế độ mặc định, chỉ cảnh báo, không giao dịch thực tế; chỉ khi chuyển sang chế độ trade mới thực sự giao dịch.
Trang giao dịch thực tế không còn chỉ là log, mà hiển thị tổng quan hệ thống, trạng thái thời gian thực của basket, tình báo ngành, tín hiệu gần đây, giao dịch gần đây, các bước gần đây dưới dạng bảng biểu. Nhờ đó có thể thấy rõ hệ thống đang bị kẹt ở bước nào: chỉ có bất thường giá, hay tin tức không giải thích được, hay follower không đáp ứng điều kiện, hay bị quản lý rủi ro chặn lại.
Những điểm chưa hoàn thiện
Thành thật mà nói, hệ thống này chưa thể coi là một chiến lược giao dịch tự động chín muồi.
Nó giống một khung nghiên cứu xoay vòng chủ đề AI hơn, đã có thể kết nối "chân dung cổ phiếu, tình báo ngành, bất thường giá, truy tìm tin tức, xác minh thống kê, tín hiệu giao dịch", nhưng vẫn cần tiếp tục kiểm chứng.
Những phần cần hoàn thiện nhất là một số mảng sau.
(1) Chất lượng chân dung cổ phiếu. Mô hình lớn đôi khi đưa các cổ phiếu rìa vào basket, do đó cần ép buộc asset_type để tránh lẫn ETF, chỉ số, quỹ khu vực.
(2) Chất lượng tin tức. Tin tức BraveSearch lấy về không phải lúc nào cũng là tin tức cốt lõi; mô hình cần đánh giá tin nào thực sự có thể giải thích giá.
(3) Mối quan hệ thống kê. Mối quan hệ theo dõi lịch sử không đảm bảo hiệu quả trong tương lai, cần liên tục review.
(4) Quản lý rủi ro giao dịch. Trước khi giao dịch tự động, phải bổ sung các giới hạn: vị thế cấp tài khoản, mức tiếp xúc ngành, thua lỗ trong ngày và xác nhận khớp lệnh.
Vì vậy hiện tại thích hợp hơn khi chạy ở chế độ notify, để xem chất lượng của các tín hiệu đã xác nhận.
Nếu sau một thời gian thấy rằng tín hiệu thực sự có thể giải thích biến động thị trường, và follower thường xuyên có phản ứng, thì mới cân nhắc giao dịch thực tế với khối lượng nhỏ.
Lời kết
Chiến lược này không phải để AI trực tiếp đặt lệnh.
Tôi luôn cho rằng vị trí thích hợp nhất của mô hình lớn trong hệ thống giao dịch không phải là "bảo tôi mua gì", mà là giúp chúng ta xử lý các cấu trúc thông tin khó duy trì thủ công: hoạt động kinh doanh của công ty, phân loại ngành, tin tức thời gian thực, giải thích sự kiện, đường đi của dòng vốn, các đối tượng có khả năng bị ảnh hưởng.
Giao dịch thực sự vẫn phải dựa vào giá, thống kê và quản lý rủi ro.
Chiến lược định lượng trong thời đại AI không chỉ đơn thuần là thêm một giao diện mô hình lớn, mà phải kết nối dữ liệu thời gian thực, bản đồ chủ đề, tin tức sự kiện, cấu trúc giá, thực thi giao dịch và giải thích sau đó.
Chiến lược bản đồ cổ phiếu AI này là một nỗ lực theo hướng đó.
Mã nguồn chiến lược: AI 产业链 TradFi 合约图谱交易系统
- 1





