• 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 32: BackTesting – Giao dịch đa khung thời gian Amibroker
Bài 32: BackTesting – Giao dịch đa khung thời gian Amibroker

Xem nhanh:

  • Giao Dịch Đa Khung Thời Gian Trong Amibroker AFL: Kỹ Thuật Nâng Cao Để Nâng Tầm Chiến Lược
  • Tại Sao Cần Giao Dịch Đa Khung Thời Gian (Multi-Timeframe Trading)?
  • Các Hàm Đa Khung Thời Gian Quan Trọng Trong AFL
  • 1. TimeFrameSet( Interval )
  • 2. TimeFrameRestore()
  • 3. TimeFrameExpand( Array, Interval )
  • Ví Dụ Thực Tế: EMA 5 Phút trên Biểu đồ 1 Phút
  • Xây Dựng Chiến Lược Đa Khung Thời Gian

Giao Dịch Đa Khung Thời Gian Trong Amibroker AFL: Kỹ Thuật Nâng Cao Để Nâng Tầm Chiến Lược

Chào các bạn! Trong thế giới giao dịch, việc kết hợp thông tin từ nhiều khung thời gian khác nhau là một chiến lược phổ biến mà nhiều nhà giao dịch chuyên nghiệp sử dụng để đưa ra quyết định sáng suốt hơn. Trong Amibroker Formula Language (AFL), chúng ta hoàn toàn có thể hiện thực hóa điều này thông qua các hàm đa khung thời gian (Multi-Timeframe Functions). Kỹ thuật này cho phép bạn trích xuất dữ liệu từ một khung thời gian lớn hơn và sử dụng nó để phân tích hoặc tạo tín hiệu trên khung thời gian nhỏ hơn.

Tại Sao Cần Giao Dịch Đa Khung Thời Gian (Multi-Timeframe Trading)?

Việc phân tích và ra quyết định dựa trên nhiều khung thời gian mang lại nhiều lợi ích:

  • Xác nhận xu hướng: Khung thời gian lớn hơn (ví dụ: Daily, Hourly) cho thấy xu hướng tổng thể, trong khi khung thời gian nhỏ hơn (ví dụ: 1 phút, 5 phút) cung cấp tín hiệu vào lệnh chính xác hơn theo xu hướng đó.
  • Lọc tín hiệu nhiễu: Các tín hiệu nhiễu trên khung thời gian nhỏ có thể được lọc bỏ nếu chúng đi ngược lại xu hướng của khung thời gian lớn. Điều này giúp tăng tỷ lệ thắng và giảm giao dịch không cần thiết.
  • Tăng độ tin cậy của tín hiệu: Khi một tín hiệu xuất hiện đồng thời hoặc được xác nhận trên nhiều khung thời gian, độ tin cậy của tín hiệu đó sẽ tăng lên đáng kể.

Quy tắc vàng: Bạn luôn có thể lấy dữ liệu từ khung thời gian lớn hơn và sử dụng trên khung thời gian nhỏ hơn. Tuyệt đối không làm ngược lại (không thể lấy dữ liệu từ khung thời gian nhỏ hơn để hiển thị trên khung thời gian lớn hơn một cách chính xác).

Các Hàm Đa Khung Thời Gian Quan Trọng Trong AFL

Để thực hiện giao dịch đa khung thời gian, Amibroker cung cấp hai hàm cốt lõi:

1. TimeFrameSet( Interval )

  • Chức năng: Hàm này chuyển đổi khung thời gian hiện tại của tất cả các tính toán AFL sau đó sang Interval được chỉ định.
  • Tham số Interval:
    • Đối với khung thời gian theo phút: "in 5 minutes", "in 15 minutes", "in 60 minutes" (hoặc "in hourly").
    • Đối với khung thời gian lớn hơn: "in daily", "in weekly", "in monthly".
    • Bạn cũng có thể dùng các giá trị số nguyên để chỉ định phút (ví dụ: 5 cho 5 phút, 15 cho 15 phút, 60 cho 1 giờ).
  • Lưu ý: Sau khi sử dụng TimeFrameSet(), tất cả các biến và phép tính tiếp theo trong code sẽ dựa trên khung thời gian mới này, cho đến khi bạn chuyển đổi lại.

2. TimeFrameRestore()

  • Chức năng: Hàm này đưa khung thời gian tính toán trở lại khung thời gian gốc (khung thời gian mà biểu đồ hoặc cửa sổ phân tích đang được đặt).
  • Quan trọng: Luôn luôn sử dụng TimeFrameRestore() sau khi bạn đã hoàn tất việc trích xuất dữ liệu từ khung thời gian khác. Nếu không, các phép tính tiếp theo của bạn sẽ vẫn bị mắc kẹt ở khung thời gian đã thay đổi bởi TimeFrameSet().

3. TimeFrameExpand( Array, Interval )

  • Chức năng: Đây là hàm quan trọng nhất để sử dụng dữ liệu đa khung thời gian. Nó sẽ mở rộng (expand) một mảng dữ liệu từ một khung thời gian lớn hơn (Interval) để nó có thể được vẽ hoặc sử dụng chính xác trên khung thời gian nhỏ hơn.
  • Tại sao cần TimeFrameExpand?:
    • Ví dụ: Trên khung 1 phút, có 5 thanh nến 1 phút trong 1 thanh nến 5 phút.
    • Nếu bạn tính EMA 5 phút, bạn sẽ chỉ có 1 giá trị EMA cho mỗi 5 thanh nến 1 phút.
    • TimeFrameExpand sẽ lấy giá trị EMA 5 phút đó và lặp lại nó cho cả 5 thanh nến 1 phút tương ứng, cho phép bạn plot hoặc so sánh nó với dữ liệu 1 phút.
    • Nếu không dùng TimeFrameExpand, các giá trị sẽ bị lệch hoặc sai.

Ví Dụ Thực Tế: EMA 5 Phút trên Biểu đồ 1 Phút

Giả sử bạn đang xem biểu đồ 1 phút, nhưng muốn hiển thị và sử dụng đường EMA(5) được tính từ dữ liệu 5 phút.

// Bước 1: Tính toán EMA(5) trên khung thời gian 1 phút gốc
EMA5_1min = EMA(Close, 5); // EMA 5 của dữ liệu 1 phút

// Bước 2: Chuyển sang khung thời gian 5 phút để tính toán
TimeFrameSet(in5Minute); // Hoặc TimeFrameSet(5);

// Bước 3: Tính toán EMA(5) trên khung thời gian 5 phút
EMA5_5min_raw = EMA(Close, 5); // Đây là EMA 5 phút THÔ, chỉ có giá trị tại mỗi nến 5 phút

// Bước 4: Khôi phục lại khung thời gian gốc (1 phút)
TimeFrameRestore();

// Bước 5: Mở rộng EMA 5 phút để sử dụng trên khung 1 phút
// EMA5_5min_expanded sẽ lặp lại giá trị EMA 5 phút cho 5 thanh nến 1 phút tương ứng
EMA5_5min_expanded = TimeFrameExpand(EMA5_5min_raw, in5Minute); // Hoặc TimeFrameExpand(EMA5_5min_raw, 5);

// Bước 6: Plot để kiểm tra
Plot(Close, "Close (1min)", colorBlack, styleCandle);
Plot(EMA5_1min, "EMA 5 (1min)", colorRed, styleLine);
Plot(EMA5_5min_expanded, "EMA 5 (5min)", colorBlue, styleLine); // Đường này sẽ thẳng ngang trong 5 nến 1 phút

Trong ví dụ trên, bạn sẽ thấy đường EMA 5 phút màu xanh lam trông như một đường bậc thang, giữ nguyên giá trị trong 5 thanh nến 1 phút, sau đó nhảy lên hoặc xuống khi nến 5 phút tiếp theo hình thành.

Kết quả

Kết quả

Xây Dựng Chiến Lược Đa Khung Thời Gian

Với những hàm này, bạn có thể dễ dàng xây dựng các chiến lược phức tạp hơn, ví dụ:

  • Tín hiệu MUA: Khi EMA 1 phút cắt lên EMA 5 phút đã được mở rộng.
  • Tín hiệu BÁN: Khi EMA 1 phút cắt xuống EMA 5 phút đã được mở rộng.

Ưu điểm: Việc sử dụng dữ liệu đa khung thời gian không chỉ tăng khả năng xác nhận tín hiệu mà còn giảm thiểu số lượng giao dịch sai, giúp bạn tập trung vào các tín hiệu có xác suất thành công cao hơn.

Các hàm liên quan khác: Amibroker còn có các hàm như GetOHLC() (để lấy dữ liệu Open, High, Low, Close từ một khung thời gian khác) và Foreign() (để lấy dữ liệu từ một Symbol hoặc Timeframe khác), rất hữu ích cho các tình huống nâng cao hơn.

Việc làm chủ các hàm đa khung thời gian trong AFL là một bước tiến quan trọng trong hành trình trở thành một nhà giao dịch hệ thống chuyên nghiệp, giúp bạn xây dựng các chiến lược giao dịch mạnh mẽ và tinh vi 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ệ