2012-05-29 38 views
5

Tôi đang làm việc trên dự án để dự đoán giá cổ phiếu bằng ANN. Tôi đã đào tạo hệ thống sử dụng dữ liệu 7 năm trước và nó hoạt động tốt để dự đoán dữ liệu trong một ngày. Bây giờ tôi muốn dự đoán giá cổ phiếu trong bảy ngày tới.Dự đoán dài hạn sử dụng mạng nơron nhân tạo

Ý tưởng của tôi là dự đoán dữ liệu ngày 2 sử dụng dữ liệu ngày 1, ngày 3 sử dụng dữ liệu dự đoán của ngày 2 và ngày 1 và cứ tiếp tục như vậy. Nhưng nó không hoạt động đúng.

Tôi đã đào tạo ANN để dự đoán giá đóng cửa bằng giá mở cửa, giá tối đa và tối thiểu trong một ngày.

Ý tưởng dự đoán dữ liệu của bảy ngày tiếp theo là gì ??

+4

Tôi nghĩ rằng điều này đòi hỏi một quả cầu pha lê –

Trả lời

3

Maruf, nếu bạn có dự đoán ANN đáng tin cậy trong 1 ngày tới, vui lòng liên hệ với tôi để thảo luận thêm! LOL

Nói đùa sang một bên. Mạng nơron và các yếu tố dự báo phi tuyến tính khác chỉ là những yếu tố dự báo. Dữ liệu bạn đang xử lý (dữ liệu giá cổ phiếu) phần lớn là ngẫu nhiên. Nếu bạn không tin tôi, hãy cố gắng tạo ra một bước đi ngẫu nhiên bằng cách sử dụng psuedo-mã sau và hình vẽ trên màn hình:

let min = -0.5 
let max = +0.5 
let bias = 0.01 
let random = rand(min, max) 
y[i] = y[i-1] + random + bias 

Điều chỉnh sai lệch một chút (từ -0,01 đến 0,01) và bạn kết thúc với hàng loạt có vẻ giống như một giá cổ phiếu xu hướng. Lý do cho điều này là trong bất kỳ xu hướng cơ bản có những người đang đưa ra quyết định không tốt hơn so với một đồng xu lật. Bạn có biết các nhà giao dịch trung bình là đúng 55% thời gian? Đó là tất cả những gì anh ta cần ...

Bây giờ, nếu dữ liệu phần lớn là ngẫu nhiên thì sẽ rất khó dự đoán. Bạn đang tìm kiếm một tín hiệu trong một lượng lớn tiếng ồn. Mỗi ngày trước bạn cố gắng dự đoán dự đoán của bạn trở nên kém chính xác hơn.

Tôi có thể hỏi - bạn đã nhập gì vào ANN để nhận dự đoán trước 1 ngày? Ví dụ: nếu bạn đang sử dụng giá cổ phiếu hàng ngày cộng với các yếu tố có nguồn gốc khác (như tỷ lệ thay đổi, khối lượng, phân kỳ, v.v ...) để có dự đoán chính xác trong 1 ngày, bạn có thể nhận được dự đoán chính xác trong 1 tuần thay thế tất cả những điều trên bằng dữ liệu chứng khoán hàng tuần.

Edit:

Thứ hai, anh đang làm gì để kiểm tra tính chính xác của dự đoán? Để tăng thêm câu trả lời của mikera, tôi sẽ đề xuất một chiến lược như sau.

Cho cửa sổ dữ liệu trong 1000 ngày, hãy lấy 800 trong số này và đào tạo ANN của bạn. Bây giờ dự đoán một ngày trong tương lai. So sánh hướng được dự đoán (Lên, Xuống) với giá đóng cửa dự đoán (% chênh lệch) để đánh giá độ chính xác cho kết quả đó. Bây giờ trượt cửa sổ 1 ngày sang bên phải. Đào tạo lại ANN và thực hiện dự đoán 1 ngày, lưu ý kết quả.

Nếu bạn tiếp tục điều này trong 200 ngày còn lại, tỷ lệ kết quả nào có hướng chính xác (lên, xuống)? Tỷ lệ kết quả nào trong vòng 10% của giá đóng cửa dự đoán thực tế? Nếu ANN của bạn đang đặt lệnh ở gần doanh nghiệp mỗi ngày và đóng chúng vào cuối ngày hôm sau, số tiền đó sẽ được thực hiện bao nhiêu? Kế toán phí trượt và phí giao dịch của khóa học ...

Điều này sẽ cung cấp cho bạn ý tưởng về độ chính xác và đáng giá của hệ thống.

+0

Cảm ơn bạn đã trả lời nhanh chóng của bạn (i am với maruf trong dự án này). chúng tôi sử dụng ngày hôm trước 1. ngày 2. giá thấp nhất 3. giá cao nhất 4. giá mở cửa và 5. khối lượng chuyển tiếp. chúng tôi không hiểu ý tưởng "trượt cửa sổ 1 ngày sang phải" của bạn. Sau khi đào tạo 800 ngày, chúng ta nên dự đoán 801 ngày với dữ liệu của ngày thứ 800 (5 hàng). sau đó cần so sánh với dữ liệu gốc. sau đó? Bạn có ý gì bằng cách "trượt cửa sổ 1 ngày sang phải"? Xin lỗi vì sự thiếu hiểu biết của tôi. – shantanu

+1

Ý tôi là, nếu bạn sử dụng ANN này trong một hệ thống giao dịch thực, bạn sẽ chỉ có quyền truy cập vào dữ liệu trong quá khứ. Mỗi đêm sau khi thị trường đóng cửa, bạn sẽ đào tạo lại ANN và dự đoán giá đóng cửa ngày mai. Sau đó, tại thị trường mở bạn sẽ đặt một thương mại, và tại thị trường gần lối ra thương mại. Tối hôm sau bạn sẽ lặp lại việc đào tạo lại dữ liệu trong quá khứ (bao gồm cả ngày mới) và tạo dự đoán cho ngày hôm sau, đặt giao dịch vào ngày hôm sau, v.v. Thử nghiệm của bạn nên cố gắng mô phỏng hành vi này. Nếu bạn đã tạo một thử nghiệm đã làm ở trên, sau đó được báo cáo trên% chiến thắng/thua giao dịch, nó tốt như thế nào? –

2

Bạn đã làm rất tốt nếu bạn có thể dự đoán dù chỉ một ngày trước một cách hiệu quả - những vấn đề thông thường là:

  • Bạn có chắc chắn bạn không overfitting, ví dụ học cách sao chép các tính năng của dữ liệu đào tạo của bạn một cách chính xác? Nếu bạn chưa thử nó thì tôi khuyên bạn nên kiểm tra ANN của bạn trên 20% dữ liệu của bạn sau khi đào tạo nó với 80% khác để chắc chắn điều này.
  • Bạn cũng đang học dự đoán giá trị tuyệt đối hoặc giá trị cao nhất? nếu trước đây, thì có thể bạn vừa nhận được sự phù hợp tốt từ thực tế là cho đến nay yếu tố dự đoán tốt nhất của giá đóng cửa ngày hôm sau là giá đóng cửa ngày hôm nay (vì dữ liệu có tương quan nối tiếp nhiều). Nó không phải là hiếm khi nhận được 99% + R-squared phù hợp bằng cách làm cho sai lầm này ....

Giả sử bạn không rơi vào một trong những bẫy trên, sau đó cách để làm nhiều ngày dự đoán là chỉ cần có các biến dự đoán riêng biệt cho từng ngày trong tương lai một cách độc lập. Không có nhiều giá trị bổ sung trong việc cho ăn dự đoán ngày hôm sau vào ngày thứ 2, v.v. (vì bạn không có bất kỳ thông tin mới nào trong dữ liệu đầu vào), nhưng bạn có thể thử nó nếu bạn thích (không thể làm hại , có thể tăng tốc độ học tập bằng cách cung cấp tính năng phát hiện hữu ích, v.v.).

Ngoài ra, bạn có thể mong đợi sự không chắc chắn/sự thay đổi về các dự đoán tiếp tục lớn hơn (vì có nhiều ngày chuyển động giá cổ phiếu không chắc chắn từ nay đến sau). Đó là giá trị cố gắng để dự đoán phương sai của số liệu thống kê của bạn cũng như trung bình cho lý do này.

+1

Tôi đã +1 điều này vì "kiểm tra ANN của bạn trên 20% dữ liệu của bạn sau khi đào tạo nó với 80% khác để đảm bảo điều này". Ngoài ra tôi sẽ đề cập đến nó là giá trị làm một kỹ thuật cửa sổ trượt, ví dụ với 800 ngày đào tạo dữ liệu, dự đoán trước 1 ngày, so sánh dự đoán so với thực tế, sau đó trượt cửa sổ đào tạo/dự đoán 1 ngày sang phải, rửa sạch và lặp lại. Từ đó bạn có thể đánh giá độ chính xác của người dự đoán trong một cửa sổ cực kỳ dài. Tôi sẽ cập nhật bình luận của tôi trong thực tế :) –

Các vấn đề liên quan