• 25º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 2: Built In Functions – Plot Function
Bài 2: Built In Functions – Plot Function

Xem nhanh:

  • 1. Hàm Plot(): Trực Quan Hóa Dữ Liệu trên Biểu Đồ
  • 2. Hàm Ref(): Tham Chiếu Dữ Liệu Lịch Sử Hoặc Tương Lai
  • Lời kết

Hôm nay chúng ta sẽ cùng tìm hiểu sâu hơn về một số chức năng cơ bản và được sử dụng rộng rãi trong ngôn ngữ lập trình AFL (Amibroker Formula Language). Đây là những chức năng thiết yếu mà bạn sẽ gặp ở hầu hết mọi đoạn mã AFL, dù là khi xây dựng chỉ báo, hệ thống giao dịch hay thực hiện kiểm định ngược (backtesting).


1. Hàm Plot(): Trực Quan Hóa Dữ Liệu trên Biểu Đồ

Hàm Plot() là một trong những chức năng quan trọng nhất, giúp bạn trực quan hóa các mảng dữ liệu (arrays) đã được tính toán lên biểu đồ. Như chúng ta đã biết, các hàm như EMA() sẽ trả về một mảng giá trị (ví dụ: mảng các giá trị đường trung bình động). Hàm Plot() sẽ giúp hiển thị mảng này thành một đường trên biểu đồ của bạn.

Cú pháp cơ bản của hàm Plot():

Plot(ARRAY, "Name", Color, Style = styleLine | styleThick);

Ví dụ thực tế với Plot() và EMA():

Giả sử chúng ta đã tính toán đường EMA 20 kỳ của giá đóng cửa và lưu vào biến MyEMA:

MyEMA = EMA(Close, 20); // Tính EMA 20 của giá đóng cửa
Plot(MyEMA, "EMA 20", colorGreen, styleLine | styleThick); // Vẽ đường EMA 20 lên biểu đồ
Ví dụ

Ví dụ


Giải thích các tham số:

  • ARRAY: Mảng dữ liệu mà bạn muốn vẽ lên biểu đồ. Trong ví dụ này là MyEMA.
  • "Name": Tên của đường được vẽ trên biểu đồ, hiển thị trong chú giải. Tên này phải được đặt trong dấu ngoặc kép (ví dụ: "EMA 20").
  • Color: Màu sắc của đường. Có nhiều màu được định nghĩa sẵn trong AFL như colorGreen, colorRed, colorBlue, colorLightBlue, v.v.
  • Style (Tùy chọn): Định dạng đường vẽ. Đây là một tham số mặc định (default parameter). Nếu bạn không chỉ định, hàm sẽ sử dụng kiểu mặc định. Bạn có thể kết hợp nhiều kiểu khác nhau bằng cách sử dụng toán tử | (OR), ví dụ: styleLine | styleThick (đường thẳng và đậm). Các kiểu khác có thể là styleDotted (đường chấm), styleHistogram (biểu đồ cột), v.v.

Lưu ý: Các tham số như ARRAY, Name, và Color là tham số bắt buộc vì chúng cần thiết cho mỗi lần vẽ. Trong khi đó, Style là tham số tùy chọn. Bạn có thể bỏ qua nó nếu muốn sử dụng cài đặt mặc định.

Để xem kết quả, bạn chỉ cần sao chép đoạn mã trên vào trình soạn thảo AFL (ví dụ: “Formula Editor” trong Amibroker), sau đó áp dụng (Apply) vào biểu đồ.

Kết quả

Kết quả


2. Hàm Ref(): Tham Chiếu Dữ Liệu Lịch Sử Hoặc Tương Lai

Hàm Ref() được sử dụng để dịch chuyển (shift) một mảng dữ liệu tới phía trước hoặc phía sau theo số lượng phiên (periods) nhất định. Điều này cực kỳ hữu ích khi bạn muốn so sánh dữ liệu hiện tại với dữ liệu của các phiên trước đó hoặc dự đoán dữ liệu trong tương lai (trong môi trường backtesting).

Cú pháp cơ bản của hàm Ref():

Code snippet

Ref(ARRAY, Periods);

Ví dụ minh họa:

Giả sử chúng ta có một mảng dữ liệu giá đóng cửa như sau: [1, 2, 3, 4, 5]

  • Ref(Close, -1): Dịch chuyển mảng về phía sau 1 phiên. Kết quả sẽ là: [NA, 1, 2, 3, 4]. (NA: Not Available, vì không có dữ liệu trước đó để dịch chuyển vào vị trí đầu tiên).
    • Ứng dụng phổ biến: So sánh giá hiện tại với giá đóng cửa của ngày hôm trước. Ví dụ: Close > Ref(Close, -1) (Giá đóng cửa hôm nay cao hơn hôm qua).
  • Ref(Close, -10): Dịch chuyển mảng về phía sau 10 phiên.
  • Ref(Close, 1): Dịch chuyển mảng về phía trước 1 phiên. Kết quả sẽ là: [2, 3, 4, 5, NA].

Ứng dụng và hạn chế:

  • Hàm Ref() được sử dụng rộng rãi trong kiểm định ngược (backtesting) các chiến lược giao dịch để so sánh giá hiện tại với giá trong quá khứ, giúp mô phỏng hành vi thị trường và đánh giá hiệu quả chiến lược.
  • Không thể sử dụng trong giao dịch thời gian thực (live market) khi dịch chuyển về phía trước (ví dụ: Ref(Close, 1)). Lý do là chúng ta không thể có dữ liệu giá của phiên giao dịch tương lai ngay tại thời điểm hiện tại.

Ví dụ kết hợp Ref() và Plot():

Hãy thử vẽ đường EMA 20 kỳ của giá đóng cửa dịch chuyển lùi 10 phiên:

MyEMA = EMA(Close, 20); // Đường EMA 20 kỳ gốc (màu xanh lá cây)
MyEMAReflected = Ref(MyEMA, -10); // Đường EMA 20 kỳ dịch chuyển lùi 10 phiên (màu đỏ)

Plot(MyEMA, "EMA 20 Goc", colorGreen, styleLine | styleThick);
Plot(MyEMAReflected, "EMA 20 (Dich chuyen -10)", colorRed, styleLine | styleThick);
Ví dụ

Ví dụ

Kết quả

Kết quả


Khi áp dụng đoạn mã này, bạn sẽ thấy một đường EMA màu xanh lá cây và một đường màu đỏ song song, nhưng đường màu đỏ sẽ bị dịch chuyển về phía sau 10 phiên so với đường màu xanh lá cây.


Lời kết

Các hàm Plot() và Ref() là hai công cụ cơ bản nhưng cực kỳ mạnh mẽ trong AFL, giúp bạn hiển thị dữ liệu và thao tác với các chuỗi thời gian một cách linh hoạt. Việc nắm vững cách sử dụng chúng sẽ là nền tảng vững chắc để bạn xây dựng các chỉ báo và hệ thống giao dịch phức tạp hơn.

  • 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ệ