• 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 13: Exploration, Scanning & Optimization – Hàm Barssince
Bài 13: Exploration, Scanning & Optimization – Hàm Barssince

Xem nhanh:

  • Hàm BarsSince() Trong AFL: Theo Dõi Các Sự Kiện
  • Sử Dụng Exploration Để Gỡ Lỗi Và Hiểu Hàm BarsSince()
  • Lợi Ích Của Việc Gỡ Lỗi Bằng Exploration

Hàm BarsSince() Trong AFL: Theo Dõi Các Sự Kiện

Hàm BarsSince() là một hàm đa năng trong AFL (Amibroker Formula Language), được sử dụng để đếm số thanh nến (bars) kể từ lần cuối cùng một điều kiện cụ thể trở thành True. Đây là một công cụ tuyệt vời để đo lường khoảng thời gian từ một sự kiện quan trọng nào đó.

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

BarsSince(Condition);

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

  • Condition: Là một biểu thức logic (Boolean expression) trả về True (1) hoặc False (0). BarsSince() sẽ đếm số thanh nến kể từ lần cuối cùng Condition này là True.

Điều gì xảy ra khi Condition là True?

  • Khi Condition trở thành True tại một thanh nến, BarsSince() sẽ trả về 0 tại thanh nến đó.
  • Sau đó, nó sẽ tăng giá trị lên 1, 2, 3, v.v., cho mỗi thanh nến tiếp theo cho đến khi Condition lại trở thành True.

Đây là một hàm quan trọng nhưng đôi khi có thể khó hình dung cách nó hoạt động mà không có ví dụ thực tế.


Sử Dụng Exploration Để Gỡ Lỗi Và Hiểu Hàm BarsSince()

Để minh họa cách BarsSince() hoạt động, chúng ta sẽ xây dựng một Exploration dựa trên một điều kiện đơn giản: tín hiệu cắt nhau giữa giá đóng cửa (Close) và đường trung bình động EMA 20.

Logic điều kiện của chúng ta:

  • Điều kiện CrossDetect: Giá đóng cửa (Close) cắt lên hoặc cắt xuống đường EMA 20 (EMA(Close, 20)).
  • Chúng ta sẽ sử dụng BarsSince(CrossDetect) để xem số thanh nến kể từ lần cuối cùng có tín hiệu cắt nhau này.

Mã AFL cho Exploration:

// Bước 1: Định nghĩa bộ lọc cho Exploration (hiển thị tất cả các mã)
Filter = 1; // Filter = 1 để xem xét tất cả các mã chứng khoán

// Bước 2: Tính toán Đường trung bình động EMA 20
EMA20 = EMA(Close, 20);

// Bước 3: Định nghĩa điều kiện cắt nhau giữa Close và EMA20
// Hàm Cross() trả về True khi có sự cắt nhau (cả cắt lên và cắt xuống)
CrossDetect = Cross(Close, EMA20) OR Cross(EMA20, Close);

// Bước 4: Áp dụng hàm BarsSince() với điều kiện CrossDetect
BarsSinceCross = BarsSince(CrossDetect);

// Bước 5: Tạo biến màu sắc dựa trên điều kiện CrossDetect (để trực quan)
// Màu xanh nếu có Cross, màu đỏ nếu không
ConditionColor = IIf(CrossDetect, colorGreen, colorRed);

// Bước 6: Thêm các cột dữ liệu vào kết quả Exploration để kiểm tra
// AddColumn(Array, Caption, Format, ForeColor, BackColor)

// Cột 1: Giá Đóng Cửa (để đối chiếu)
AddColumn(Close, "Gia Dong Cua", 1.2);

// Cột 2: Đường EMA 20 (để đối chiếu)
AddColumn(EMA20, "EMA 20", 1.2);

// Cột 3: Biểu thức CrossDetect (để xem khi nào điều kiện cắt nhau là True/False)
// Sử dụng màu nền để dễ nhận biết True/False
AddColumn(CrossDetect, "Cross Detect (1=True, 0=False)", 1.0, colorDefault, ConditionColor);

// Cột 4: Kết quả của hàm BarsSince() - Đây là cột chúng ta muốn debug/hiểu
// Màu chữ trắng, màu nền theo ConditionColor để liên hệ với CrossDetect
AddColumn(BarsSinceCross, "Bars Since Cross", 1.0, colorWhite, ConditionColor);
Ví dụ

Ví dụ

Kết quả

Kết quả

Cách thực hiện Exploration để gỡ lỗi:

  1. Chèn code: Dán đoạn mã AFL trên vào cửa sổ “Formula Editor” trong Amibroker.
  2. Thiết lập Analysis:
    • Trong tab “Analysis”, chọn “Interval” (ví dụ: Daily).
    • Chọn “Range” là All quotes hoặc một số lượng N last bars cụ thể để xem dữ liệu lịch sử của một mã chứng khoán bất kỳ.
  3. Chạy Explore: Nhấn nút “Explore”.

Phân tích kết quả để hiểu BarsSince():

Khi bạn xem kết quả Exploration, hãy chú ý đến cột “Cross Detect” và “Bars Since Cross”:

  • Khi “Cross Detect” là 1 (True, ô màu xanh lá): Bạn sẽ thấy “Bars Since Cross” hiển thị 0. Điều này xác nhận rằng BarsSince() trả về 0 tại chính thanh nến mà điều kiện trở thành True.
  • Khi “Cross Detect” là 0 (False, ô màu đỏ): “Bars Since Cross” sẽ tăng dần lên 1, 2, 3, v.v. Điều này cho thấy BarsSince() đang đếm số thanh nến kể từ lần cuối cùng có tín hiệu cắt nhau.

Bạn có thể đối chiếu các giá trị này với biểu đồ giá và đường EMA 20 để thấy rõ sự tương quan giữa điều kiện cắt nhau và giá trị của BarsSince().


Lợi Ích Của Việc Gỡ Lỗi Bằng Exploration

Việc sử dụng Exploration để gỡ lỗi và hiểu sâu hơn về cách các hàm AFL hoạt động mang lại nhiều lợi ích:

  • Học tập thực tế: Giúp bạn nắm bắt các khái niệm lập trình và cách các hàm phức tạp hoạt động trong môi trường thực tế, nhanh hơn nhiều so với việc chỉ đọc tài liệu.
  • Tăng cường kỹ năng debugging: Rèn luyện khả năng xác định vấn đề và tìm ra nguyên nhân lỗi trong code của bạn.
  • Xây dựng hệ thống vững chắc: Giúp bạn tự tin hơn khi phát triển các chỉ báo và hệ thống giao dịch tự động phức tạp, vì bạn hiểu rõ từng “viên gạch” cấu thành nên chúng.

Exploration là một công cụ vô cùng linh hoạt, không chỉ dùng để sàng lọc cổ phiếu mà còn là một trợ thủ gỡ lỗi code AFL hiệu quả. Hãy tận dụng nó để nâng cao kỹ năng lập trình và phân tích của bạn trên Amibroker!

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