Ngày hôm nay, khi tôi dịch chiến lược của một TV, sử dụng chỉ số MACD, và so sánh FMZ và TV, xu hướng là giống nhau, nhưng sự khác biệt về số liệu cụ thể là khá lớn, và tôi đã mất một đêm để tìm ra lý do, và tôi đã thử rất nhiều:
Các công cụ này được sử dụng trong các dự án như: TA.MACD, talin.MACD, và một cơ sở dữ liệu nguồn mở trong cộng đồng. Kết quả so sánh: 3 trong số đó hoàn toàn giống nhau. Tuy nhiên, trên trang phản hồi, MACD không phù hợp với biểu đồ truyền hình.
MACD thực sự là chỉ số EMA được tính toán thêm, và để đơn giản hóa phân tích vấn đề, tôi đã thay đổi so sánh với MACD so sánh với EMA, và tôi đã thay đổi so sánh với MACD so sánh với EMA, và tôi đã thay đổi so sánh với MACD so sánh với EMA. Nhưng sau khi so sánh, tôi cũng thấy có sự khác biệt, và tôi bắt đầu nghi ngờ rằng đó là sự khác biệt giữa FMZ và TV trong thuật toán của EMA.
Sau khi xem TV giới thiệu về thuật toán EMA, tôi đã viết một thuật toán chỉ số của EMA bằng tay của mình (thêm vào cuối) Sau khi so sánh lại, kết quả tương đồng với TA.EMA, không có bất kỳ sự khác biệt nào.
Có phải vấn đề là nguồn dữ liệu?
Để đơn giản hóa phân tích hơn nữa, tôi thay đổi tham số của EMA thành 2, thu nhỏ phạm vi đo, kéo biểu đồ sang bên trái nhất, và tôi muốn so sánh giá trị EMA từ đường K đầu tiên, và xem khi nào nó bắt đầu không phù hợp.
Khi tôi kéo đầu tiên, tôi đã ngạc nhiên khi thấy rằng đầu tiên K dây trong TV và đầu tiên K dây trong FMZ không phải là cùng một thời gian, TV sẽ đi về phía trước thêm một dây. Vì vậy, từ EMA đầu tiên, nó sẽ khác nhau, và mỗi EMA sau đó sẽ có một trọng lượng nhất định đối với EMA trước đó. Không có gì ngạc nhiên khi tất cả các dữ liệu sau đó đều không phù hợp, phân tích kết thúc ở đây, vì lý do kỳ lạ, nhưng cuối cùng đã tìm thấy.
function whl_ema(src, length) { var arr = []; var sum = 0; var alpha = 2 / (length + 1) for(var i in src){ if(i