8.4. Volume Indicators (Chỉ báo khối lượng)

8.4.1. MFI (Money Flow Index)

MFI là chỉ số phản ánh sức mạnh dòng tiền của một cổ phiếu trong một khoản thời gian nhất định, được phân tích dựa vào khối lượng giao dịch. Khoảng thời gian được xem xét theo ngày, tuần tháng, và thường tính toán theo giá trị 14 giai đoạn.

def mfi(high: pandas.core.series.Series, low: pandas.core.series.Series, close: pandas.core.series.Series, volume: pandas.core.series.Series, window: int = 14)

Tham số

Tên tham số
Mô tả
Kiểu dữ liệu
Giá trị mặc định

high

Cột dữ liệu chứa các giá trị cột giá cao nhất để tính toán MFI.

pandas.Series

low

Cột dữ liệu chứa các giá trị cột giá thấp nhất để tính toán MFI.

pandas.Series

close

Cột dữ liệu chứa các giá trị cột giá đóng cửa để tính toán MFI.

pandas.Series

volume

Cột dữ liệu chứa các giá trị cột khối lượng giao dịch để tính toán MFI.

pandas.Series

window

Số lượng điểm dữ liệu sử dụng trong phép tính MFI.

int

14

Ví dụ:

fi = client.FiinIndicator()
df['mfi'] = fi.mfi(df['high'], df['low'], df['close'], df['volume'], window=14)
print(df)

8.4.2. OBV (On Balance Volume)

OBV là chỉ báo khối lượng có chức năng đo lường khối lượng giao dịch tích lũy qua các phiên, từ đó cho thấy cổ phiếu đang có xu hướng được mua hay bán. Nếu phiên hôm nay là một phiên tăng giá thì khối lượng sẽ được cộng thêm vào chỉ số OBV. Ngược lại, khối lượng sẽ được trừ ra khi hôm nay là một phiên giao dịch giảm điểm.

def obv(column: pandas.core.series.Series, volume: pandas.core.series.Series)

Tham số

Tên tham số
Mô tả
Kiểu dữ liệu
Giá trị mặc định

column

Cột dữ liệu (series) chứa các giá trị về giá để tính toán OBV.

pandas.Series

volume

Cột dữ liệu chứa các giá trị cột khối lượng giao dịch để tính toán OBV.

pandas.Series

Ví dụ:

fi = client.FiinIndicator()
df['obv'] = fi.obv(df['close'], df['volume'])
print(df)

8.4.3. VWAP (Volume Weighted Adjusted Price)

VWAP là giá trung bình theo trọng số khối lượng, giá trung bình của một cổ phiếu tính theo tổng khối lượng giao dịch. VWAP được sử dụng để tính giá trung bình của một cổ phiếu trong một khoảng thời gian.

Giá bình quân gia quyền theo khối lượng giúp so sánh giá hiện tại của cổ phiếu với giá chuẩn, giúp nhà đầu tư dễ dàng quyết định thời điểm tham gia và thoát khỏi thị trường. Ngoài ra, VWAP có thể hỗ trợ các nhà đầu tư xác định cách đầu tư của họ đối với một cổ phiếu và thực hiện chiến lược giao dịch phù hợp vào đúng thời điểm.

def vwap(high: pandas.core.series.Series, low: pandas.core.series.Series, close: pandas.core.series.Series, volume: pandas.core.series.Series, window: int = 14)

Tham số:

Tên tham số
Mô tả
Kiểu dữ liệu
Giá trị mặc định

high

Cột dữ liệu chứa các giá trị cột giá cao nhất để tính toán VWAP.

pandas.Series

low

Cột dữ liệu chứa các giá trị cột giá thấp nhất để tính toán VWAP.

pandas.Series

close

Cột dữ liệu chứa các giá trị cột giá đóng cửa để tính toán VWAP.

pandas.Series

volume

Cột dữ liệu chứa các giá trị cột khối lượng giao dịch để tính toán VWAP.

pandas.Series

window

Số lượng điểm dữ liệu sử dụng trong phép tính VWAP.

int

14

Ví dụ:

fi = client.FiinIndicator()
df['vwap'] = fi.vwap(df['high'], df['low'], df['close'], df['volume'], window=14)
print(df)

8.4.4. Volume Profile

Volume Profile là công cụ phân tích kỹ thuật hiển thị phân bố khối lượng giao dịch tại các mức giá khác nhau trong một giai đoạn cụ thể.

Chỉ báo giúp nhà đầu tư nhận biết các vùng giá có khối lượng giao dịch lớn (vùng giá quan trọng, hỗ trợ/kháng cự) và vùng giá ít quan tâm trên biểu đồ.

def VolumeProfile(close: pandas.Series, volume: pandas.Series, high: pandas.Series = None, low: pandas.Series = None, bins: int = 20, use_typical: bool = False)

Tham số:

Tên tham số
Mô tả
Kiểu dữ liệu
Giá trị mặc định

close

Cột giá đóng cửa dùng để xác định mức giá giao dịch.

pandas.Series

volume

Cột khối lượng giao dịch tương ứng với từng mức giá.

pandas.Series

high

Cột giá cao nhất (sử dụng khi dùng Typical Price).

pandas.Series

low

Cột giá thấp nhất (sử dụng khi dùng Typical Price).

pandas.Series

bins

Số lượng khoảng giá để chia biểu đồ Volume Profile.

int

20

use_typical

Nếu True, dùng giá Typical = (High + Low + Close)/3 thay cho Close.

bool

False

Ví dụ:

fi = client.FiinIndicator()
vp = VolumeProfile(close=data["close"], volume=data["volume"], high=data["high"], low=data["low"], bins=20, use_typical=True)
print(vp.sort_values("volume", ascending=False))

8.4.5. Accumulation Distribution Line (Chaikin)

Accumulation/Distribution Line (A/D Line), hay còn gọi là Đường Tích lũy/Phân phối, là một chỉ báo kỹ thuật dựa trên khối lượng được phát triển bởi Marc Chaikin.

Chỉ báo này đo lường dòng chảy tiền tệ (Money Flow) vào hay ra khỏi một tài sản bằng cách so sánh giá đóng cửa của một kỳ so với phạm vi giá của kỳ đó, sau đó nhân với khối lượng giao dịch. Nó dựa trên nguyên tắc: khối lượng đi trước giá.

def adl(high: pandas.Series, low: pandas.Series, close: pandas.Series, volume: pandas.Series)

Tham số:

Tên tham số
Mô tả
Kiểu dữ liệu
Giá trị mặc định

high

Cột giá cao nhất của mỗi phiên.

pandas.Series

low

Cột giá thấp nhất của mỗi phiên.

pandas.Series

close

Cột giá đóng cửa, dùng để xác định vị trí giá trong phiên.

pandas.Series

volume

Cột khối lượng giao dịch trong mỗi phiên.

pandas.Series

Ví dụ:

fi = client.FiinIndicator()
df['adl'] = fi.adl(df["high"], df["low"], df["close"], df["volume"])
print(df)

8.4.6. Price Volume Trend

Price Volume Trend (PVT), hay còn gọi là Xu hướng Giá Khối lượng, là một chỉ báo phân tích kỹ thuật dựa trên khối lượng. Nó được thiết kế để đo lường áp lực mua và bán bằng cách kết hợp cả sự thay đổi giákhối lượng giao dịch.

PVT là một chỉ báo tích lũy (cumulative), tương tự như On-Balance Volume (OBV), nhưng nó được xem là chính xác hơn OBV vì nó điều chỉnh khối lượng được cộng hoặc trừ vào tổng tích lũy dựa trên phần trăm thay đổi của giá.

def pvt(close: pandas.Series, volume: pandas.Series)

Tham số:

Tên tham số
Mô tả
Kiểu dữ liệu
Giá trị mặc định

close

Cột giá đóng cửa của mỗi phiên.

pandas.Series

volume

Cột khối lượng giao dịch tương ứng.

pandas.Series

Ví dụ:

fi = client.FiinIndicator()
df['pvt'] = fi.pvt(df["close"], df["volume"])
print(vp.sort_values("volume", ascending=False))

Last updated