• 24ºC, Clear
  • Wednesday, 21st January, 2026
  • Trang Chủ
  • Bộ Lọc
  • Nhận Định Thị Trường
  • Phân Tích Doanh Nghiệp
  • Amibroker
    • Code AFL
    • Tự học Amibroker
  • Kiến Thức Đầu Tư
    • Chỉ Báo Kỹ Thuật
    • Phân Tích Cơ Bản
    • Phương Pháp Sóng Elliot
    • Phương Pháp Wyckoff/VSA
    • Vĩ Mô Liên Thị Trường
  • Liên hệ
  • Giới Thiệu
Mới Nhất
  • Phân tích VN-Index ngày 11/08
  • Phân tích HAH
  • Bài 46: Trở thành nhà giao dịch chuyên nghiệp
  • Bài 45: GFX Functions – Bảng trạng thái giao dịch Amibroker
  1. Trang chủ
  2. Amibroker
  3. Tự học Amibroker
  4. Bài 8: Built In Functions – Xây Dựng Chỉ Báo Pivot Point & CPR Trong AFL
Bài 8: Built In Functions – Xây Dựng Chỉ Báo Pivot Point & CPR Trong AFL

Xem nhanh:

  • Xây Dựng Chỉ Báo Pivot Point & CPR Trong AFL
  • Pivot Point & CPR Là Gì?
  • Công Thức Tính Toán Pivot Point & CPR
  • Xây Dựng Code AFL Cho Chỉ Báo Pivot Point & CPR
  • Lưu Chỉ Báo Vào Amibroker

Xây Dựng Chỉ Báo Pivot Point & CPR Trong AFL

Chào mừng các bạn! Trong video này, chúng ta sẽ cùng nhau tạo ra chỉ báo Pivot Point và Central Pivot Range (CPR) tùy chỉnh đầu tiên của mình bằng ngôn ngữ lập trình AFL (Amibroker Formula Language). Đây là một trong những chỉ báo được sử dụng rộng rãi bởi cả nhà giao dịch và nhà đầu tư để xác định các mức hỗ trợ và kháng cự quan trọng trong ngày.


Pivot Point & CPR Là Gì?

Pivot Point (PP) và Central Pivot Range (CPR) là các chỉ báo dự đoán các mức hỗ trợ và kháng cự tiềm năng trong phiên giao dịch hiện tại dựa trên dữ liệu giá của phiên trước đó (giá cao nhất, thấp nhất và đóng cửa). Chúng không phải là chỉ báo dao động mà là các đường tĩnh, không thay đổi trong suốt phiên giao dịch.

  • Pivot Point (PP): Điểm trung tâm, thường là mức kháng cự/hỗ trợ đầu tiên.
  • Central Pivot Range (CPR): Bao gồm ba đường (Top Central Pivot – TC, Pivot Point – PP, Bottom Central Pivot – BC) tạo thành một vùng. Độ rộng của CPR cho thấy xu hướng và sự biến động của ngày hôm trước:
    • CPR rộng: Ngày trước đó là một ngày có xu hướng mạnh, dự báo ngày hiện tại có thể ít biến động hơn.
    • CPR hẹp: Ngày trước đó là một ngày đi ngang (sideways), dự báo ngày hiện tại có thể có xu hướng rõ ràng hơn.
  • Các mức Hỗ trợ (Support – S1, S2, S3) và Kháng cự (Resistance – R1, R2, R3): Được tính toán dựa trên Pivot Point và dữ liệu phiên trước.

Công Thức Tính Toán Pivot Point & CPR

Các công thức cơ bản để tính toán Pivot Point, CPR và các mức hỗ trợ/kháng cự đều dựa vào giá cao nhất (High), thấp nhất (Low) và đóng cửa (Close) của phiên trước đó:

  • Central Pivot Point (CP): (PreviousDayHigh + PreviousDayLow + PreviousDayClose) / 3
  • Bottom Central Pivot (BC): (PreviousDayHigh + PreviousDayLow) / 2
  • Top Central Pivot (TC): (CP - BC) + CP
  • Kháng cự 1 (R1): (2 * CP) - PreviousDayLow
  • Hỗ trợ 1 (S1): (2 * CP) - PreviousDayHigh
  • … (và các công thức cho R2, R3, S2, S3)

Điểm mấu chốt: Để có được PreviousDayHigh, PreviousDayLow, PreviousDayClose, chúng ta sẽ sử dụng hàm TimeFrameGetPrice() trong AFL mà chúng ta đã học ở bài trước. Đây là hàm lý tưởng để lấy dữ liệu từ ngày hôm trước, tháng trước hoặc thậm chí năm trước một cách chính xác.


Xây Dựng Code AFL Cho Chỉ Báo Pivot Point & CPR

Dưới đây là đoạn code mẫu để xây dựng chỉ báo này trong Amibroker:

Nếu bạn muốn tôi viết lại toàn bộ code CPR indicator mà bạn đã cung cấp, thì đây là toàn bộ code đã được comment chi tiết:

// Phần 1: Lấy dữ liệu giá Cao nhất (High), Thấp nhất (Low) và Đóng cửa (Close) của ngày hôm trước
// Sử dụng TimeFrameGetPrice để lấy giá từ khung thời gian "inDaily" (ngày) và -1 để chỉ ngày trước đó.
PDH = TimeFrameGetPrice("H", inDaily, -1); // PDH: Giá Cao nhất ngày hôm trước (Previous Day's High)
PDL = TimeFrameGetPrice("L", inDaily, -1); // PDL: Giá Thấp nhất ngày hôm trước (Previous Day's Low)
PDC = TimeFrameGetPrice("C", inDaily, -1); // PDC: Giá Đóng cửa ngày hôm trước (Previous Day's Close)

// Phần 2: Tính toán các thành phần của Central Pivot Range (CPR)
// CPR là một vùng gồm ba đường: Pivot Point, Bottom CPR và Top CPR.
CPR = (PDH + PDL + PDC) / 3;             // CPR: Điểm Pivot Trung tâm (Central Pivot Point)
BCPR = (PDH + PDL) / 2;                  // BCPR: Đáy của vùng CPR (Bottom Central Pivot Range)
TCPR = (CPR - BCPR) + CPR;               // TCPR: Đỉnh của vùng CPR (Top Central Pivot Range)

// Phần 3: Tính toán các mức kháng cự (Resistance Levels)
// Các mức kháng cự dự kiến mà giá có thể gặp khó khăn khi vượt qua.
R1 = (2 * CPR) - PDL;                    // R1: Mức kháng cự thứ nhất
R2 = CPR + (PDH - PDL);                  // R2: Mức kháng cự thứ hai
R3 = PDH + 2 * ((CPR - PDL));            // R3: Mức kháng cự thứ ba

// Phần 4: Tính toán các mức hỗ trợ (Support Levels)
// Các mức hỗ trợ dự kiến mà giá có thể tìm thấy sự bật lên.
S1 = (2 * CPR) - PDH;                    // S1: Mức hỗ trợ thứ nhất
S2 = CPR - (PDH - PDL);                  // S2: Mức hỗ trợ thứ hai
S3 = PDL - 2 * (PDH - CPR);              // S3: Mức hỗ trợ thứ ba

// Phần 5: Định nghĩa các tham số vẽ (Plot Parameters) và kiểu dáng đường
// Các tham số này cho phép người dùng tùy chỉnh màu sắc và kiểu dáng đường vẽ từ cửa sổ Parameters của AmiBroker.
PARAM0 = ParamStyle("STYLE", styleLine | styleThick); // PARAM0: Kiểu dáng đường (đường thẳng, dày)
PARAM1 = ParamColor("CPRCOLOR", colorYellow);         // PARAM1: Màu sắc mặc định cho các đường CPR (màu vàng)
PARAM2 = ParamColor("RESISTANCE", colorGreen);        // PARAM2: Màu sắc mặc định cho các đường Kháng cự (màu xanh lá)
PARAM3 = ParamColor("SUPPORT", colorRed);             // PARAM3: Màu sắc mặc định cho các đường Hỗ trợ (màu đỏ)

// Phần 6: Vẽ các thành phần của CPR lên biểu đồ
Plot(CPR, "CPR", PARAM1, PARAM0);       // Vẽ đường CPR
Plot(TCPR, "TCPR", PARAM1, PARAM0);     // Vẽ đường TCPR
Plot(BCPR, "BCPR", PARAM1, PARAM0);     // Vẽ đường BCPR

// Phần 7: Vẽ các mức kháng cự lên biểu đồ
Plot(R1, "R1", PARAM2, PARAM0);         // Vẽ đường R1
Plot(R2, "R2", PARAM2, PARAM0);         // Vẽ đường R2
Plot(R3, "R3", PARAM2, PARAM0);         // Vẽ đường R3

// Phần 8: Vẽ các mức hỗ trợ lên biểu đồ
Plot(S1, "S1", PARAM3, PARAM0);         // Vẽ đường S1
Plot(S2, "S2", PARAM3, PARAM0);         // Vẽ đường S2
Plot(S3, "S3", PARAM3, PARAM0);         // Vẽ đường S3
VÍ dụ

VÍ dụ

Kết quả

Kết quả

Lưu ý khi lập trình AFL:

  • Sử dụng biến tạm: Thay vì lặp lại cùng một hàm (ví dụ: TimeFrameGetPrice(High, inDaily, -1)) nhiều lần, hãy lưu kết quả vào một biến (ví dụ: PreviousDayHigh) và sử dụng biến đó. Điều này giúp code gọn gàng hơn, dễ đọc hơn và hiệu quả hơn.
  • Kiểm tra dấu ngoặc: Khi viết các công thức phức tạp, hãy luôn kiểm tra kỹ các cặp dấu ngoặc đơn () để đảm bảo thứ tự ưu tiên của phép tính là đúng.
  • Chỉ báo tĩnh: Pivot Point và CPR là các chỉ báo “tĩnh” trong ngày. Tức là, các giá trị này được tính toán một lần vào đầu phiên dựa trên dữ liệu của phiên trước và không thay đổi trong suốt ngày giao dịch hiện tại, bất kể giá có biến động như thế nào.

Lưu Chỉ Báo Vào Amibroker

Sau khi hoàn thành code, bạn cần lưu chỉ báo này để có thể sử dụng dễ dàng:

  1. Trong “Formula Editor”, chọn File -> Save As…
  2. Điều hướng đến thư mục Amibroker/Formulas/Indicators.
  3. Đặt tên cho file (ví dụ: Central CPR.afl) và nhấn Save.

Bây giờ, chỉ báo Central CPR của bạn sẽ xuất hiện trong tab “Indicators” của cửa sổ “Charts”. Bạn chỉ cần kéo và thả nó vào biểu đồ giá để sử dụng. Bạn cũng có thể nhấp chuột phải vào biểu đồ và chọn “Parameters…” (hoặc Ctrl + R) để tùy chỉnh màu sắc và kiểu vẽ của các đường nếu bạn đã sử dụng hàm ParamColor() hoặc ParamStyle() trong code.


Chỉ báo Pivot Point và CPR là những công cụ phân tích kỹ thuật cơ bản nhưng mạnh mẽ, giúp bạn xác định các vùng giá quan trọng cho các quyết định giao dịch. Việc tự xây dựng chỉ báo này trong AFL giúp bạn hiểu sâu hơn về cơ chế của chúng và cách áp dụng Amibroker Formula Language để tùy chỉnh chiến lược của mình.

  • trancotam
❮ Prev Next ❯
Chia sẻ: Facebook WhatsApp Twitter
Chia sẻ với ứng dụng khác

Tin Xem Nhiều

Bài 1: Chiến Lược Bảo Vệ Vốn Hiệu Quả Khi Đầu Tư (Phần 1)
Chỉ Báo Kỹ Thuật
Bài 1: Chiến Lược Bảo Vệ Vốn Hiệu Quả Khi Đầu Tư…
21 Tháng 5, 2025
Phân tích BFC
Phân Tích Doanh Nghiệp
Phân tích BFC
14 Tháng 7, 2025
Bài 46: Trở thành nhà giao dịch chuyên nghiệp
Tự học Amibroker
Bài 46: Trở thành nhà giao dịch chuyên nghiệp
22 Tháng 6, 2025
Phân tích HAH
Phân Tích Doanh Nghiệp
Phân tích HAH
15 Tháng 7, 2025
Bảng công cụ phân tích thị trường
Chưa phân loại
Bảng công cụ phân tích thị trường
13 Tháng 5, 2025
Donation
Phóng to ảnh

TADOSO là nền tảng chia sẻ kiến thức và kinh nghiệm đầu tư tài chính, đặc biệt trong lĩnh vực chứng khoán, nhằm kết nối và nâng cao tư duy cho nhà đầu tư cá nhân tại Việt Nam. Với triết lý "Tạo dựng – Đồng hành – Sở hữu", TADOSO hướng đến xây dựng cộng đồng học hỏi minh bạch, trung lập, không bị chi phối bởi tổ chức tài chính nào.

Newsletter

Hãy để lại mail để chúng tôi có thể phục vụ bạn tốt hơn

Donation - Buy me a coffee

Donation

Copyright © All rights reserved | This template is made with by Tran Co Tam

  • Terms of use
  • Privacy Policy
  • Contact
Zalo Messenger
×

Liên hệ