Chức năng phân tích đánh giá xu hướng giá chứng khoán

Một phần của tài liệu Tìm hiểu chung về phân tích kĩ thuật trên thị trường chứng khoán và logic mờ (Trang 40 - 58)

36

của biểu đồ và sử dụng các công thức được xây dựng kết hợp với Logic mờ để tính toán ra được xu hướng lên hay xuống của đồ thị trong tương lai. Chương trình sẽ đưa ra một con số trong khoảng 0% đến 100%, nếu số đó càng lớn thì khả năng biểu đồ đi lên tương ứng với giá lên sẽ càng tăng , ngược lại thì khả năng giá xuống sẽ càng tăng.

2.2.5 Chc năng đưa ra phán đoán da vào kết qu phân tích giá chng khoán.

Chức năng này dựa vào chức năng phân tích xu hướng, nếu kết quả của xu hướng nằm trong khoảng nào thì sẽđưa ra phán đoán và tư vấn tương ứng.

Tng kết

Ở chương này, tôi đã trình bày chi tiết về các thành phần, quy trình hoạt động của mô hình Logic mờứng dụng trong bài toán dự báo giá chứng khoán. Đây là mô hình được áp dụng trong việc thực hiện chương trình dự báo giá chứng khoán.

Chương 3.

Thc nghim và kết qu

Nếu nhưở hai chương trên chỉ mang tính chất giới thiệu và nghiên cứu lý thuyết thì chương này là phần thực hành của khóa luận tốt nghiệp. Ở chương này tôi trình bày quy trình thực hiện và kết quả thu được của bộ đoán nhận giá chứng khoán được thực hiện dựa vào Fuzzy Logic thực hiện trên ngôn ngữ lập trình C# kết hợp với các luật trong phân tích kỹ thuật chứng khoán.

3.1 Xây dng chương trình mô phng và chy chương trình.

Dựa vào những lý thuyết về các thành phần ở trên tôi đã thực hành và phác thảo ra mô hình mô phỏng việc áp dụng Logic mờ vào phân tích kỹ thuật trong chứng khoán. Phần này sẽ trình bày về hệ thống mô phỏng đó bao gồm:cơ sở dữ liệu, các chức năng chính trong chương trình, các hàm chính trong chương trình ,giao diện chương trình và quá trình kiểm thử chức năng của chương trình.

37

3.1.1 Cơ s d liu.

Chương trình mô phỏng khá đơn giản về mặt cơ sở dữ liệu, chỉ có một bảng đặt tên là stock với các trường : MaCK, GiaCK, Date, chiso lưu lần lượt các thông tin : mã chứng khoán, giá chứng khoán, ngày tháng và chỉ số, trong đó chiso đóng vai trò là khóa chính.

Hình 18: Bng cơ s d liu được s dng trong chương trình

Dưới đây là các thao tác với cơ sở dữ liệu được sử dụng cho các chức năng của chương trình:

- Insert: Chèn một bản ghi vào cơ sở dữ liệu

- Delete: Xóa một bản ghi ra khỏi cơ sở dữ liệu

- Update: Sửa một bản ghi trong cơ sở dữ liệu

- Select: Xem một bản ghi trong cơ sở dữ liệu

Với các câu lệnh trên, tạm thời đã đáp ứng được các chức năng chính của chương trình, tiếp theo ta sẽ tìm hiểu kỹ về các chức năng chương trình cung cấp

3.1.2 Các chc năng chính.

Trước khi đi vào tìm hiểu các chức năng của chương trình chúng ta hãy xem lại hình 1.1 về luồng làm việc của chương trình để có thể dễ dàng hơn trong việc nắm được từng chức năng và tác dụng của chúng trong chương trình.

3 Nhp và lưu tr giá chng khoán.

Đây là chức năng cơ bản nhất của chương trình, người dùng nhập vào thông tin cho giá chứng khoán bao gồm: mã chứng khoán, ngày, chỉ số, giá chứng khoán. Trong đó:

- Mã chứng khoán: là mã của một công ty trên sàn giao dịch. - Ngày: là ngày – tháng – năm xác định giá của chứng khoán.

38

khoán- đây có thể coi là khóa của một giá theo ngày. - Giá chứng khoán: giá cuối ngày của một mã chứng khoán.

Trường hợp người dùng nhập thiếu một trong số 4 thông tin trên , hệ thống sẽ thông báo yêu cầu người dùng nhập đầy đủ các thông tin. Khi người dùng nhập đầy đủ các thông tin thì hệ thống sẽ lưu các thông tin đó lại bởi câu lệnh Insert.

4 Sa thông tin giá chng khoán theo ngày.

Người dùng có thể nhập đầy đủ các thông tin vào trong các textbox sau đó nhấn nút “Sửa thông tin” thì cơ sở dữ liệu sẽ tựđộng cập nhật thông tin mới theo chỉ số của giá chứng khoán bởi câu lệnh Update. Trường hợp người dùng nhập thiếu một trong số 4 thông tin trên , hệ thống sẽ thông báo yêu cầu người dùng nhập đầy đủ các thông tin.

5 Xóa thông tin ca giá chng khoán theo ngày.

Người dùng chỉ cần nhập đủ 2 thông tin là “mã chứng khoán” và “chỉ số” sau đó nhấn nút “Xóa” thì hệ thống sẽ tựđộng xóa giá của ngày đó đi bởi câu lệnh Delete. Trường hợp người dùng nhập thiếu một trong số 2 thông tin trên, hệ thống sẽ thông báo yêu cầu người dùng nhập đầy đủ các thông tin.

6 Xem chi tiết thông tin ca mt giá chng khoán theo ngày hay mt nút trên biu đồ chng khoán.

Chức năng này phục vụ cho việc xem chi tiết từng giá chứng khoán phục vụ cho việc xóa, sửa…Tương tự như việc xóa thông tin, Người dùng chỉ cần nhập đủ 2 thông tin là“mã chứng khoán” và “chỉ số” sau đó nhấn nút “Chi tiết” thì hệ thống sẽ tự động hiện ra thông tin về giá chứng khoán ngày hôm đó ở Richtextbox. Trường hợp người dùng nhập thiếu một trong số 2 thông tin trên , hệ thống sẽ thông báo yêu cầu người dùng nhập đầy đủ các thông tin.

7 Xây dng biu đồ giá chng khoán.

Ở chức năng này, người dùng chỉ cần nhập mã chứng khoán sau đó nhấn nút “Phân tích”, hệ thống sẽ tựđộng hiển thị ra đồ thị của giá chứng khoán đó dựa vào dữ liệu đã có trong cơ sở dữ liệu. Biểu đồ giúp cho người dùng có thể nhìn nhận xu hướng giá một cách trực quan hơn là chỉ nhìn vào dữ liệu giá. Trường hợp người dùng nhập thiếu thông tin mã chứng khoán , hệ thống sẽ thông báo yêu cầu người dùng nhập đầy đủ thông tin.Trường hợp nếu như mã chứng khoán chưa đủ ít nhất 5 giá thì hệ thống sẽ hiển thị thông báo chưa thể vẽ biểu đồ

39

8 Phân tích xu hướng và đưa ra dựđoán, tư vn.

Đây là chức năng quan trọng nhất của chương trình, chức năng này dựa vào số liệu trong cơ sở dữ liệu chứ không phải dựa vào biểu đồ. Chỉ cần nhập mã chứng khoán sau đó nhấn nút “phân tích” ,hệ thống sẽ tính toán dựa vào các công thức thích hợp để đưa ra % khả năng lên xuống ( trong khoảng 1% đến 100% ), con số này sẽ xuất hiện ở phần dự báo khả năng lên xuống. Nếu con số đưa ra càng cao chứng tỏ xu hướng chứng khoán tăng giá càng mạnh. Đồng thời trong Richtextbox sẽ hiện lên các thông tin về các điểm đảo chiều trên đồ thị, người dùng có thể kết hợp việc nhìn vào đồ thị để xác thực các thông tin này. Trường hợp người dùng nhập thiếu thông tin mã chứng khoán , hệ thống sẽ thông báo yêu cầu người dùng nhập đầy đủ thông tin. Ngoài các chức năng chính ở trên, hệ thống còn cung cấp các chức năng hỗ trợ người dùng khác như bắt lỗi dữ liệu khi người dùng nhập sai dạng dữ liệu, đểđảm bảo rằng dữ liệu đưa vào cơ sở dữ liệu là dữ liệu chuẩn trước khi đưa ra biểu đồ.

3.1.3. Các hàm chính trong chương trình.

Dưới đây là danh sách các hàm cơ bản và một vài câu lệnh, sự kiện hay các thông tin quan trọng của hàm đó.

Bng 4: Mô t các hàm ca chương trình 1. Các hàm qun lý cơ s d liu

DatabaseQuery() Hàm khởi tạo kết nối

string connString = @" server = NGHIEPTB-PC\SQLEXPRESS;

integrated security = true; database = chungkhoan ";

Kết quả thu được: có kết nối được CSDL không

Void deleteStock (string ma, int chiso)

Hàm xóa một giá chứng khoán

string sql = @" delete from stock where MaCK = '"+ma+"' and chiso ='"+chiso+"' "; Kết quả thu được: xóa được một hàng trong CSDL không

40 Void addStock (string ma,

float gia, string date, int chiso)

Hàm thêm một giá chứng khoán

string sql = @"insert into stock values('" + ma + "','" + gia + "','" + date + "','"

+ chiso + "')";

Kết quả thu được: thêm được một hàng vào cơ sở dữ liệu

String getInf (string mack, int chiso)

Hàm lấy thông tin một giá chứng khoán string sql = @"select * from stock where MaCK='" + mack + "' and chiso='" + chiso +

"'";

Kết quả thu được: hiển thị ra richtextbox thông tin của một giá chứng khoán của một chỉ số nào đó.

String GetY (string mack) Hàm lấy giá chứng khoán trong một ngày nào đó while (reader.Read()) { a[i] =float.Parse(reader[1].ToString()); giax = giax + a[i].ToString() + ","; i++; }

Kết quả thu được: Dãy giá chứng khoán của một mã chứng khoán, dưới định dạng là 1 xâu trước khi xuất thành mảng giá phục vụ cho việc vẽ biểu đồ

41

Void DeleteStock() Hàm thực hiện xóa một bản ghi với chỉ số được nhập vào textbox từ trước

connection.deleteStock(mack.Text,int.P arse(chiso.Text));

Void addStock() Hàm thực hiện thêm một bản ghi với các thông tin đã được nhập vào textbox, sau đó hiển thị tất cả dữ liệu của chứng khoán đó lên biểu đồ

Float getMax(float[] a) Hàm xác định giá trị lớn nhất trên một đoạn biểu đồ

Float getMin(float[] a) Hàm xác định giá trị nhỏ nhất trên một đoạn biểu đồ

Public voi phantich() Hàm thực thi các chức năng của hệ thống khi nhấn vào nút “Phân tích”

Kết quả thu về bao gồm:

a. Hiện biểu đồ giá của mã chứng khoán đã nhập vào textbox

b. Tính toán và phán đoán khả năng lên xuống của xu thế giá của mã chứng khoán đó

c. Hiện ra các thông tin quan trọng của biểu đồ ra richtextbox

Publicvoid chitiet() Hàm thực thi việc hiện ra thông tin chi tiết một giá có chỉ số nhất định nào đó.

Hàm này được kich hoạt khi nhấn vào nút “Chi tiết”

3.1.4. Giao din chương trình và kim th chc năng.

Chương trình tôi thực hiện dưới đây mang tính chất mô phỏng cho mô hình fuzzy logic ứng dụng trong bài toán dự báo tài chính. Phần này chúng ta sẽ cùng kiểm

42

nghiệp sự hoạt động của các chức năng giới thiệu ở trên kết hợp với việc giới thiệu về giao diện của chương trình.

9 Giao din màn hình chính.

Hình 19: Giao din màn hình chính

Màn hình chính được chia ra làm bốn vùng, vùng thứ nhất là vùng nhập liệu để nhập thông tin về giá chứng khoán, bên phải vùng này là vùng hiển thị biểu đồ kỹ thuật, bên dưới vùng biểu đồ kĩ thuật là vùng hiển thị thông tin và các câu tư vấn được định nghĩa của hệ thống. Bên trái vùng hiển thị thông tin là vùng dự báo khả năng lên ( xuống ) của mã chứng khoán được chọn.

10 Nhp giá chng khoán

Như giao diện nhập bên dưới, ta nhập một bản ghi với thông tin.

♦ Mã chứng khoán: FPT

♦ Ngày: 14/04/2009

♦ Chỉ số : 19

43

Hình 20: Giao din nhp giá chng khoán

Sau khi nhấn vào nút “Lưu” sẽ có thông báo insert thành công và phần hiển thị biểu đồ sẽ xuất hiện biểu đồ của mã chứng khoán FPT đã bao gồm cả giá vừa cập nhật ( với chỉ số 19 )

11 Xem thông tin mt bn ghi ( hay mt nút trên biu đồ ).

Hình 21: Giao din xem thông tin mt bn ghi

Ở giao diện trên, ta nhập vào hai thông tin là mã chứng khoán và chỉ số sau đó nhấn vào nút “Chi tiết” , hệ thống sẽ sinh ra báo cáo về giá đó ở trong khu vực

44 richtextbox.

12 Xóa mt bn ghi giá chng khoán.

Nhưở hình vẽ bên dưới, chương trình cho phép chúng ta xóa bất cứ một bản ghi nào trong cơ sở dữ liệu hay xóa thông tin của một giá chứng khoán nào đó. Chỉ cần nhập mã chứng khoán và chỉ số của chứng khoán sau đó nhấn nút “Xóa”, hệ thống sẽ tự động xóa bản ghi của giá chứng khoán đó ra khỏi cơ sở dữ liệu và sau đó đưa ra thông báo đã xóa thành công.

Hình 10: Giao din xóa mt bn ghi

Để muốn xóa chính xác nút nào trên biểu đồ, ta có thể xem chi tiết về nút đó sử dụng chức năng xem chi tiết ở trên.

13 Màn hình phân tích biu đồ.

Đây có thể coi là chức năng phức tạp nhất của chương trình, để sử dụng chức năng này, chỉ cần nhập vào một thông tin là mã chứng khoán sau đó click vào nút “Phân tích” , hệ thống sẽ cho ra các kết quả sau đây:

- Biểu đồđược thay đổi phù hợp với mỗi mã chứng khoán.

- Trong khu đánh giá kết quả, hệ thống sẽ tính ra được con số phần trăm lên ( xuống ) của giá chứng khoán.

- Trong khu vực thông tin, hệ thống sẽ hiện ra các thông tin về các điểm nút quan trọng trên biểu đồ giúp cho việc đánh giá.

45

Hình 11: Giao din chc năng phân tích biu đồ

Như hình trên ta thấy được biểu đồ của mã chứng khoán AGC, vị trí các điểm đảo chiều quan trọng và chứng khoán này đang nằm trong khoảng dập dềnh giữa lên và xuống, có một chút xu thế là tăng giá.

3.2 Đánh giá và phân tích.

3.2.1 Độ chính xác so vi thc tế.

Đểđánh giá độ chính xác của chương trình so với thực tế, tôi đã thực hiện khảo sát giá cụ thểở các sàn giao dịch chứng khoán so với sựđánh giá tăng/giảm của chương trình. Dưới đây là mẫu bảng kết quảđánh giá trong khoảng thời gian từ 21/04/09 đến 13/05/09 của mã chứng khoán FPT.

46 Bng 5: Kết qu minh ha ca chương trình Ngày Giá (1000 vnđ) Đánh giá ( % ) Dựđoán Thay đổi Kết quả 21/04/09 51.5 78.4 Tăng mạnh + 2.5 T 22/04/09 54 45.8 Giảm nhẹ - 0.5 T 23/04/09 53.5 18.6 Giảm nhẹ + 0.5 F 24/04/09 54 38 Giảm + 1 F 27/04/09 55 38 Giảm 0 T 28/04/09 55 18.6 Giảm mạnh + 0.5 F 29/04/09 55.5 78.6 Tăng mạnh + 2.5 T 04/05/09 58 66.9 Tăng + 1.5 T 05/05/09 60.5 65.2 Tăng 0 T 06/05/09 60.5 78.9 Tăng mạnh + 3.5 T 07/05/09 63.5 78.9 Tăng mạnh + 0.5 T 08/05/09 64 52.4 Tăng nhẹ + 2 T 11/05/09 66 52.4 Tăng nhẹ + 2 T 12/05/09 68 52.4 Tăng nhẹ - 3 F 13/05/09 65 18.7 Mô t bng kết qu:

47

quả thực và Kết quả chung. Trong đó quan trọng có cột đánh giá của chương trình (cột thứ 3 ) , hệ thống sẽ đưa ra một con số % nào đó dựa vào dữ liệu giá trước đó. Nếu con s h thng đưa ra năm trong khong 50% đến 100% thì mã chng khoán có kh năng tăng giá, và con sốđó càng cao thì khả năng lên giá càng lớn và nhà đầu tư nên mua vào. Do đó, cột dựđoán ( cột 4 ) chỉ là mô tả lại kết quảđánh giá của cột 3 bằng lời, có bốn giá trị có thể nằm trong cột bốn là : tăng mạnh, tăng nhẹ, giảm nhẹ và giảm mạnh. Các giá trị này tương ứng với các con sốở cột 3 là lớn hay bé. Cột kết quả thực (cột 5) là xác định lại xem chính xác ngày hôm sau tăng hay giảm để có thể so sánh với cột 4 từđó rút ra kết luận ở cột 6 là đúng ( T) hay sai ( F).

Ví dụ như bảng trên ngày 21/04 giá chứng khoán là 51.5, chương trình đưa ra con số dựđoán là ở cột 3 là 78.4, con số này khá cao( > 50 % ) do vậy, chương trình dự đoán khả năng giá ngày kế tiếp ( ngày 22/4) sẽ là tăng giá mạnh. Thực tế ngày 22/04 giá cổ phiếu là 54 ( tăng 54 – 51.5 = 2.5 ) , như vậy phán đoán ở ngày 21/04 là chính xác. Và ở cột 6, giá trịở hàng đó là T ( đúng ) .

Ngày 22/04 giá chứng khoán là 54, chương trình đưa ra con số dựđoán ở cột 3 là

Một phần của tài liệu Tìm hiểu chung về phân tích kĩ thuật trên thị trường chứng khoán và logic mờ (Trang 40 - 58)

Tải bản đầy đủ (PDF)

(58 trang)