• 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 5: Built In Functions – hàm IIF lồng nhau
Bài 5: Built In Functions – hàm IIF lồng nhau

Xem nhanh:

  • Khám Phá IIf() Lồng Nhau (Nested IIf) Trong AFL: Nâng Tầm Lập Trình Điều Kiện
  • Khi Nào Cần Dùng IIf() Lồng Nhau?
  • Ví Dụ Thực Tế: Tô Màu RSI và EMA Với IIf() Lồng Nhau
  • Một Số Lưu Ý Quan Trọng Khi Lập Trình AFL

Khám Phá IIf() Lồng Nhau (Nested IIf) Trong AFL: Nâng Tầm Lập Trình Điều Kiện

Chào mừng các bạn! Trong video này, chúng ta sẽ đi sâu vào một kỹ thuật lập trình nâng cao nhưng cực kỳ mạnh mẽ trong ngôn ngữ lập trình AFL (Amibroker Formula Language): sử dụng hàm IIf() lồng nhau (Nested IIf). Nếu như hàm IIf() cơ bản cho phép bạn xử lý hai trường hợp (đúng/sai) cho một điều kiện, thì IIf lồng nhau sẽ mở ra khả năng xử lý nhiều điều kiện và nhiều kết quả đầu ra khác nhau, giúp bạn tạo ra các chỉ báo tùy chỉnh và chiến lược giao dịch phức tạp hơn trên Amibroker.


Khi Nào Cần Dùng IIf() Lồng Nhau?

Bạn đã biết hàm IIf() hoạt động với một Expression (điều kiện), trả về TruePart nếu điều kiện đúng hoặc FalsePart nếu điều kiện sai. Nhưng điều gì sẽ xảy ra nếu chúng ta có nhiều hơn hai điều kiện cần kiểm tra? Ví dụ:

  • Điều kiện 1: Nếu A, thì làm X.
  • Điều kiện 2: Nếu không phải A, nhưng là B, thì làm Y.
  • Điều kiện 3: Nếu không phải A và cũng không phải B, thì làm Z.

Trong những trường hợp như vậy, chúng ta không thể sử dụng một hàm IIf() đơn lẻ. Thay vào đó, chúng ta sẽ lồng một hàm IIf() khác vào phần FalsePart của hàm IIf() bên ngoài, tạo thành cấu trúc IIf lồng nhau.


Ví Dụ Thực Tế: Tô Màu RSI và EMA Với IIf() Lồng Nhau

Để hiểu rõ hơn về IIf lồng nhau, hãy cùng xây dựng một ví dụ thực tế dựa trên các chỉ báo phổ biến như RSI (Relative Strength Index) và EMA (Exponential Moving Average).

Logic điều kiện:

Chúng ta muốn thay đổi màu sắc của chỉ báo RSI trên biểu đồ dựa trên các điều kiện thị trường sau:

  1. Xu hướng Tăng (Bullish): Nếu RSI > 60 VÀ giá đóng cửa (Close) > EMA 20.
    • Kết quả mong muốn: Màu xanh lá (colorGreen).
  2. Xu hướng Giảm (Bearish): Nếu RSI < 40 VÀ giá đóng cửa (Close) < EMA 20.
    • Kết quả mong muốn: Màu đỏ (colorRed).
  3. Xu hướng Trung Lập/Không rõ ràng (Neutral): Nếu không thuộc hai điều kiện trên (RSI nằm giữa 40 và 60).
    • Kết quả mong muốn: Màu trắng (colorWhite).

Mã AFL sử dụng IIf() lồng nhau:

Để thực hiện logic này, chúng ta sẽ kết hợp các hàm RSI(), EMA() và toán tử logic AND bên trong các hàm IIf() lồng nhau.

Code snippet

// Bước 1: Khởi tạo các chỉ báo cần thiết
// Hàm RSI(Periods) - Ví dụ sử dụng RSI 14 kỳ, Period có thể thay đổi được từ tham số biểu đồ
RSI_Value = RSI(Param("RSI Period", 14, 2, 50, 1));
EMA_Value = EMA(Close, Param("EMA Period", 20, 5, 200, 1)); // EMA 20 kỳ

// Bước 2: Định nghĩa các điều kiện sử dụng toán tử AND
// Điều kiện Bullish: RSI > 60 VÀ Close > EMA 20
ConditionBullish = RSI_Value > 60 AND Close > EMA_Value;

// Điều kiện Bearish: RSI < 40 VÀ Close < EMA 20
ConditionBearish = RSI_Value < 40 AND Close < EMA_Value;

// Bước 3: Sử dụng IIf lồng nhau để xác định màu sắc
// Logic: Nếu Bullish -> Green; Ngược lại (Nếu Bearish -> Red; Ngược lại -> White)
PlotColor = IIf( ConditionBullish,
                  colorGreen, // Nếu Bullish là True thì trả về màu xanh
                  IIf( ConditionBearish,
                       colorRed,     // Nếu Bullish là False VÀ Bearish là True thì trả về màu đỏ
                       colorWhite )  // Nếu cả Bullish và Bearish đều là False thì trả về màu trắng
                );

// Bước 4: Vẽ chỉ báo RSI lên biểu đồ và áp dụng màu sắc đã tạo
Plot(RSI_Value, "RSI", PlotColor, styleLine | styleThick);

// (Tùy chọn) Vẽ thêm đường EMA để dễ đối chiếu
// Plot(EMA_Value, "EMA 20", colorBlue, styleLine);
Ví dụ

Ví dụ

Kết quả

Kết quả

Giải thích cấu trúc IIf() lồng nhau:

IIf( Điều kiện 1,                 // Nếu Điều kiện 1 đúng
     Kết quả nếu Điều kiện 1 đúng,
     IIf( Điều kiện 2,           // Nếu Điều kiện 1 sai, kiểm tra Điều kiện 2
          Kết quả nếu Điều kiện 2 đúng,
          Kết quả nếu cả 1 và 2 đều sai // Kết quả cuối cùng nếu không có điều kiện nào đúng
        )
   );

Trong ví dụ trên, chúng ta đã lồng hàm IIf(ConditionBearish, colorRed, colorWhite) vào phần FalsePart của hàm IIf() đầu tiên. Điều này giúp chương trình lần lượt kiểm tra các điều kiện và trả về màu sắc tương ứng.


Một Số Lưu Ý Quan Trọng Khi Lập Trình AFL

  • Toán tử AND và OR:
    • AND: Cả hai điều kiện ở hai bên của toán tử AND phải cùng True thì toàn bộ biểu thức mới là True. (Condition1 AND Condition2)
    • OR: Chỉ cần một trong hai điều kiện là True thì toàn bộ biểu thức đã là True. (Condition1 OR Condition2)
  • Dấu ngoặc đơn (): Luôn kiểm tra kỹ các cặp dấu ngoặc đơn. Đây là lỗi phổ biến nhất khi sử dụng các hàm lồng nhau. Amibroker thường sẽ báo lỗi “Unexpected expecting )” nếu bạn thiếu hoặc thừa dấu ngoặc.
  • Khoảng trắng: Trong AFL, khoảng trắng (spaces, tabs) không ảnh hưởng đến hoạt động của code (không như Python). Bạn có thể dùng chúng để định dạng code dễ đọc hơn.
  • Trực quan hóa: Việc thêm các chỉ báo phụ (như EMA trong ví dụ này) lên biểu đồ ban đầu có thể giúp bạn dễ dàng xác nhận xem code của mình có đang hoạt động đúng theo logic mong muốn hay không.

IIf lồng nhau là một công cụ thiết yếu để bạn tạo ra các đoạn mã AFL linh hoạt, mạnh mẽ và gọn gàng hơn, giúp bạn phát triển các chỉ báo tùy chỉnh và chiến lược giao dịch phức tạp trên nền tảng Amibroker. Hãy tiếp tục thực hành và khám phá để nâng cao kỹ năng lập trình Amibroker của mình 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ệ