• 24ºC, Clouds
  • 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 33: BackTesting – Hệ thống giao dịch đa khung thời gian Amibroker
Bài 33: BackTesting – Hệ thống giao dịch đa khung thời gian Amibroker

Xem nhanh:

  • Xây Dựng Hệ Thống Giao Dịch Đa Khung Thời Gian Với RSI & EMA Trong Amibroker AFL
  • 1. Logic Chiến Lược Đa Khung Thời Gian
  • 2. Lập Trình Chiến Lược Trong Amibroker AFL
  • 3. Backtesting và Đánh Giá Kết Quả

Tuyệt vời! Đây là một bài viết chuyên sâu về việc xây dựng một chiến lược giao dịch đa khung thời gian trong Amibroker AFL, kết hợp các chỉ báo phổ biến và đặc biệt là cách sử dụng hàm Sum() để phát hiện các điều kiện liên tục. Dưới đây là bài viết chuẩn SEO và các từ khóa liên quan.

Xây Dựng Hệ Thống Giao Dịch Đa Khung Thời Gian Với RSI & EMA Trong Amibroker AFL

Chào các bạn! Để tăng cường độ tin cậy và xác suất thắng cho các chiến lược giao dịch, việc kết hợp thông tin từ nhiều khung thời gian (Multiple Timeframes) là một kỹ thuật mạnh mẽ. Bài viết này sẽ hướng dẫn bạn cách xây dựng một hệ thống giao dịch đa khung thời gian trong Amibroker Formula Language (AFL), sử dụng kết hợp chỉ báo RSI (Relative Strength Index) và EMA (Exponential Moving Average), đồng thời giới thiệu một cách thú vị để phát hiện các điều kiện liên tục bằng hàm Sum().

1. Logic Chiến Lược Đa Khung Thời Gian

Chúng ta sẽ xây dựng một chiến lược trên khung thời gian 15 phút nhưng đồng thời sử dụng RSI từ khung thời gian Hàng giờ (Hourly) để xác nhận.

Các chỉ báo và khung thời gian:

  • RSI (Relative Strength Index):
    • RSI trên khung 15 phút (RSI 15min).
    • RSI trên khung Hàng giờ (RSI Hourly).
  • EMA (Exponential Moving Average):
    • EMA 20
    • EMA 50 (trong bài nói là EMA 55, chúng ta dùng 50 cho phổ biến hơn)

Điều kiện MUA (Buy Signal):

  1. RSI 15 phút phải lớn hơn 60.
  2. RSI Hàng giờ phải lớn hơn 60.
  3. Có 5 thanh nến liên tiếp trên khung 15 phút đóng cửa trên EMA 20.

Điều kiện BÁN (Sell Signal – Thoát lệnh):

  1. Giá đóng cửa của bất kỳ thanh nến nào trên khung 15 phút giảm xuống dưới EMA 50.

2. Lập Trình Chiến Lược Trong Amibroker AFL

// Đặt tên hệ thống
_SECTION_BEGIN("Multi Timeframe RSI EMA System");

// Phần 1: Lấy dữ liệu RSI từ khung thời gian Hàng giờ
TimeFrameSet(inHourly); // Chuyển sang khung thời gian hàng giờ
RSI_Hourly_Raw = RSI(14); // Tính RSI 14 trên khung giờ
TimeFrameRestore(); // Quay lại khung thời gian gốc (15 phút)

// Mở rộng dữ liệu RSI giờ để sử dụng trên khung 15 phút
RSI_Hourly_Expanded = TimeFrameExpand(RSI_Hourly_Raw, inHourly);

// Phần 2: Tính toán RSI và EMA trên khung 15 phút gốc
RSI_15min = RSI(14);
EMA20 = EMA(Close, 20);
EMA50 = EMA(Close, 50);

// Phần 3: Định nghĩa điều kiện 5 thanh nến liên tiếp trên EMA 20
// Bước 3.1: Xác định nếu nến hiện tại đóng cửa trên EMA20
IsAboveEMA20 = Close > EMA20;

// Bước 3.2: Sử dụng hàm Sum() để đếm số lượng nến liên tiếp trên EMA20
// Sum(Expression, Periods) tính tổng của Expression trong Periods gần nhất
// Nếu IsAboveEMA20 = True (tức là 1), thì nó sẽ cộng 1. Nếu False (tức là 0), cộng 0.
// Nếu tổng của 5 bar gần nhất là 5, nghĩa là 5 bar đó đều True (đều trên EMA20)
FiveConsecutiveAboveEMA20 = Sum(IsAboveEMA20, 5) == 5;

// Phần 4: Định nghĩa Tín hiệu MUA/BÁN
Buy = RSI_15min > 60 AND RSI_Hourly_Expanded > 60 AND FiveConsecutiveAboveEMA20;
Sell = Cross(EMA50, Close); // Sell khi EMA50 cắt xuống Close

// Phần 5: Định nghĩa Giá Mua/Bán (có thể tùy chỉnh)
BuyPrice = Close;
SellPrice = Close;

// Phần 6: Lọc tín hiệu trùng lặp (đảm bảo chỉ có 1 lệnh Buy/Sell tại 1 thời điểm)
Buy = ExRem(Buy, Sell);
Sell = ExRem(Sell, Buy);

// Phần 7: Vẽ các chỉ báo và tín hiệu
Plot(Close, "Close", colorBlack, styleCandle);
Plot(RSI_15min, "RSI 15min", colorGreen, styleLine);
Plot(RSI_Hourly_Expanded, "RSI Hourly", colorBlue, styleLine);
Plot(EMA20, "EMA 20", colorRed, styleLine);
Plot(EMA50, "EMA 50", colorOrange, styleLine);

PlotShapes(IIf(Buy, shapeUpArrow, shapeNone), colorGreen, 0, Low, 0);
PlotShapes(IIf(Sell, shapeDownArrow, shapeNone), colorRed, 0, High, 0);

_SECTION_END();
Ví dụ

Ví dụ

Giải thích hàm Sum(Expression, Periods):

Hàm Sum() là một công cụ mạnh mẽ trong AFL để tính tổng tích lũy của một biểu thức trong một số chu kỳ nhất định.

  • Expression: Biểu thức mà bạn muốn tính tổng. Trong trường hợp này là IsAboveEMA20, sẽ trả về 1 nếu True và 0 nếu False.
  • Periods: Số lượng thanh nến (chu kỳ) mà bạn muốn tính tổng ngược về.

Ví dụ: Sum(IsAboveEMA20, 5) sẽ cộng giá trị IsAboveEMA20 của 5 thanh nến gần nhất. Nếu kết quả là 5, điều đó có nghĩa là cả 5 thanh nến đó đều thỏa mãn điều kiện Close > EMA20.

3. Backtesting và Đánh Giá Kết Quả

Sau khi thiết lập code, chúng ta sẽ thực hiện backtest trong Amibroker.

  • Phạm vi dữ liệu: Sử dụng dữ liệu ít nhất 3-5 năm (ví dụ: 2019-2021) để đảm bảo chiến lược được kiểm thử trong nhiều điều kiện thị trường.
  • Cài đặt Backtest: Đừng quên thêm phí giao dịch (commission và slippage) (ví dụ: 0.04-0.05%) vào cài đặt backtest. Nếu không, kết quả của bạn sẽ không phản ánh thực tế.
  • Đánh giá báo cáo:
    • Net Profit/Loss: Kiểm tra lợi nhuận ròng. Trong ví dụ này, chiến lược có thể chỉ có lãi nhỏ (ví dụ: 20%).
    • Win Rate (Tỷ lệ thắng): Đừng quá tập trung vào tỷ lệ thắng cao. Một chiến lược vẫn có thể sinh lời ngay cả với tỷ lệ thắng thấp (ví dụ: 32% thắng, 67% thua) nếu tỷ lệ Rủi ro/Lợi nhuận (Risk-Reward Ratio) của nó tốt.
      • Lời khuyên từ chuyên gia: Các nhà giao dịch chuyên nghiệp ưu tiên Risk-Reward Ratio hơn Win Rate. Họ chấp nhận nhiều giao dịch thua nhỏ để đổi lấy một vài giao dịch thắng lớn. Mục tiêu là kiếm tiền về lâu dài, không phải thắng mọi giao dịch.
    • Max Drawdown: Đây là chỉ số cực kỳ quan trọng. Một chiến lược có lợi nhuận nhưng sụt giảm vốn tối đa quá lớn (ví dụ: >20%) có thể không phù hợp về mặt tâm lý để giao dịch bằng tiền thật, vì nó sẽ gây áp lực rất lớn cho nhà giao dịch.
    • CAGR / Max Drawdown Ratio (Tỷ lệ CAGR trên Drawdown tối đa): Đây là một chỉ số tốt để đánh giá hiệu quả điều chỉnh theo rủi ro. Nên tìm chiến lược có tỷ lệ này trên 1, và lý tưởng là trên 2. Trong ví dụ, tỷ lệ này có thể thấp (ví dụ: 0.67), cho thấy rủi ro cao so với lợi nhuận.
    • Equity Curve (Đường vốn chủ sở hữu): Quan sát hình dạng của đường vốn. Một đường vốn lý tưởng sẽ dốc lên đều đặn. Nếu đường vốn có những đợt sụt giảm kéo dài (như trong COVID-2020), điều này có thể ảnh hưởng nghiêm trọng đến tâm lý giao dịch và khiến bạn khó kiên trì với hệ thống.

Ví dụ thực tế: Một chiến lược có vẻ lãi 20% mỗi năm nhưng có drawdown 20% và kéo dài 11 tháng sẽ rất khó để kiên trì giao dịch thực tế, dù về mặt toán học nó có lãi.

Việc xây dựng hệ thống giao dịch đa khung thời gian trong Amibroker AFL đòi hỏi sự hiểu biết sâu sắc về các chỉ báo, cách sử dụng các hàm đa khung thời gian và quan trọng nhất là khả năng đánh giá kết quả backtest một cách thực tế. Hãy không ngừng thử nghiệm, tối ưu hóa và phát triển các chiến lược phù hợp với phong cách giao dịch và khả năng chấp nhận rủi ro của bạ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ệ