Hướng dẫn stock price prediction using arima model in python - dự đoán giá cổ phiếu bằng mô hình arima trong python

Chào mừng bạn trở lại độc giả!

Đối với những người đang đọc loạt blog này lần đầu tiên có thể đề cập đến hai phần trước của blog. Phần 1 giới thiệu các khái niệm liên quan đến chuỗi thời gian và phần 2 thảo luận về các bước liên quan đến mô hình dữ liệu chuỗi thời gian bằng các mô hình ARIMA.

Trong blog này, chúng tôi sẽ sử dụng mô hình ARIMA để dự báo giá của Reliance Ltd. để thực hiện dự báo mà chúng tôi sẽ sử dụng Python Tool. Trong blog này, tôi đã cố gắng giữ cho đọc đơn giản nơi chúng ta sẽ xem xét các bước theo thứ tự thời gian. Quá trình được chia thành nhiều bước mà chúng ta sẽ thấy mã có liên quan và những gì nó làm. Tệp Python mà chúng tôi đang đề cập cũng được đính kèm ở cuối blog này, để người ta có thể tải xuống tệp, thực hiện các thay đổi và sử dụng nó.

Reliance Ltd. là một công ty Ấn Độ được liệt kê. Reliance Ltd. Công ty kinh doanh trong nhiều lĩnh vực như năng lượng, hóa dầu, khí đốt tự nhiên, bán lẻ, viễn thông, phương tiện truyền thông đại chúng và hàng dệt may. Một trong những lý do để chọn cổ phiếu này là cổ phiếu này có một trong những mức vốn hóa thị trường cao nhất trên thị trường chứng khoán Ấn Độ và do đó cung cấp thanh khoản tốt để giao dịch trong đó.

Bắt đầu nào:

1] & nbsp; & nbsp; & nbsp; & nbsp; nhập các gói yêu cầu

  • Các gói mà chúng tôi đang sử dụng là:
  • Pandas - Gói này giúp chúng tôi xử lý dữ liệu và thao tác dữ liệu dễ dàng
  • Yfinance - Nó được sử dụng để tải xuống bộ dữ liệu từ Yahoo Finance
  • DateTime - Được sử dụng để xử lý các đối tượng ngày và giờ
  • matplotlib - được sử dụng để trực quan hóa dữ liệu và vẽ đồ họa 2D
  • Seaborn - Được sử dụng để trực quan hóa dữ liệu được cải thiện và đồ họa tốt hơn
  • PMDARIMA - Được sử dụng để lựa chọn mô hình trong dự báo chuỗi thời gian

2] & nbsp; & nbsp; & nbsp; & nbsp; chọn tài sản và khoảng thời gian

Đối với bước này, chúng tôi đang sử dụng ticker cho Reliance Stock, tức là Reliance.ns. Giá trị này được lưu trữ trong biến có tên là Ticker.

Bộ dữ liệu được chia thành hai bộ dữ liệu đào tạo và thử nghiệm. Chúng tôi sẽ đào tạo mô hình của chúng tôi bằng cách sử dụng bộ dữ liệu đào tạo và cuối cùng sẽ dự đoán tương lai của cổ phiếu trong giai đoạn thử nghiệm. Chúng tôi sẽ so sánh trực quan giá cổ phiếu thực tế so với dự đoán của mô hình trong bước 7.

Khoảng thời gian được chọn cho dữ liệu đào tạo là từ ngày 1 tháng 1 năm 2010 đến ngày 31 tháng 12 năm 2020. Đây là tổng cộng 11 năm dữ liệu đào tạo. Chúng tôi đang lưu trữ giá trị trong biến có tên start_training và end_training.

Đối với dữ liệu thử nghiệm, chúng tôi sẽ sử dụng dữ liệu từ ngày 1 tháng 1 năm 2021 đến ngày hiện tại. Chúng tôi đang lưu trữ các giá trị trong biến có tên start_testing và end_testing.

Lưu ý: Người ta có thể tải xuống tệp và thay đổi tên và ngày để tự sử dụng.

3] & nbsp; & nbsp; & nbsp; & nbsp; tải về dữ liệu đào tạo

Ở đây, chúng tôi đang tải xuống bộ dữ liệu đào tạo bằng gói yfinance [viết tắt là yf]. Là tham số, chúng tôi đang chuyển tên đánh dấu ‘Reliance.ns, mà chúng tôi đã lưu trong trình đánh dấu biến trong bước trước. Chúng tôi cũng đang vượt qua start_training làm ngày bắt đầu và kết thúc_training là ngày kết thúc.

4]

Trong bước này, chúng tôi đang lấy lại bộ dữ liệu thành khung thời gian hàng tuần. Để làm như vậy, chúng tôi đang sử dụng chức năng Resample từ gói Pandas. Chúng tôi đang đặt giá trị tham số là ‘W, viết tắt của việc lấy mẫu hàng tuần. Chúng tôi cũng đang sử dụng hàm AGG trong đó 'mở' là giá trị đầu tiên, 'cao' là giá trị tối đa trong tuần, 'thấp' là giá trị tối thiểu cho tuần, 'đóng' và 'adj đóng' là cột tương ứng.

Lý do tại sao chúng tôi chuyển đổi thành khung thời gian hàng tuần là khung thời gian cao hơn, thấp hơn là tiếng ồn và do đó làm tăng khả năng dự đoán của mô hình. Người ta cũng có thể chuyển đổi dữ liệu thành khung thời gian hàng tháng và kiểm tra khả năng dự đoán của mô hình.

5] & nbsp; & nbsp; & nbsp; & nbsp; lựa chọn mô hình

Bước này là bước quan trọng nhất và đã được thảo luận rất chi tiết trong Phần 2 của blog này. Chúng ta có thể lấy bất kỳ sự kết hợp nào của các giá trị cho mô hình ARIMA nhưng nên chọn các giá trị bằng cách sử dụng điểm AIC trong tối đa hóa. & NBSP;

Trong bước này, chúng tôi đang chọn các giá trị của mô hình ARIMA bằng cách sử dụng hàm auto_arima từ gói pmdarima. Các giá trị được chọn theo cách mà điểm AIC được tối đa hóa.

Mô hình được chọn được lưu trữ trong một biến có tên ARIMA_FIT và sẽ được sử dụng trong các bước tiếp theo.

Đưa ra dưới đây là bản tóm tắt được tạo từ mô hình được chọn.

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;

Observations:

  • Như đã nhấn mạnh ở trên, các tham số mô hình cho kết quả được tối ưu hóa nhất là các giá trị của [3, 1, 2]. Điều này có nghĩa là mô hình AR có giá trị độ trễ cho đến khi trễ 3, tôi đề xuất phân biệt thứ tự đầu tiên, mô hình MA có giá trị độ trễ cho đến khi trễ 2.
  • Phương trình cuối cùng cho mô hình được đề xuất là:

dy [t] = 7.13-1.27*dy [t-1]-0,57*dy [t-2] + 0,14*dy [t-3] + 1,29*e [t-1] + 0,73*e [t-2 ]

6] & nbsp; & nbsp; & nbsp; & nbsp; dữ liệu thử nghiệm

Cho đến bây giờ chúng tôi đã làm việc về dữ liệu đào tạo và trong bước này, chúng tôi sẽ bắt đầu làm việc với dữ liệu thử nghiệm. Trong các bước trước, chúng tôi đã tải xuống dữ liệu đào tạo, thao tác dữ liệu và lựa chọn mô hình. Bây giờ, trong bước này, chúng tôi sẽ sử dụng mô hình đã chọn trên một số dữ liệu chưa từng thấy để xem mô hình thực hiện trên dữ liệu mới như thế nào. Sau đây là các bước được thực hiện ở đây:

  • Tải xuống dữ liệu từ ngày 1 tháng 1 năm 2021 cho đến ngày hiện tại

Đặt lại dữ liệu từ hàng ngày đến hàng tuần.

Chỉ chọn điều chỉnh dữ liệu gần với các bước tiếp theo

7] & nbsp; & nbsp; & nbsp; & nbsp; dự báo bằng cách sử dụng dữ liệu thử nghiệm

Trong Bước 5, chúng tôi đã lưu trữ mô hình được chọn trong một biến có tên là ARIMA_FIT và trong bước này, chúng tôi đang sử dụng mô hình được lưu trữ trong ARIMA_FIT để dự đoán giá cho giai đoạn thử nghiệm đã chọn [tức là ngày 1 tháng 1 năm 2021 đến ngày hiện tại].

Các tham số trong hàm được sử dụng cho các mục đích sau:

  • N_Periods - để nhập số lượng thời gian chúng tôi muốn dự đoán
  • return_conf_int - để nhập liệu có muốn có được khoảng tin cậy cho dự báo không?
  • Alpha - để tính khoảng tin cậy cho các dự báo là [1 - alpha] %

Trong bước tiếp theo, chúng tôi lưu trữ giá trị được tính toán trong một khung dữ liệu gấu trúc có tên ARIMA_FCAST. Đưa ra dưới đây là ảnh chụp nhanh của kết quả được tạo ra:

Ảnh chụp nhanh của arima_fcast

8]

Sử dụng đoạn mã trên, chúng tôi đang vẽ các giá trị được tính toán và lưu trữ trong biến arima_fcast. Sau đây là cốt truyện được tạo ra:

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; biểu diễn trực quan các giá trị dự báo

Đường màu đen cho biết giá đóng cửa được điều chỉnh thực tế của sự phụ thuộc cổ phiếu trong khoảng thời gian ngày 1 tháng 1 năm 2021 cho đến ngày.

Đường màu đỏ chỉ ra giá trị dự đoán cho giá của cổ phiếu.

Ban nhạc xung quanh đường màu đỏ cho thấy dải tin cậy cho giá được tính toán. Khi thời gian rời khỏi ngày dự đoán [trong trường hợp của chúng tôi ngày 1 tháng 1 năm 2021], ban nhạc mở rộng như sự tự tin để dự đoán một giá trị hợp đồng tiếp theo. Nó dễ dàng hơn để dự đoán giá của một tài sản cho ngày mai hơn là sau một năm. Kết quả là, ban nhạc mở rộng khi khoảng thời gian dự đoán tăng lên.

Trong cốt truyện, chúng ta có thể thấy giá nằm trong dải dự đoán trong hầu hết các giai đoạn và điều đó cho thấy mô hình được chọn có thể là một mô hình tốt để dự đoán giá.

Sự kết luận

Key Takeaways từ blog này là:

  • Các mô hình ARIMA là một trong những kỹ thuật thống kê có thể được sử dụng để dự báo dữ liệu chuỗi thời gian.
  • Dữ liệu chuỗi thời gian có xu hướng, tính thời vụ/tính chu kỳ và các thành phần tiếng ồn.
  • Trong các mô hình ARIMA, người ta phải quyết định theo thứ tự theo cách giảm lỗi.
  • Lựa chọn mô hình có thể được thực hiện bằng các gói như pmdarima bằng các công cụ như Python và R.

Arima có thể dự đoán giá cổ phiếu không?

Giới thiệu. Mô hình ARIMA là một trong những mô hình chuỗi thời gian hữu ích và chính xác nhất trong việc đưa ra dự đoán về xu hướng trong tương lai. Trong trường hợp của chúng tôi, chúng tôi sẽ dự đoán giá thị trường chứng khoán bằng ngôn ngữ lập trình R.we will predict stock market prices using R programming language.

Làm thế nào để Python dự đoán mô hình Arima?

Đã đến lúc xem một ví dụ thực tế ...
Bước 0: Khám phá bộ dữ liệu. ....
Bước 1: Kiểm tra tính ổn định của chuỗi thời gian. ....
Bước 2: Xác định tham số mô hình ARIMA P, q. ....
Bước 3: Phù hợp với mô hình ARIMA. ....
Bước 4: Dự đoán chuỗi thời gian. ....
Bước 5: Đánh giá dự đoán mô hình ..

Mô hình Arima được sử dụng như thế nào trên thị trường chứng khoán?

Bắt đầu nào:..
1] Nhập các gói yêu cầu ..
2] Chọn tài sản và khoảng thời gian.Đối với bước này, chúng tôi đang sử dụng ticker cho Reliance Stock, tức là 'phụ thuộc.....
3] Tải về dữ liệu đào tạo.....
4] Chuyển đổi bộ dữ liệu hàng ngày sang bộ dữ liệu hàng tuần.....
5] Lựa chọn mô hình.....
7] Dự báo sử dụng dữ liệu thử nghiệm.....
8] Vẽ kết quả ..

Làm thế nào để Python dự đoán giá cổ phiếu trong tương lai?

Dự đoán giá cổ phiếu bằng LSTM..
Nhập khẩu: ....
Đọc tập dữ liệu: ....
Phân tích giá đóng cửa từ DataFrame: ....
Sắp xếp bộ dữ liệu vào thời gian ngày và bộ lọc các cột ngày và các cột đóng: ....
Bình thường hóa bộ dữ liệu được lọc mới: ....
Xây dựng và đào tạo mô hình LSTM: ....
Lấy một mẫu dữ liệu để đưa ra dự đoán giá cổ phiếu bằng mô hình LSTM:.

Bài Viết Liên Quan

Chủ Đề