6.2. Biểu đồ sức mạnh giá (RRG)

Bằng cách nhập danh sách mã cổ phiếu cần tính, tên index benchmark, hàm sẽ tính ra hiệu suất tương đối của cổ phiếu chỉ số chuẩn hoặc một nhóm cổ phiếu cụ thể để từ đó xác định hiệu suất tương đối của một cổ phiếu để phân loại thuộc 1 trong 4 trạng thái sau:

  • Tăng trưởng (Góc phần tư tăng trưởng): Cổ phiếu trong góc phần tư này đang thể hiện sức mạnh tương đối mạnh mẽ và động lực tích cực so với mức chuẩn. Là những cổ phiếu đang hoạt động tốt hơn thị trường hoặc lĩnh vực rộng lớn hơn và được coi là cổ phiếu dẫn đầu về hiệu suất giá. Những cổ phiếu này được coi là ứng cử viên chốt lời hoặc tiếp tục nắm giữ lợi nhuận tiềm năng.

  • Tích lũy (Góc phần tư tích lũy): Cổ phiếu trong góc phần tư này đang có dấu hiệu cải thiện về sức mạnh tương đối, cho thấy rằng chúng đang lấy đà và rất dễ chuyển sang trạng thái tăng trưởng. Những cổ phiếu này được coi là ứng cử viên Mua tiềm năng.

  • Suy yếu (Góc phần tư suy yếu): Các cổ phiếu trong góc phần tư này đang có sự suy giảm sức mạnh tương đối so với mức chuẩn. Mặc dù chúng có thể vẫn đang trong xu hướng tăng nhưng đà tăng của chúng đang chậm lại hoặc mất dần sức mạnh so với giai đoạn trước. Những cổ phiếu này được phân loại là có tiềm năng giảm giá hoặc bán khống. Việc chốt lời các cổ phiếu dạng này là cần thiết.

  • Giảm giá (Góc phần tư giảm giá): Cổ phiếu trong góc phần tư này đang hoạt động kém hơn so với điểm chuẩn. Chúng đang có sức mạnh tương đối yếu và có thể đang gặp khó khăn tăng trưởng so với các cổ phiếu khác. Nhà đầu tư nên tránh mua những cổ phiếu thuộc nhóm này vì chúng đang yếu hơn thị trường chung.

Tham số:

Tên tham số
Mô tả
Kiểu dữ liệu
Mặc định
Bắt buộc

tickers

Danh sách mã được viết in hoa.

str hoặc list

benchmark

Index benchmark để tính RS và RM

str

by

Đơn vị thời gian(1m, 5m, 15m, 30m, 1h, 2h, 4h, 1d).

str

1d

Không

from_date

Mốc thời gian lấy dữ liệu xa nhất.

str

to_date

Mốc thời gian lấy dữ liệu gần nhất.

str

datetime.now()

Không

Class nhận dữ liệu là Fetch_Trading_Data và 3 phương thức sau:

Tên phương thức
Mô tả

get()

Nhận dữ liệu dạng dataframe trả ra có các thuộc tính mô tả như bên dưới.

filter()

Nhận dữ liệu dạng dataframe sau đó lọc ra các dòng dữ liệu thỏa mãn các điều kiện do người dùng truyền vào

plot()

Được dùng sau khi nhận dữ liệu từ phương thức get, thực hiện trực quan hóa biểu đồ

Ví dụ lấy dữ liệu RRG - dùng phương thức get()

from FiinQuantX import FiinSession

username = 'REPLACE_WITH_YOUR_USER_NAME'
password = 'REPLACE_WITH_YOUR_PASS_WORD'                     
                     
client = FiinSession(username=username, password=password).login()
rrg = client.RRG(
    tickers=["ACB"],
    benchmark="VNINDEX",
    by='1d',
    from_date="2024-10-10"
)
df_rrg = rrg.get()
print(df_rrg)

Dữ liệu trả ra có các thuộc tính:

Tên thuộc tính
Mô tả
Kiểu dữ liệu

ticker

Tên mã.

str

timestamp

Thời gian giao dịch.

str

close

Giá đóng cửa.

float

rs

Sức mạnh (S-Strength)

float

rm

Xu hướng (S-treand)

float

phase

Giai đoạn thuộc 1 trong 4 trạng thái sau: Weakening, Lagging, Improving và Leading

str

Ví dụ bộ lọc RRG dựa trên tiêu chí do người dùng truyền vào - dùng phương thức filter()

Các tham số của phương thức filter:

Tên tham số
Mô tả
Kiểu dữ liệu
Mặc định
Bắt buộc

tickers

Danh sách mã muốn lọc được viết in hoa.

str hoặc list

Không

date

Ngày muốn xem RRG

str

Không

phase

Lọc ra những ngày có trạng thái là Weakening hoặc Lagging hoặc Improving hoặc Leading

str

Không

rs_min

Số sức mạnh rs tối thiểu

float

Không

rs_max

Số sức mạnh rs tối đa

float

Không

rm_min

Số xu hướng rm tối thiểu

float

Không

rm_max

Số xu hướng rm tối đa

float

Không

changed_only

Sàng lọc những ngày đổi trạng thái

bool

False

Không

  • Ví dụ lọc các giai đoạn Leading có chỉ số sức mạnh RS và chỉ số xu hướng RM tối thiểu là 101 của mã ACB

from FiinQuantX import FiinSession

username = 'REPLACE_WITH_YOUR_USER_NAME'
password = 'REPLACE_WITH_YOUR_PASS_WORD'                     
                     
client = FiinSession(username=username, password=password).login()
rrg = client.RRG(
    tickers=["ACB"],
    benchmark="VNINDEX",
    by='1d',
    from_date="2024-10-10"
)
leading_high_rs = rrg.filter(
    rs_min=101,
    rm_min=101,
)
print(leading_high_rs)

Dữ liệu trả ra có các thuộc tính tương tự phương thức get()

Trực quan hóa biểu đồ RRG - dùng phương thức plot() (Lưu ý: Buộc phải lấy dữ liệu dùng phương thức get() rồi sau đó mới dùng được phương thức plot())

  • Ví dụ

from FiinQuantX import FiinSession

username = 'REPLACE_WITH_YOUR_USER_NAME'
password = 'REPLACE_WITH_YOUR_PASS_WORD'                     
                     
client = FiinSession(username=username, password=password).login()
rrg = client.RRG(
    tickers=["ACB"],
    benchmark="VNINDEX",
    by='1d',
    from_date="2024-10-10"
)
df_rrg = rrg.get()
rrg.plot(trail_length=30)

Last updated