Luận Văn Tìm Hiểu Ngôn Ngữ Lập Trình Python Và Viết Chương Trình Dự Báo Biến Động Giá Chứng Khoán

Chuyên khảo phân tích Luận văn tìm hiểu ngôn ngữ lập trình python viết chương trình thử nghiệm dự báo sự biến động của, đánh giá các khía cạnh quan trọng, đề xuất hướng nghiên cứu

Chuyên ngành

Công nghệ Thông tin

Người đăng

Ẩn danh

Thể loại

đồ án tốt nghiệp

2020

66
8
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CẢM ƠN

1. CHƯƠNG 1: NGÔN NGỮ LẬP TRÌNH PYTHON

1.1. Giới thiệu

1.2. Tại Sao Nên Học Lập Trình Python?

1.3. Cài đặt môi trường làm việc “cài đặt PyCharm”

1.4. Cài đặt python

1.5. Tạo file và viết mã Python trên PyCharm

1.6. Các Khái Niệm Cơ Bản Trong Lập Trình Python

1.6.1. Comments trong python

1.7. Cấu trúc dữ liệu là gì, các kiểu cấu trúc dữ liệu trong python

1.7.1. So sánh list và tuple

1.8. Cấu trúc điều khiển trong python

1.9. Cài đặt các gói thư viện cơ bản trong python

1.9.1. Cài đặt pip

1.9.2. Một số gói thư viện thông dụng cho Python

1.10. Sử Dụng Hàm Trong Python

1.10.1. Các thông số của Hàm (Function Parameters)

1.10.2. Câu lệnh return trong Python

1.10.3. DocStrings trong Python

1.10.4. Ví dụ về hàm DocStrings trong Python

1.11. Đọc file CSV trong python

1.11.1. Tệp CSV là gì?

1.11.2. Các hàm của module CSV trong Python

1.11.3. Cách đọc tệp CSV

1.11.4. Cách viết tệp CSV

1.12. Sử dụng thư viện pandas trong Python

1.12.1. Thư viện pandas python là gì?

1.12.2. Tại sao lại dùng thư viện pandas?

1.12.3. Đọc file csv sử dụng thư viện pandas

1.12.4. Thao tác với dataframe trong pandas

1.13. Vẽ biểu đồ trong python

1.13.1. Khái niệm chung

1.13.2. Ví dụ tạo một biểu đồ đơn giản

2. CHƯƠNG 2: BÀI TOÁN DỰ BÁO

2.1. Bài toán dự báo

2.1.1. Dự báo hỗ trợ quá trình ra quyết định trong các tình huống

2.1.2. Chuỗi thời gian (Time Series)

2.2. Tiến trình của một bài toán dự báo

2.2.1. Tiêu chuẩn dự báo

2.2.2. Các đặc tính định dạng

3. CHƯƠNG 3: BÀI TOÁN DỰ BÁO GIÁ CỔ PHIẾU VÀ THỰC NGHIỆM

3.1. Giới thiệu bài toán dự báo giá cổ phiếu

3.2. Phát biểu bài toán

3.3. Một số mô hình dự báo thống kê

3.3.1. Mô hình trượt đơn Moving Average (MA) để phân tích dự báo giá chứng khoán

3.3.2. Mô hình làm mịn theo cấp số nhân (exponential smoothing)

3.3.3. Mô hình làm mịn hàm mũ kép “Double exponential smoothing”

3.4. Chương trình thực nghiệm

3.4.1. Kết quả mô hình trượt đơn Moving Average (MA)

3.4.2. Kết quả thực nghiệm mô hình làm mịn theo cấp số nhân (exponential smoothing)

3.4.3. Kết quả thực nghiệm mô hình làm mịn hàm mũ kép “Double exponential smoothing”

DANH MỤC TÀI LIỆU THAM KHẢO

Tóm tắt

I. Ngôn ngữ Python

Ngôn ngữ Python là một ngôn ngữ lập trình đa năng, được sử dụng rộng rãi trong nhiều lĩnh vực như phát triển web, khoa học dữ liệu, và Machine Learning. Python có cú pháp đơn giản, dễ học, và hỗ trợ nhiều mô hình lập trình như hướng đối tượng, cấu trúc, và chức năng. Đồ án này tập trung vào việc tìm hiểu sâu về Python và ứng dụng của nó trong việc dự báo biến động giá chứng khoán.

1.1. Giới thiệu về Python

Python được phát triển bởi Guido van Rossum vào cuối những năm 1980. Ngôn ngữ này nổi bật với tính đơn giản và khả năng xử lý dữ liệu lớn. Python hỗ trợ nhiều nền tảng và có cộng đồng phát triển mạnh mẽ, giúp nó trở thành một trong những ngôn ngữ lập trình phổ biến nhất hiện nay.

1.2. Cài đặt môi trường Python

Để bắt đầu với Python, cần cài đặt môi trường phát triển như PyCharm và Python từ trang chủ. PyCharm là một IDE mạnh mẽ, hỗ trợ nhiều tính năng như gỡ lỗi, quản lý thư viện, và tích hợp với các công cụ khác.

1.3. Cấu trúc dữ liệu trong Python

Python cung cấp các cấu trúc dữ liệu tích hợp như List, Dictionary, Tuple, và Set. Những cấu trúc này giúp lưu trữ và quản lý dữ liệu hiệu quả, đặc biệt trong các bài toán phân tích dữ liệuMachine Learning.

II. Bài toán dự báo

Bài toán dự báo là một trong những ứng dụng quan trọng của khoa học dữ liệuMachine Learning. Trong đồ án này, bài toán dự báo được áp dụng để dự đoán biến động giá chứng khoán, giúp các nhà đầu tư đưa ra quyết định chính xác hơn.

2.1. Khái niệm bài toán dự báo

Bài toán dự báo liên quan đến việc sử dụng dữ liệu lịch sử để dự đoán các giá trị tương lai. Trong tài chính, dự báo biến động giá là một bài toán phức tạp, đòi hỏi sự kết hợp giữa phân tích thống kêMachine Learning.

2.2. Chuỗi thời gian trong dự báo

Chuỗi thời gian là một dạng dữ liệu quan trọng trong bài toán dự báo. Các mô hình như Moving AverageExponential Smoothing được sử dụng để phân tích và dự đoán các xu hướng trong chuỗi thời gian.

III. Ứng dụng dự báo giá chứng khoán

Đồ án này tập trung vào việc áp dụng Python để xây dựng các mô hình dự đoán giá chứng khoán. Các mô hình được thử nghiệm bao gồm Moving Average, Exponential Smoothing, và Double Exponential Smoothing.

3.1. Mô hình Moving Average

Mô hình Moving Average là một phương pháp đơn giản để dự báo giá chứng khoán bằng cách tính trung bình giá trong một khoảng thời gian nhất định. Mô hình này hiệu quả trong việc làm mịn dữ liệu và dự đoán xu hướng ngắn hạn.

3.2. Mô hình Exponential Smoothing

Exponential Smoothing là một kỹ thuật dự báo dựa trên việc gán trọng số giảm dần cho các giá trị trong quá khứ. Mô hình này phù hợp với dữ liệu có xu hướng và biến động theo mùa.

3.3. Kết quả thực nghiệm

Các mô hình được thử nghiệm trên dữ liệu giá cổ phiếu từ thị trường chứng khoán Việt Nam. Kết quả cho thấy Moving AverageExponential Smoothing đều có khả năng dự báo chính xác các biến động giá trong ngắn hạn.

13/02/2025

Trích đoạn nội dung tài liệu

Chương 1 NGÔN NGỮ LẬP TRÌNH PYTHON 1.1 Giới thiệu Lịch sử hình thành Python đã được hình thành vào cuối những năm 1980 và được bắt đầu thực hiện vào tháng 12/1989 bởi Guido van Rossum tại CWI tại Hà Lan như là người kế thừa của ngôn ngữ ABC (tự lấy cảm hứng từ SETL) có khả năng xử lý ngoại lệ và giao tiếp với hệ điều hành Amoeba. Van Rossum là tác giả chính của Python, và vai trò trung tâm của ông tiếp tục trong việc quyết định hướng phát triển của Python được phản ánh trong tiêu đề mà cộng đồng Python dành cho ông “Độc tài nhân từ cho cuộc sống” (benevolent dictator for life)(BDFL). 0 được phát hành vào ngày 16/10/2000, với nhiều tính năng chính mới bao gồm một bộ dọn rác đầy đủ và hỗ trợ Unicode. Với phiên bản này, quá trình phát triển đã được thay đổi và trở thành minh bạch hơn và được cộng đồng ủng hộ.

0 (còn được gọi là Python 3000 hoặc Py3k), một bản phát hành lớn, không tương thích ngược, được phát hành vào ngày 03/12/2008 sau một thời gian dài thử nghiệm. Nhiều trong số các tính năng chính của nó đã được điều chỉnh để tương thích ngược với Python 2. Các tính năng và triết lý phát triển Python là 1 ngôn ngữ lập trình đa hình: lập trình hướng đối tượng và hướng cấu trúc được hỗ trợ đầy đủ, và có 1 số tính năng của ngôn ngữ hỗ trợ lập trình theo chức năng và lập trình hướng khía cạnh (Aspect-oriented programming). Nhiều mô hình khác được hỗ trợ bằng việc sử dụng các phần mở rộng, bao gồm thiết kế theo hợp đồng (design by contract) và lập trình luận lý.

Các trang như Mozilla, Reddit, Instagram và PBS đều được viết bằng Python. Ngôn ngữ lập trình Python được dùng vào các mục đích:  Phát triển web (trên máy chủ)  Phát triển phần mềm 16  Tính toán một cách khoa học  Lên kịch bản cho hệ thống Tại Sao Nên Học Lập Trình Python?  Python hỗ trợ nhiều nền tảng khác nhau (Windows, Mac, Linux, Raspberry Pi, etc).  Python có cú pháp đơn giản, dễ đọc hiểu và rất gần gũi với tiếng Anh.  Cú pháp của Python giúp lập trình viên sử dụng ít dòng code để lập trình cùng một thuật toán hơn so với các ngôn ngữ lập trình khác.

 Python sử dụng trình thông dịch để thực thi các dòng code. Do đó, những dòng code có thể được thực thi ngay lập tức mà không cần biên dịch toàn bộ chương trình. Như vậy giúp chúng ta kiểm tra code nhanh hơn. Python cũng hỗ trợ hàm, thủ tục, hay kể cả lập trình hướng đối tượng.

Để viết mã nguồn Python, ta có thể sử dụng bất kỳ một trình soạn thảo nào, kể cả những trình soạn thảo đơn giản nhất như NotePad. Tuy nhiên, để phát triển các ứng dụng một cách hiệu quả hơn, ta nên sử dụng một IDE, để có thể tiết kiệm thời gian và công sức viết code. Trong phần tìm hiểu này, đồ án sử dụng một trong những IDE thông dụng nhất để lập trình ứng dụng Python, đó là PyCharm IDE.2 Cài đặt môi trường làm việc “cài đặt PyCharm” Để download Pycharm, ta truy cập vào: https://www. com/pycharm/download/#section=windows và tải về 17 Hình 1.2-1 dowload PyCharm Sau khi đã tải phiên bản pycahrm về máy ta tiến hành cài đặt pycharm theo các bước trong hướng dẫn và những tùy chọn cài đặt.2-2 Cài đặt PyCharm 18 Sau khi quá trình cài đặt được hoàn tất, giao diện của PyCharm sẽ như hình Hình 1.3 Cài đặt python Để download Python, ta truy cập địa chỉ trang chủ của python qua địa chỉ https://www.

org/downloads/ và tải python bản mới nhất.3-1 Download python Sau khi download xong nhấn vào file. exe vừa download và kích hoạt để cài đặt. Lúc này chỉ cần thực hiện lần lượt các bước theo hướng dẫn như chọn các thành phần cài đặt, xác định đường dẫn cần thiết và các thông số khác.3-2 Cài đặt python 1.4 Tạo file và viết mã Python trên PyCharm Sau khi đã tạo xong Project, ta click phải chuột lên Project, rồi tạo mới một Python File, để tạo một file mã nguồn Python. Và đặt tên cho file đó, file được viết bằng ngôn ngữ lập trình python có đuôi “py” Hình 1.4-1 Tạo file python Thử viết một ví dụ in ra “Hello world” trên pycharm bằng ngôn ngữ lập trình python.4-2 Ví dụ Hello world 20 1.5 Các Khái Niệm Cơ Bản Trong Lập Trình Python 1.1 Comments trong python Trong Python bất kỳ văn bản nào ở bên phải biểu tượng # thì sẽ được trình biên dịch hiểu là một comment và không biên dịch phần đó.5-1 Comment trong python Sử dụng càng nhiều comment hữu ích trong chương trình của bạn sẽ làm cho công việc lập trình của bạn dễ dàng hơn: Giải thích các giả định.

Giải thích các quyết định quan trọng. Giải thích chi tiết quan trọng. Giải thích vấn đề bạn đang cố gắng giải quyết. Giải thích các vấn đề đang cố gắng khắc phục trong chương trình của mình, v.

Hằng số (Literal Constants): Ví dụ về một hằng số theo nghĩa đen là một số như 5, 1. 23 hoặc một chuỗi như ‘python’hay “It’s a string!”. Nó được gọi là nghĩa đen bởi vì sử dụng giá trị của nó theo nghĩa đen. Số 2 luôn luôn đại diện cho chính nó và không có gì khác và nó là một hằng số vì giá trị của nó không thể thay đổi.

Do đó, tất cả những giá trị này được gọi là hằng số. Chuỗi (String): Một chuỗi là một dãy các ký tự. Chuỗi về cơ bản chỉ là một loạt các từ. 21 Biến: Biến chính xác như tên gọi của nó, tức là giá trị của nó có thể thay đổi.

Các biến có thể giúp lưu trữ bất cứ cái gì nếu có thể định nghĩa được nó. Các biến chỉ là một phần của bộ nhớ máy tính nơi lưu trữ một số thông tin. Đối tượng (Object): Python đề cập đến bất cứ điều gì được sử dụng trong một chương trình như là một đối tượng.6 Cấu trúc dữ liệu là gì, các kiểu cấu trúc dữ liệu trong python. Việc tổ chức, quản lý và lưu trữ dữ liệu rất quan trọng vì nó cho phép truy cập dễ dàng hơn và sửa đổi hiệu quả.

Cấu trúc dữ liệu (Data Structure) cho phép bạn sắp xếp dữ liệu của mình theo cách cho phép bạn lưu trữ các bộ dữ liệu được thu thập, liên quan đến chúng và theo đó mà thực hiện các thao tác trên chúng. Python có hỗ trợ ngầm cho Cấu trúc dữ liệu cho phép lưu trữ và truy cập dữ liệu. Các cấu trúc này được gọi là List, Dictionary, Tuple và Set. Python cho phép người dùng tạo Cấu trúc dữ liệu của riêng họ, cho phép toàn quyền kiểm soát chức năng.

Các cấu trúc dữ liệu nổi bật nhất là Stack, Queue, Tree, Linked List, v. đồng thời cũng có sẵn trong các ngôn ngữ lập trình khác. Cấu trúc dữ liệu tích hợp (Built-in Data Structures) Về cấu trúc dữ liệu trong Python, các Cấu trúc dữ liệu này được tích hợp sẵn với Python giúp lập trình dễ dàng hơn và giúp các lập trình viên sử dụng chúng để có được các giải pháp nhanh hơn. Và có các kiểu cấu trúc dữ liệu là: List: Được sử dụng để lưu trữ dữ liệu của các loại dữ liệu khác nhau một cách tuần tự.

Có các địa chỉ được gán cho mọi thành phần của danh sách, được gọi là Index. Giá trị chỉ mục bắt đầu từ 0 và tiếp tục cho đến khi phần tử cuối cùng được gọi là chỉ số dương. Dictionary: Được sử dụng để lưu trữ các cặp key-value. Để hiểu rõ hơn, hãy nghĩ đến một thư mục điện thoại nơi hàng trăm và hàng ngàn tên và số tương ứng của chúng đã được thêm vào.

Bây giờ các giá trị không đổi ở đây là Tên và Số điện thoại được gọi là các phím. Và các tên và số điện thoại khác nhau là các giá trị đã 22 được đưa vào các phím. Nếu truy cập các giá trị của các phím, sẽ nhận được tất cả tên và số điện thoại. Vì vậy, đó là những gì một cặp key-value.

Và trong Python, cấu trúc này được lưu trữ bằng Dictionary Set: Là một tập hợp các yếu tố không có thứ tự là duy nhất. Có nghĩa là ngay cả khi dữ liệu được lặp lại nhiều lần, nó sẽ chỉ được nhập vào tập hợp một lần. Tuple (các bộ dữ liệu): Tuples giống như các list với ngoại lệ là dữ liệu một khi được nhập vào bộ dữ liệu không thể thay đổi bất kể điều gì. Ngoại lệ duy nhất là khi dữ liệu bên trong Tuple có thể thay đổi, chỉ sau đó dữ liệu Tuple có thể được thay đổi.6-1 So sánh list và tuple 1.7 Cấu trúc điều khiển trong python Python luôn chạy một loạt các câu lệnh theo thứ tự từ trên xuống một cách chính xác.

Câu lệnh điều khiển là loại câu lệnh được dùng để điều khiển luồng chạy của các câu lệnh khác trong chương trình. Điều này đạt được bằng cách sử dụng các câu lệnh điều khiển. Có 3 lệnh kiếm soát cấu trúc điều khiển của Python là: if, for và while.1 Lệnh IF Được sử dụng để kiểm tra một điều kiện: nếu điều kiện là đúng sẽ chạy một khối các câu lệnh (được gọi là if-block), nếu sai chương trình sẽ xử lý một khối các câu lệnh khác (được gọi là else-block ). 23 Ví dụ: Cho một số nguyên cho trước, nhập vào một số nguyên khác và báo về các kết quả.

Nếu thỏa mãn các điều kiện thì in ra các kết quả khác nhau Hình 1.7-1 Ví dụ lệnh if trong bài toán Kết quả cho thấy khi chúng ta nhập một số nguyên bất kì. Nếu thỏa mãn điều kiện bằng với số cho trước thì in ra “chính xác”. Và kết quả khác khi điền vào số lớn hoặc nhỏ hơn số cho trước. Kết quả: Hình 1.7-2 kết quả ví dụ lệnh if 1.2 Lệnh FOR Câu lệnh for.

in là một câu lệnh lặp khác, nó lặp đi lặp lại qua một chuỗi (sequences) các đối tượng tức là đi qua từng mục trong một chuỗi. Chúng ta sẽ tìm 24 hiểu nhiều hơn về sequences trong bài về cấu trúc dữ liệu trong Python sau. Những gì bạn cần biết ngay bây giờ là một chuỗi trình từ chỉ là một tập hợp các items.7-3 ví dụ lệnh for Kết quả Vòng lặp for trong Python hoàn toàn khác với vòng lặp trong C / C ++. vòng lặp for trong Python tương tự như vòng lặp foreach trong C#.

Trong C / C ++, nếu bạn muốn viết for(int i = 0; i <5; i ++), thì trong Python bạn chỉ cần viết for i in range(0, 5). Vòng lặp for đơn giản hơn, biểu cảm hơn và ít bị lỗi hơn trong Python.7-4 kết quả ví dụ lệnh for 25 1.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Luận Văn: Phân Tích Ngôn Ngữ Python Và Ứng Dụng Dự Báo Biến Động Giá Chứng Khoán là một nghiên cứu chuyên sâu về việc sử dụng ngôn ngữ lập trình Python trong lĩnh vực tài chính, cụ thể là dự báo biến động giá chứng khoán. Tài liệu này không chỉ giới thiệu các thư viện và công cụ Python phổ biến như Pandas, NumPy, và Scikit-learn mà còn trình bày cách xây dựng mô hình dự đoán hiệu quả. Độc giả sẽ được hưởng lợi từ việc hiểu rõ cách áp dụng Python vào thực tiễn, từ đó nâng cao kỹ năng phân tích dữ liệu và dự báo thị trường.

Để mở rộng kiến thức về chủ đề này, bạn có thể tham khảo thêm các tài liệu liên quan như Luận văn thạc sĩ hệ thống thông tin quản lý ứng dụng mô hình mạng neural trong dự đoán giá chứng khoán Việt Nam, nghiên cứu này tập trung vào việc sử dụng mạng neural để dự đoán giá chứng khoán. Ngoài ra, Ứng dụng mô hình mạng thần kinh nhân tạo ANN vào dự báo chỉ số thị trường chứng khoán Việt Nam cũng là một tài liệu hữu ích, giúp bạn hiểu sâu hơn về các mô hình AI trong dự báo tài chính. Cuối cùng, Khóa luận tốt nghiệp phân tích ảnh hưởng của các nhân tố kinh tế vĩ mô đến thị trường chứng khoán Việt Nam sẽ cung cấp góc nhìn toàn diện về các yếu tố kinh tế ảnh hưởng đến thị trường chứng khoán.

Những tài liệu này không chỉ bổ sung kiến thức mà còn giúp bạn có cái nhìn đa chiều về các phương pháp dự báo và phân tích thị trường chứng khoán.