Đưa ra trung bình di chuyển thích nghi KAMA

Tác giả:Tốt, Tạo: 2019-07-24 14:09:06, Cập nhật: 2023-11-08 20:42:23

img

Như tên gọi cho thấy, Moving Average (KAMA) thuộc thể loại Moving Average, nhưng không giống như moving average truyền thống, nó thông minh hơn MA bình thường. Chúng ta biết rằng MA có nhiều thiếu sót. Ví dụ, moving average ngắn hạn gần với xu hướng giá, rất nhạy cảm, nhưng dễ tạo ra tín hiệu sai. Moving average dài hạn rất chính xác trong việc nắm bắt xu hướng, nhưng thường phản ứng rất chậm khi giá thị trường đã di chuyển trong một thời gian.

Sự thông minh của KAMA được phản ánh trong thực tế là nó có thể dựa trên tình trạng thị trường hiện tại, tức là sự biến động, để điều chỉnh độ nhạy.

Lợi ích là: nó có thể giảm chi phí giao dịch do giá trong ngày di chuyển, và có thể có được xu hướng trong thời gian khi thị trường cất cánh.

KAMA trong biểu đồ

img

Phương pháp tính toán KAMA

  • Định hướng (DIR) = giá đóng - giá đóng trước n ngày
  • Độ biến động (VIR) = tổng số ((abs (giá đóng - giá đóng của ngày giao dịch trước), n)
  • Hiệu quả (ER) = hướng / biến động
  • Nhanh = 2 / (n1 + 1)
  • Chậm = 2 / (n2 + 1)
  • Mượt mà (CS) = hiệu quả * (nhanh - chậm) + chậm
  • hệ số (CQ) = mịn * mịn
  • KAMA = trung bình trọng số theo hàm số nhân (trung bình động động (giá đóng, hệ số), 2)

Trong số đó, n, n1 và n2 là các tham số định kỳ. Theo mặc định, số chu kỳ n là 10, n1 là số chu kỳ ngắn hạn là 2, và n2 là số chu kỳ dài hạn là 30. Đây cũng là một tập các tham số được đồng ý bởi tác giả Perry Kaufman của KAMA, n được sử dụng để tính hiệu quả tính toán định hướng và biến động, n1 và n2 là số thời gian của trung bình chuyển động nhanh và trung bình chuyển động chậm. Về mặt lý thuyết, tham số của n1 càng lớn, KAMA càng trơn.

KAMA được tính bằng cách đầu tiên tính toán hướng (DIR) và biến động (VIR), sau đó tính toán hiệu quả theo tỷ lệ theo hai điều này. Hiệu quả (ER) là thước đo mức độ thay đổi giá và được tính theo cách đơn giản: hướng / biến động. Kết quả tính toán nằm trong khoảng từ 0 đến 1. Khi giá trị của ER gần 0 thì thị trường đang trong trạng thái dao động. Khi giá trị của ER gần 1, thị trường đang trong trạng thái xu hướng.

Khi tính hiệu suất (ER), hằng số làm mịn (CS) có thể được lấy bằng cách kết hợp trung bình di chuyển nhanh và trung bình di chuyển chậm:

hiệu quả * (nhanh - chậm) + chậm

Theo công thức tính toán của CS, chúng ta có thể thấy rằng sự thay đổi của CS luôn tỷ lệ thuận với sự thay đổi của ER.

Sau đó, hệ số (CQ) được tính theo công suất làm mịn, và mục đích là làm cho tham số chu kỳ chậm đóng một vai trò quan trọng hơn trong tính toán, cũng là một cách tiếp cận bảo thủ hơn.

Độ mịn cuối cùng của KAMA được xác định bởi hệ số (CQ). Trong tính toán của KAMA, hệ số (CQ) xác định các tham số định kỳ của hai đường mịn trung bình động cuối cùng, cụ thể là: trung bình cân nhắc theo hàm số nhân (trung bình động (giá đóng, hệ số), 2).

Cách sử dụng KAMA

Mặc dù phương pháp tính toán của KAMA rất phức tạp, nhưng phương pháp sử dụng tương tự như trung bình động thông thường. Trong các ứng dụng thực tế, nó không chỉ có thể đánh giá xu hướng thị trường, mà còn có thể được sử dụng cho các điểm giao dịch chính xác.

  • Khi giá lớn hơn KAMA và KAMA tăng, vị trí dài được mở.
  • Khi giá thấp hơn KAMA và KAMA giảm, vị trí mua được mở.
  • Khi giá thấp hơn KAMA, hoặc KAMA giảm, vị trí dài được đóng.
  • Khi giá lớn hơn KAMA, hoặc KAMA tăng, vị trí ngắn được đóng.

Xây dựng một chiến lược giao dịch dựa trên KAMA

Bước 1: tính toán KAMA

Lưu ý rằng ở góc trên bên trái, vui lòng chọn ngôn ngữ lập trình: Ngôn ngữ của tôi. Có một KAMA sẵn sàng trong thư viện talib, nhưng nó chỉ có một chu kỳ tham số bên ngoài (n), và n1 và n2 đã mặc định là 2 và 30.

Các chiến lược trong bài viết này chỉ được sử dụng như tài liệu tham khảo. Người đọc có khả năng lập trình mạnh mẽ có thể viết riêng của họ. Trong quá trình lập trình ngôn ngữ của tôi, chúng ta cũng có thể trộn với ngôn ngữ JavaScript, hãy chú ý đến mã sau:

%% // Standard format for JavaScript within My language
scope.KAMA = function() {
    var r = _C(exchange.GetRecords); // Get the K line array
    if (r.length > 140) { // filter the length of the K line
        var kama = talib.KAMA(r, 140); // Call talib library to calculate KAMA
        Return kama[kama.length - 2]; // return the specific value of KAMA
    }
    Return;
}
%% // Standard format for JavaScript within My language

Bước 2: Tính toán các điều kiện giao dịch và đặt lệnh

%%
scope.KAMA = function() {
    var r = _C(exchange.GetRecords);
    if (r.length > 140) {
        var kama = talib.KAMA(r, 140);
        Return kama[kama.length - 2];
    }
    Return;
}
%%

K^^KAMA; // Print KAMA on the chart
A:CLOSE; // print the closing price on the chart

K > REF(K, 1) && CLOSE > K,BK; // Open long position
K < REF(K, 1) && CLOSE < K,SK; // Open short position
K < REF(K, 1) || CLOSE < K,SP; // close long position
K > REF(K, 1) || CLOSE > K,BP; // close short position

Bước 3: Thiết lập phương pháp lọc tín hiệu chiến lược

%%
scope.KAMA = function() {
    var r = _C(exchange.GetRecords);
    if (r.length > 140) {
        var kama = talib.KAMA(r, 140);
        Return kama[kama.length - 2];
    }
    Return;
}
%%

K^^KAMA;
A:CLOSE;

K > REF(K, 1) && CLOSE > K,BK;
K < REF(K, 1) && CLOSE < K,SK;
K < REF(K, 1) || CLOSE < K,SP;
K > REF(K, 1) || CLOSE > K,BP;

AUTOFILTER; // Enable one open and one close signal filtering mechanism

Kiểm tra lại chiến lược

Để tiếp cận với môi trường giao dịch thực tế, chúng tôi đã sử dụng 2 pips trượt để kiểm tra áp lực trong giao dịch thực tế.

  • Sàn giao dịch: BitMEX
  • Loại giao dịch: XBTUSD
  • Thời gian: 01 tháng 7 năm 2017 ~ 01 tháng 7 năm 2019
  • Chu kỳ đường K: đường hàng ngày
  • Trượt: 2 pips cho các vị trí mở và đóng

Môi trường thử nghiệm ngược

img

Chi tiết lợi nhuận

img

Đường cong quỹ

img

Từ các kết quả kiểm tra ngược trên, chiến lược KAMA đơn giản này thực sự đáp ứng được mong đợi. Ngay cả trong thị trường gấu siêu lớn của tiền điện tử vào năm 2018, đường cong vốn không cho thấy sự thoái lui lớn, và không có vị trí mở và đóng lặp đi lặp lại trong giai đoạn sốc dài hạn trên thị trường gây ra tổn thất không cần thiết.

Mã nguồn chiến lược

Để biết thêm thông tin, vui lòng liên hệ với chúng tôi tại:https://www.fmz.com/strategy/155663

Tóm lại

Một chiến lược tuyệt vời có thể là một chiến lược vững chắc phải được đánh bóng. Các chiến lược trong bài viết này có rất nhiều không gian để tối ưu hóa và nâng cấp, chẳng hạn như thêm một số điều kiện lọc nhất định, các điều kiện dừng lỗ và dừng lỗ tích cực. Là một loại đường trung bình động, KAMA thừa hưởng những ưu điểm và nhược điểm của đường trung bình động thông thường và đồng thời tăng cường. Trong một thị trường không thể đoán trước, ngay cả khi bạn cố định một tham số best, rất khó để thích nghi với thị trường tương lai. Do đó, phương pháp thay đổi theo xu hướng và thay đổi với thị trường có thể là một lựa chọn tốt hơn.


Thêm nữa