• 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 4: Built In Functions – hàm IIf AFL
Bài 4: Built In Functions – hàm IIf AFL

Xem nhanh:

  • Khám Phá Hàm IIf() Trong AFL: Sức Mạnh của Lập Trình Điều Kiện và Ứng Dụng Nâng Cao
  • Hàm IIf() Là Gì và Cách Thức Hoạt Động?
  • Ví Dụ Ứng Dụng Cơ Bản của IIf(): Tô Màu Tín Hiệu Giao Dịch
  • Ứng Dụng Nâng Cao của IIf(): Gộp Mảng Dữ Liệu Dựa Trên Điều Kiện
  • Tối Ưu Hóa Code và Nâng Cao Kỹ Năng Lập Trình AFL

Khám Phá Hàm IIf() Trong AFL: Sức Mạnh của Lập Trình Điều Kiện và Ứng Dụng Nâng Cao

Chào mừng các bạn! Trong video này, chúng ta sẽ đi sâu vào một hàm AFL cực kỳ linh hoạt và mạnh mẽ: IIf() (Immediate If). Hàm này cho phép bạn thực hiện lập trình điều kiện trực tiếp trong ngôn ngữ lập trình AFL (Amibroker Formula Language), giúp bạn tạo ra các chỉ báo và chiến lược giao dịch phức tạp hơn trên nền tảng Amibroker.


Hàm IIf() Là Gì và Cách Thức Hoạt Động?

Hàm IIf() là một hàm điều kiện cơ bản, hoạt động tương tự như câu lệnh If-Else trong các ngôn ngữ lập trình khác. Nó trả về một giá trị dựa trên việc một điều kiện (biểu thức) là đúng hay sai.

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

IIf(Expression, TruePart, FalsePart);

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

  • Expression (Biểu thức/Điều kiện): Đây là điều kiện mà IIf() sẽ kiểm tra. Nếu điều kiện này là True (hoặc 1), hàm sẽ trả về TruePart. Nếu điều kiện là False (hoặc 0), hàm sẽ trả về FalsePart.
    • Ví dụ: Close > Open (nến xanh), Cross(Close, HighestHigh) (giá cắt lên mức cao nhất).
  • TruePart: Giá trị hoặc mảng dữ liệu mà hàm sẽ trả về nếu Expression là True.
  • FalsePart: Giá trị hoặc mảng dữ liệu mà hàm sẽ trả về nếu Expression là False.

Lưu ý quan trọng: Trong Expression, bạn chỉ có thể sử dụng các điều kiện logic trả về True hoặc False (hoặc 1/0). Tuy nhiên, ở TruePart và FalsePart, bạn có thể truyền vào số, mảng dữ liệu (arrays), hoặc thậm chí các màu sắc (colorGreen, colorRed), mang lại sự linh hoạt cao.


Ví Dụ Ứng Dụng Cơ Bản của IIf(): Tô Màu Tín Hiệu Giao Dịch

Hãy cùng xem xét ví dụ về việc sử dụng hàm IIf() để tô màu biểu đồ dựa trên một điều kiện giao dịch. Giả sử chúng ta có điều kiện Cross(Close, PreviousHHV) (giá đóng cửa cắt lên mức cao nhất của 50 nến trước đó, đã dùng hàm Ref() để dịch chuyển).

Chúng ta muốn:

  • Nếu điều kiện Cross(Close, PreviousHHV) là True (tức có tín hiệu mua), hãy hiển thị màu xanh lá (colorGreen).
  • Nếu điều kiện là False (không có tín hiệu mua), hãy hiển thị màu đỏ (colorRed).

Mã AFL:

// Giả sử PreviousHHV đã được tính toán như trong bài trước
// PreviousHHV = Ref(HHV(High, 50), -1);

BuyCondition = Cross(Close, PreviousHHV); // Định nghĩa điều kiện mua

// Sử dụng IIf để chọn màu
SignalColor = IIf(BuyCondition, colorGreen, colorRed);

// Vẽ đường HHV đã dịch chuyển và áp dụng màu sắc dựa trên điều kiện
Plot(PreviousHHV, "HHV Breakout", SignalColor, styleLine | styleThick);
Ví dụ

Ví dụ

Kết quả

Kết quả

Khi áp dụng mã này, bạn sẽ thấy đường PreviousHHV trên biểu đồ sẽ chuyển sang màu xanh lá tại những thời điểm có tín hiệu mua (giá cắt lên) và màu đỏ khi không có tín hiệu. Điều này giúp trực quan hóa tín hiệu giao dịch một cách rõ ràng. Đặc biệt, hàm Cross() chỉ trả về True khi có sự giao cắt từ dưới lên (hoặc trên xuống), chứ không phải khi giá đã nằm trên/dưới.


Ứng Dụng Nâng Cao của IIf(): Gộp Mảng Dữ Liệu Dựa Trên Điều Kiện

Hàm IIf() không chỉ dùng để tô màu, mà còn cực kỳ hữu ích trong việc gộp hai hoặc nhiều mảng dữ liệu thành một mảng duy nhất dựa trên một điều kiện. Điều này giúp bạn tạo ra các chỉ báo động, phản ánh xu hướng thị trường.

Logic ví dụ:

  • Nếu giá đóng cửa (Close) lớn hơn EMA 50 (thị trường đang bullish), chúng ta muốn hiển thị giá trị cao nhất (HHV) của 20 phiên gần nhất.
  • Nếu giá đóng cửa (Close) nhỏ hơn hoặc bằng EMA 50 (thị trường đang bearish), chúng ta muốn hiển thị giá trị thấp nhất (LLV) của 20 phiên gần nhất.

Mã AFL:

// Bước 1: Tính toán EMA 50
EMA50 = EMA(Close, 50);

// Bước 2: Tính toán HHV và LLV 20 phiên
HHV20 = HHV(High, 20);
LLV20 = LLV(Low, 20);

// Bước 3: Định nghĩa điều kiện thị trường
IsBullish = Close > EMA50;

// Bước 4: Sử dụng IIf để gộp mảng dữ liệu và gán màu sắc
OutputArray = IIf(IsBullish, HHV20, LLV20); // Nếu bullish thì lấy HHV20, ngược lại lấy LLV20
OutputColor = IIf(IsBullish, colorGreen, colorRed); // Nếu bullish thì màu xanh, ngược lại màu đỏ

// Bước 5: Vẽ EMA 50 và mảng kết quả
Plot(EMA50, "EMA 50", colorBlue, styleLine);
Plot(OutputArray, "HHV/LLV Theo Xu Huong", OutputColor, styleLine | styleThick);
Ví dụ

Ví dụ

Kết quả

Kết quả

Cách hoạt động:

Khi bạn áp dụng mã này, đường OutputArray sẽ tự động thay đổi dựa trên vị trí của giá so với EMA 50:

  • Khi giá nằm trên EMA 50, đường này sẽ hiển thị như đường HHV (màu xanh lá).
  • Khi giá nằm dưới EMA 50, đường này sẽ hiển thị như đường LLV (màu đỏ).

Điều này cho phép bạn có một cái nhìn trực quan về các mức cao/thấp quan trọng dựa trên xu hướng thị trường, thay vì hiển thị cả hai đường cùng lúc làm rối biểu đồ. Đây là một ví dụ mạnh mẽ về cách hàm IIf() giúp tối ưu hóa chỉ báo trong Amibroker.


Tối Ưu Hóa Code và Nâng Cao Kỹ Năng Lập Trình AFL

Hàm IIf() là một công cụ thiết yếu để bạn viết các đoạn mã AFL linh hoạt, mạnh mẽ và gọn gàng hơn. Việc thành thạo hàm IIf() giúp bạn biến các logic phức tạp thành các chỉ báo và chiến lược giao dịch hiệu quả.

Hãy tiếp tục thử nghiệm và khám phá các cách kết hợp khác nhau của IIf() với các hàm AFL khác để tạo ra những giải pháp độc đáo phù hợp với nhu cầu giao dị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ệ