# 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** và **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 các cổ phiếu dạng này là 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. Nhà đầu tư nên tránh mua những cổ phiếu thuộc nhóm này vì chúng đang yếu hơn thị trường chung.

**Tham số (Lưu ý:** period chỉ tồn tại khi không truyền from\_date và ngược lại). Và phải lựa chọn 1 trong 2 cách truyền này)**:**

| 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 |                | Có       |
| benchmark   | Index benchmark để tính RS và RM                    | str           |                | Có       |
| 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           |                | Có       |
| to\_date    | Mốc thời gian lấy dữ liệu gần nhất.                 | str           | datetime.now() | Không    |
| period      | Số nến lịch sử gần nhất cần lấy.                    | int           |                | 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()

```python
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

```python
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ụ

```python
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)
```

<figure><img src="/files/B1rhioYVcnU1VDmnlxeL" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.fiinquant.vn/ham-va-cong-thuc/6.-chien-luoc-and-cong-cu/6.2.-bieu-do-suc-manh-gia-rrg.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
