Cách dùng Tâm lý thị trường

Hiểu cách đọc giá trị, tránh hai cách đọc sai phổ biến nhất, rồi đưa vào chiến lược và tự quét ngưỡng.

Cập nhật lần cuối 2026-10
Điểm chính
  • Tâm lý thị trường (MS) là chỉ báo do Blave tự xây dựng, đo trader hợp đồng đang lạc quan hay bi quan hơn bình thường: trên 0 là lạc quan hơn bình thường, dưới 0 là bi quan hơn bình thường.
  • Giá trị không có giới hạn trên hay dưới: quanh 0 là mức bình thường, giá trị tuyệt đối càng lớn càng bất thường. Từ ±2 trở lên là hiếm, từ ±3 trở lên là cực đoan, mọi coin dùng cùng một thước đo; hãy tự quét ngưỡng bằng backtest.
  • 0 là mức bình thường, không phải không có tâm lý: với coin lâu nay thiên về lạc quan, lạc quan chính là bình thường của nó, nên giá trị lại nằm quanh 0. Cùng là +2, ở các coin khác nhau tâm lý thực tế phía sau có thể rất khác.
  • Đây là tín hiệu nền thay đổi chậm. Hiện chưa có chiến lược chính thức nào dùng Tâm lý thị trường, nên mọi cách dùng trong bài đều là minh họa, chưa backtest.

Trader hợp đồng trông rất lạc quan, vậy có nên đuổi theo lệnh long không? Tâm lý thị trường chỉ cho bạn biết trader "lạc quan hơn bình thường của coin này bao nhiêu", chứ không cho biết họ lạc quan đến mức nào theo nghĩa tuyệt đối — đây là chỗ nhiều người đọc sai nhất.

Tâm lý thị trường là gì?

Tâm lý thị trường (Market Sentiment, MS) là chỉ báo tâm lý do Blave tự xây dựng, đo trader hợp đồng đang nghiêng về lạc quan hay bi quan, và so với mức bình thường của chính coin đó.

Giá trị không có giới hạn trên hay dưới: quanh 0 là mức bình thường, giá trị tuyệt đối càng lớn càng bất thường. Từ ±2 trở lên là hiếm, từ ±3 trở lên là cực đoan, mọi coin dùng cùng một thước đo; hãy tự quét ngưỡng bằng backtest. Huy hiệu trạng thái của Studio dữ liệu phân cấp theo các ngưỡng sau:

Giá trịHuy hiệu Studio dữ liệuÝ nghĩa
≥ +3Lạc quan thái quáLạc quan hơn bình thường rất nhiều, thuộc giá trị cực đoan
+2 ~ +3Rất lạc quanLạc quan hơn bình thường rõ rệt
+0.5 ~ +2Lạc quanLạc quan hơn bình thường
−0.5 ~ +0.5Trung lậpGần như bình thường
≤ −0.5Bi quan / Rất bi quan / Bi quan thái quáĐối xứng với phía dương, ngưỡng là −0.5, −2, −3: bi quan hơn bình thường

Phân bố thực tế không đối xứng, đuôi trên sâu hơn đuôi dưới. Dưới đây là phân vị Blave đo thực tế, nến 1 giờ, giai đoạn 2024-09-15~2026-09-14, mỗi giờ lấy một giá trị (n = 17,520):

Coinp1p50p99Tỷ lệ thời gian trên 0
BTC−2.84+0.03+4.0051.0%
ETH−2.98+0.18+3.6455.1%
SOL−2.59+0.13+3.7954.1%
DOGE−2.04+0.34+4.0260.3%

Cả bốn coin đều có hơn nửa thời gian trên 0, DOGE đến 60.3%; p99 đều trên +3.6, còn p1 chỉ đến −2.0~−3.0. Đừng dùng cùng một giá trị tuyệt đối cho ngưỡng long và short, đổi coin thì phải tính lại.

Hai điểm quan trọng nhất

0 là mức bình thường của coin, không phải không có tâm lý

Tâm lý thị trường so với mức bình thường của chính coin đó. Với coin lâu nay thiên về lạc quan, lạc quan chính là bình thường của nó, và giá trị sẽ quay về quanh 0 — lúc này 0 nghĩa là "gần như bình thường", không phải "không ai lạc quan cũng không ai bi quan".

Ngược lại, khi một coin từ rất lạc quan lùi về mức lạc quan thông thường, giá trị có thể chuyển sang âm, dù trader thực ra vẫn nghiêng về long. Cùng là +2, ở coin khác hay giai đoạn khác, tâm lý thực tế phía sau cũng có thể rất khác.

Lạc quan hơn bình thường không có nghĩa là sắp tăng

Tâm lý thị trường mô tả tâm lý hiện tại bất thường đến mức nào, không phải dự báo giá. Sau khi lạc quan cực độ, giá có thể tiếp tục tăng hoặc đảo chiều; Blave chưa kiểm chứng trường hợp nào xảy ra thường hơn.

Sau khi giá coin tăng mạnh hoặc giảm mạnh trong thời gian ngắn, giá trị cũng dễ bị kéo cao hoặc thấp theo. Lúc đó một phần sự bất thường đến từ chính giá, đừng chỉ dựa vào nó làm lý do vào lệnh.

Trước khi đọc số, hãy hỏi hai câu: coin này bình thường đã thiên về lạc quan hay bi quan chưa? Gần đây giá có tăng mạnh hay giảm mạnh không? Cả hai câu trả lời đều làm thay đổi ý nghĩa của cùng một giá trị.

Dựng chiến lược với Tâm lý thị trường thế nào?

Hiện chưa có chiến lược chính thức nào dùng Tâm lý thị trường, nên cả ba cách dưới đây đều là minh họa, chưa backtest. Các số ±0.5 và 3 trong code mượn ngưỡng huy hiệu của Studio dữ liệu làm điểm xuất phát, không phải kết quả quét tham số; cách quét xem Quét ngưỡng thế nào.

1. Ngưỡng + vùng đệm: giữ vị thế khi lạc quan hơn bình thường

Cách viết trực tiếp nhất: vào Long khi Tâm lý thị trường vượt ngưỡng vào lệnh, và đóng về không vị thế khi xuống dưới ngưỡng thoát. Vùng đệm giữa hai ngưỡng giúp chiến lược không vào ra liên tục khi giá trị dao động quanh một mức.

Python
ENTRY_TH = 0.5    # minh họa: ngưỡng huy hiệu Lạc quan
EXIT_TH  = -0.5   # minh họa: ngưỡng huy hiệu Bi quan

def compute_signals(df, entry_th=ENTRY_TH, exit_th=EXIT_TH):
    # df['MS'] = giá trị Tâm lý thị trường của coin
    signal = pd.Series(np.nan, index=df.index)
    signal[df['MS'] > entry_th] = 1.0   # lạc quan hơn bình thường → mở long
    signal[df['MS'] < exit_th]  = 0.0   # bi quan hơn bình thường → đứng ngoài
    return signal

Tâm lý thị trường thay đổi chậm, không phản ứng với biến động giá trong vài phút. Nó chưa được backtest; cả ngưỡng lẫn hướng (thuận xu hướng hay ngược xu hướng) đều phải tự quét và kiểm chứng.

2. Giá trị cực đoan làm kiểm soát rủi ro: không mở vị thế mới khi Lạc quan thái quá hoặc Bi quan thái quá

Giá trị chạm ±3 nghĩa là tâm lý đã rất cực đoan. Một cách dùng thận trọng là không coi nó là tín hiệu vào lệnh, mà thêm vào điều kiện vào lệnh của chiến lược sẵn có, khi cực đoan thì tạm không mở vị thế mới:

Python
# minh họa: không vào lệnh khi |MS| >= 3 (quá lạc quan hoặc quá bi quan)
too_hot = df['MS'].abs() >= 3
entry = compute_entry(df) & ~too_hot

Đây không phải tín hiệu đảo chiều và cũng chưa backtest: Blave chưa kiểm chứng giá sẽ đảo chiều sau khi giá trị chạm ±3, cũng chưa kiểm chứng việc tránh giá trị cực đoan giúp cải thiện hiệu quả. ±3 là so với mức bình thường của coin; coin bình thường rất ổn định thì biến động nhỏ cũng có thể chạm ±3. Thay compute_entry bằng điều kiện vào lệnh trong chiến lược gốc của bạn.

3. Bộ lọc: Tâm lý thị trường chậm định hướng, chỉ báo nhanh chọn thời điểm

Tâm lý thị trường thay đổi chậm, hợp làm bộ lọc nền: chỉ khi nó lớn hơn 0 mới chấp nhận tín hiệu long từ chỉ báo cửa sổ ngắn (ví dụ Cường độ Taker); khi Tâm lý thị trường quay về dưới 0 thì đứng ngoài. Dưới đây là minh họa cấu trúc, thay compute_fast_entry bằng điều kiện của bạn:

Python
ms = fetch_market_sentiment(SYMBOL, INTERVAL, START, END, hdrs)
df['MS'] = ms['alpha']
regime_long = df['MS'] > 0              # minh họa: chỉ long khi lạc quan hơn bình thường
fast_entry = compute_fast_entry(df)     # ví dụ điều kiện Cường độ Taker khung ngắn
signal = pd.Series(np.nan, index=df.index)
signal[regime_long & fast_entry] = 1.0
signal[~regime_long] = 0.0

Tổ hợp này chưa được backtest và ngưỡng 0 chỉ để minh họa. Trước khi dùng thật, hãy quét tham số và xem hiệu suất sau phí.

Chọn chu kỳ nến thế nào?

Tâm lý thị trường chỉ có một thiết lập: chu kỳ nến (period), chọn 5min, 15min, 1h, 4h, 8h, 1d, ngắn nhất 5 phút. Nó không có tham số cửa sổ thời gian như Săn cá voi; chu kỳ chỉ quyết định bao lâu lấy giá trị một lần, không làm giá trị thay đổi nhanh hơn, chọn 5min thì vẫn thấy tâm lý thay đổi chậm.

Chu kỳPhạm vi hiển thị mặc định trên Studio dữ liệuLưu ý
5min / 15min5min: 3 ngày; 15min: 7 ngàyVẽ dày nhất, nhưng bản thân giá trị thay đổi chậm, không hợp để bắt sóng ngắn
1h / 4h1h: 14 ngày; 4h: 30 ngàyDùng khi chiến lược kiểm tra vài giờ một lần
8h / 1d8h: 60 ngày; 1d: 180 ngàyHợp để xem xu hướng tâm lý trong một khoảng thời gian dài hơn

Chọn chu kỳ theo tần suất chiến lược kiểm tra, đừng kỳ vọng chu kỳ ngắn sẽ bắt được sóng ngắn. Dữ liệu bắt đầu từ 2020-01-01 (coin niêm yết sau thì từ ngày niêm yết); coin mới niêm yết khi vừa có dữ liệu thì mức bình thường chưa hình thành, giai đoạn đầu giá trị ít đáng tham khảo hơn.

Quét ngưỡng thế nào?

Các số ±0.5, 3, 0 ở trên chỉ là điểm xuất phát. Cách vững hơn là liệt kê một dãy giá trị ứng viên cho ngưỡng vào lệnh và ngưỡng thoát lệnh, backtest từng cặp, rồi chọn một vùng mà kết quả đều không tệ, thay vì chọn ô cao nhất.

Python
results = []
for entry_th in [0.5, 1.0, 1.5, 2.0, 2.5]:
    for exit_th in [-1.0, -0.5, 0.0]:
        signal = compute_signals(df, entry_th, exit_th)
        results.append((entry_th, exit_th, backtest(signal)))   # thay backtest bằng hàm backtest của bạn; so sánh từng cặp sau khi trừ phí

Ngưỡng phải quét riêng cho từng coin, từng chu kỳ nến, không dùng lại thiết lập khác; vì sao chọn vùng phẳng thay vì điểm cao nhất, xem Tránh overfitting.

Xem trên Studio dữ liệu ở đâu?

TrangHiển thị gì
Tổng quanĐồng hồ bán nguyệt tâm lý chung cùng hai bảng xếp hạng lạc quan và bi quan, các cột gồm coin, biến động 24 giờ, chỉ số và trạng thái.
Nhóm ngànhBảng xếp hạng Tâm lý thị trường theo từng nhóm ngành.
Lịch sửBiểu đồ cột Tâm lý thị trường của một coin chồng lên giá, chọn chu kỳ 5min đến 1d, kèm trường stat. Người dùng không phải Pro sẽ thấy dữ liệu 7 ngày gần nhất bị hiển thị trễ.

Kết hợp với chỉ báo nào?

Đây là ý tưởng kết hợp, không phải kết luận đã kiểm chứng:

Kết hợpMục đích
MS + Săn cá voiKhi tâm lý tăng, dùng Săn cá voi để xem khối lượng mở có đồng thời tăng bất thường không, giúp phán đoán sau sự lạc quan có kèm vị thế mới hay không.
MS + Cường độ TakerTâm lý thị trường phản ứng chậm, dùng Cường độ Taker để xem mua bán chủ động trong cửa sổ ngắn, bù phần biến động ngắn hạn mà nó không thấy.

Lấy dữ liệu qua API hoặc Blave Agent cần lưu ý gì?

Endpoint API là GET /market_sentiment/get_alpha với symbol, period và ngày bắt đầu/kết thúc (start_date, end_date); trong Blave Agent là hàm fetch_market_sentiment. symbol điền mã hợp đồng vĩnh cửu USDT (ví dụ BTCUSDT). Chỉ trả về nến đã đóng, với các trường timestamp, alpha và stat, không kèm giá. Không truyền ngày bắt đầu thì lấy 365 ngày gần nhất, khoảng dài hơn 365 ngày sẽ tự bị cắt.

Đối tượng stat mô tả giá trị mới nhất:

TrườngÝ nghĩa
up_probXác suất giá tăng sau 24 giờ do mô hình ước tính; là giá trị ước tính, không phải tỷ lệ thắng được đảm bảo.
avg_up_return /
avg_down_return
Mức tăng trung bình khi giá tăng sau 24 giờ và mức giảm trung bình khi giá giảm, không phân biệt Tâm lý thị trường cao hay thấp.
exp_valueup_prob × avg_up_return + (1 − up_prob) × avg_down_return, là số thập phân, không phải phần trăm.
is_data_sufficientDữ liệu lịch sử có đủ hay không; khi là false thì các con số này chỉ để tham khảo.
Hãy nhớ: Tâm lý thị trường là dữ liệu tham khảo, không phải tín hiệu mua bán. "Cao thấp" chỉ là so với mức bình thường của coin, stat là ước tính, không phải tỷ lệ thắng — mọi ngưỡng đều phải kiểm chứng bằng backtest của chính bạn.