Khóa luận Tìm hiểu và xây dựng mô hình fuzzy logic ứng dụng trong bài toán dự báo tài chính

Tài liệu Khóa luận Tìm hiểu và xây dựng mô hình fuzzy logic ứng dụng trong bài toán dự báo tài chính: ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Trần Bá Nghiệp TÌM HIỂU VÀ XÂY DỰNG MÔ HÌNH FUZZY LOGIC ỨNG DỤNG TRONG BÀI TOÁN DỰ BÁO TÀI CHÍNH KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Các Hệ Thống Thông Tin HÀ NỘI - 2009 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Trần Bá Nghiệp TÌM HIỂU VÀ XÂY DỰNG MÔ HÌNH FUZZY LOGIC ỨNG DỤNG TRONG BÀI TOÁN DỰ BÁO TÀI CHÍNH KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Các Hệ Thống Thông Tin Cán bộ hướng dẫn: TS. Nguyễn Hà Nam HÀ NỘI - 2009 i Lời cảm ơn Trước hết, tôi xin được chân thành gửi lời cảm ơn sâu sắc tới các thầy cô giáo trong trường Đại học Công Nghệ - Đại học Quốc Gia Hà Nội đặc biệt tới các thầy cô trong khoa Công nghệ Thông tin đã tận tình giảng dạy, truyền đạt cho tôi những kiến thức, những kinh nghiệm quý báu trong suốt 5 năm học tập và rèn luyện tại trường Đại học Công Nghệ. Tôi xin được gửi lời cảm ơn đến thầy Nguyễn Hà Nam - Giảng viên bộ môn Các Hệ Thống Thông...

pdf63 trang | Chia sẻ: haohao | Lượt xem: 1481 | Lượt tải: 1download
Bạn đang xem trước 20 trang mẫu tài liệu Khóa luận Tìm hiểu và xây dựng mô hình fuzzy logic ứng dụng trong bài toán dự báo tài chính, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Trần Bá Nghiệp TÌM HIỂU VÀ XÂY DỰNG MÔ HÌNH FUZZY LOGIC ỨNG DỤNG TRONG BÀI TOÁN DỰ BÁO TÀI CHÍNH KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Các Hệ Thống Thông Tin HÀ NỘI - 2009 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Trần Bá Nghiệp TÌM HIỂU VÀ XÂY DỰNG MÔ HÌNH FUZZY LOGIC ỨNG DỤNG TRONG BÀI TOÁN DỰ BÁO TÀI CHÍNH KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Các Hệ Thống Thông Tin Cán bộ hướng dẫn: TS. Nguyễn Hà Nam HÀ NỘI - 2009 i Lời cảm ơn Trước hết, tôi xin được chân thành gửi lời cảm ơn sâu sắc tới các thầy cô giáo trong trường Đại học Công Nghệ - Đại học Quốc Gia Hà Nội đặc biệt tới các thầy cô trong khoa Công nghệ Thông tin đã tận tình giảng dạy, truyền đạt cho tôi những kiến thức, những kinh nghiệm quý báu trong suốt 5 năm học tập và rèn luyện tại trường Đại học Công Nghệ. Tôi xin được gửi lời cảm ơn đến thầy Nguyễn Hà Nam - Giảng viên bộ môn Các Hệ Thống Thông Tin khoa Công Nghệ Thông Tin , trường Đại học Công Nghệ đã định hướng và hướng dẫn tận tình trong quá trình tôi thực hiện khóa luận tốt nghiệp. Tôi cũng xin được bày tỏ lòng biết ơn của mình tới công ty FTP-IS đã hỗ trợ về mặt tài liệu và kiến thức, kinh nghiệm chuyên môn để tôi có thể hoàn thành được đề tài nghiên cứu và nâng cao tính ứng dụng của đề tài trong thực tiễn. Cuối cùng, tôi xin được gửi lời cảm ơn chân thành tới gia đình và bạn bè đã động viên, chăm sóc, đóng góp ý kiến và giúp đỡ trong quá trình học tập tại đại học, nghiên cứu và hoàn thành khóa luận tốt nghiệp. Hà Nội, ngày 15 tháng 05 năm 2009 Trần Bá Nghiệp Sinh viên lớp K50 – Các Hệ Thống Thông Tin Khoa Công nghệ Thông tin - Đại học Công Nghệ ii Tóm tắt Thị trường chứng khoán là một điểm nóng thu hút sự quan tâm rất lớn của mọi đối tượng trong xã hội. Nếu như ở các nước trên thế giới, thị trường chứng khoán được hình thành lâu đời thì ở Việt Nam, thị trường này đang dần thu hút sự quan tâm của công chúng. Thực tế sự hình thành và hoạt động mạnh mẽ của sàn giao dịch HASTC và sở giao dịch HOSE là minh chứng rõ ràng cho điều này.Đi đôi với sự phát triển của thị trường chứng khoán là sự hình thành và nâng cấp đáng kể của các công cụ kĩ thuật ứng dụng trong phân tích và đánh giá để đưa ra quyết định đầu tư phù hợp. Trong khóa luận này, về mặt lý thuyết tôi sẽ trình bày tổng quan về Logic mờ (Fuzzy Logic), các công cụ hỗ trợ và các bước để thực hiện một hệ thống Logic mờ. Ngoài ra, tôi cũng trình bày về lý thuyết phân tích kỹ thuật trong chứng khoán. Ở phần thí nghiệm, tôi sẽ trình bày chi tiết việc áp dụng Logic mờ vào việc xây dựng bài toán dự báo tài chính mà cụ thể là dự báo trong thị trường chứng khoán. Tiếp đó, tôi sẽ trình bày quá trình áp dụng trực tiếp sản phẩm thu được từ thí nghiệm vào việc dự đoán xu thế giá của mã chứng khoán Công Ty Cổ Phần Đầu Tư Phát Triển Công Nghệ FPT (mã chứng khoán là FPT) và đánh giá hiệu quả của chương trình. Cuối cùng là định hướng về các chức năng cần bổ sung thêm cho chương trình để có thể sử dụng được trong thực tế. iii Mục lục Lời mở đầu .....................................................................................................................1  Chương 1. .......................................................................................................................3  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ờ ...3  1.1. Lý thuyết kinh tế. ..................................................................................................3  1.1.1. Thị trường chứng khoán. ................................................................................3  1.1.2. Phương pháp phân tích kỹ thuật. ....................................................................4  1.1.3.  Lý thuyết dow ..........................................................................................11  1.2. Lý thuyết máy tính..............................................................................................19  1.2.1 Lý thuyết về Logic mờ...................................................................................19  1.2.2 Công cụ thực hiện hệ Logic mờ.....................................................................20  1.2.3 Một số ứng dụng của Logic mờ.....................................................................21  1.2.4 Các yếu tố xây dựng mô hình Logic mờ. ......................................................23  1.2.5 Qui trình hoạt động của Logic mờ.................................................................27  1.2.6 Phương pháp xây dựng mô hình. ...............................................................27  Tổng kết .....................................................................................................................29  Chương 2. .....................................................................................................................30  Xây dựng mô hình Logic mờ và ứng dụng trong phân tích kỹ thuật.....................30  2.1 Xây dựng mô hình...............................................................................................30  2.1.1 Dữ liệu đầu vào cho mô hình........................................................................31  2.1.2 Các biến ngôn ngữ và giá trị của chúng. .......................................................32  2.1.3 Các hàm được sử dụng trong mô hình...........................................................33  2.1.4 Tập luật ..........................................................................................................36  2.2 Ứng dụng của mô hình. ......................................................................................38  2.2.1  Chức năng nhập dữ liệu. ...........................................................................38  2.2.2  Chức năng xây dựng biểu đồ.....................................................................39  2.2.3  Chức năng xem, xóa biểu đồ theo mã chứng khoán. ................................39  2.2.4  Chức năng phân tích đánh giá xu hướng giá chứng khoán.......................39  2.2.5  Chức năng đưa ra phán đoán dựa vào kết quả phân tích giá chứng khoán. 39  Tổng kết .....................................................................................................................39  iv Chương 3. .....................................................................................................................39  Thực nghiệm và kết quả..............................................................................................40  3.1 Xây dựng chương trình mô phỏng và chạy chương trình. ...............................40  3.1.1 Cơ sở dữ liệu..................................................................................................40  3.1.2 Các chức năng chính......................................................................................41  3.1.4. Giao diện chương trình và kiểm thử chức năng. ..........................................45  3.2 Đánh giá và phân tích.........................................................................................49  3.2.1 Độ chính xác so với thực tế. ..........................................................................49  3.2.2 Phân tích và đánh giá. ....................................................................................51  3.2.3. Những hạn chế của mô hình. ........................................................................53  3.2.4. Hướng phát triển của mô hình. .....................................................................54  Tổng kết .....................................................................................................................54  Kết luận ........................................................................................................................56  1 Lời mở đầu Ngày nay, sự bùng nổ của thị trường chứng khoán thúc đẩy mạnh mẽ sự ra đời và nâng cấp của hàng loạt các công cụ phân tích kĩ thuật. Nhìn chung, các biểu đồ chứa đựng các thông tin hữu ích về giá cổ phiếu trong quá khứ, hiện tại và dự báo tương đối chính xác về xu hướng giá trong tương lai. Hệ thống phân tích kĩ thuật giúp cho các nhà đầu tư cập nhật liên tục và phân tích sâu sát giá chứng khoán tại từng thời điểm và đưa ra những dự báo nhanh nhạy hơn với những sự thay đổi tức thì của giá chứng khoán.Tuy nhiên, có một thực tế là tại Việt Nam, một thị trường còn quá non trẻ, các công cụ phân tích kĩ thuật chưa được áp dụng rộng rãi và chưa minh họa được các xu hướng giá vốn là yếu tố cốt lõi của phân tích kĩ thuật. Từ những thực tế nêu trên, tôi nhận thấy cần thiết phải tìm hiểu và xây dựng một công cụ phân tích kĩ thuật phù hợp với môi trường tài chính của Việt Nam nói riêng và tạo ra thêm một công cụ dự báo thống kê đối với thế giới. Trong đề tài nghiên cứu của mình, tôi tập trung tìm hiểu về logic mờ (Fuzzy logic), một logic mềm dẻo hơn logic thông thường (logic Boolean) và thích hợp hơn đối với các bài toán phức tạp (ví dụ bài toán thế nào được coi là nóng, lạnh, ấm thì logic Boolean không đưa ra kết luận chính xác được). Từ các nguyên tắc của fuzzy logic để xây dựng nên các mô hình, kết hợp với các kiến thức chuyên môn về chứng khoán để đưa ra các dự báo về giá chứng khoán trong tương lai. Kết quả thu được sẽ là một hệ thống với tính năng chính là đoán nhận và dự báo xu hướng giá chứng khoán và một số tính năng khác hỗ trợ nhà đầu tư chứng khoán. Sau khi xây dựng được hệ thống, tôi tiến hành thử nghiệm trên chỉ số giá chứng khoán FPT và kết quả thực nghiệm đã chứng minh tính phù hợp và chính xác cao của mô hình trong việc dự báo giá chứng khoán. Khóa luận tốt nghiệp của tôi được chia làm ba phần chính: Chương I tập trung tìm hiểu về phương pháp phân tích kĩ thuật trên thị trường chứng khoán và logic mờ. Đây là những cơ sở lý thuyết về kinh tế và kĩ thuật quan trọng để xây dựng nên hệ thống dự báo giá chứng khoán. Đặc biệt, tôi chú trọng vào tìm hiểu chi tiết Logic mờ cùng các ứng dụng đã có trong thực tế, các bước thực hiện một mô hình logic mờ và cơ sở để lựa chọn công cụ thực hiện. Chương II sẽ đi sâu vào cách tổ chức lắp ghép hệ thống dự báo giá chứng 2 khoán, cụ thể hóa về quá trình xây dựng mô hình và đưa ra được các chức năng cũng như ứng dụng của mô hình đó trong việc tạo ra một hệ thống dự báo giá chứng khoán trong tương lai. Chương III sẽ báo cáo lại quá trình xây dựng mô hình thí nghiệm và đánh giá độ chính xác so với thực tế của mô hình vừa xây dựng bằng thực nghiệm trên mã chứng khoán FPT. Đồng thời, chương này cũng sẽ đưa ra những dự định và cơ sở để phát triển tiếp các chức năng khác của chương trình cũng như khắc phục lỗi và hoàn thiện lại các chức năng đã được xây dựng của chương trình. 3 Chương 1. 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ờ 1.1. Lý thuyết kinh tế. 1.1.1. Thị trường chứng khoán. ™ Định nghĩa. Thị trường chứng khoán là một thị trường mà ở nơi đó người ta mua bán, chuyển nhượng, trao đổi chứng khoán nhằm mục đích kiếm lời. Thị trường chứng khoán có thể là TTCK tập trung hoặc phi tập trung. Tính tập trung ở đây là muốn nói đến việc các giao dịch được tổ chức tập trung theo một địa điểm vật chất.Hình thái điển hình của TTCK tập trung là Sở giao dịch chứng khoán ( Stock exchange). Tại Sở giao dịch chứng khoán (SGDCK), các giao dịch được tập trung tại một địa điểm; các lệnh được chuyển tới sàn giao dịch và tham gia vào quá trình ghép lệnh để hình thành nên giá giao dịch. TTCK phi tập trung còn gọi là thị trường OTC (over the counter). Trên thị trường OTC, các giao dịch được tiến hành qua mạng lưới các công ty chứng khoán phân tán trên khắp quốc gia và được nối với nhau bằng mạng điện tử. Giá trên thị trường này được hình thành theo phương thức thoả thuận. ™ Chức năng của TTCK. • Huy động vốn đầu tư cho nền kinh tế. Khi các nhà đầu tư mua chứng khoán do các công ty phát hành, số tiền nhàn rỗi của họ được đưa vào hoạt động sản xuất kinh doanh và qua đó góp phần mở rộng sản xuất xã hội. Thông qua TTCK, Chính phủ và chính quyền ở các địa phương cũng huy động được các nguồn vốn cho mục đích sử dụng và đầu tư phát triển hạ tầng kinh tế, phục vụ các nhu cầu chung của xã hội. • Cung cấp môi trường đầu tư cho công chúng. TTCK cung cấp cho công chúng một môi trường đầu tư lành mạnh với các cơ 4 hội lựa chọn phong phú. Các loại chứng khoán trên thị trường rất khác nhau về tính chất, thời hạn và độ rủi ro, cho phép các nhà đầu tư có thể lựa chọn loại hàng hoá phù hợp với khả năng, mục tiêu và sở thích của mình. • Tạo tính thanh khoản cho các chứng khoán. Nhờ có TTCK các nhà đầu tư có thể chuyển đổi các chứng khoán họ sở hữu thành tiền mặt hoặc các loại chứng khoán khác khi họ muốn. Khả năng thanh khoản là một trong những đặc tính hấp dẫn của chứng khoán đối với người đầu tư. Đây là yếu tố cho thấy tính linh hoạt, an toàn của vốn đầu tư. TTCK hoạt động càng năng động và có hiệu quả thì tính thanh khoản của các chứng khoán giao dịch trên thị trường càng cao. • Đánh giá hoạt động của doanh nghiệp. Thông qua chứng khoán, hoạt động của các doanh nghiệp được phản ánh một cách tổng hợp và chính xác, giúp cho việc đánh giá và so sánh hoạt động của doanh nghiệp được nhanh chóng và thuận tiện, từ đó cũng tạo ra một môi trường cạnh tranh lành mạnh nhằm nâng cao hiệu quả sử dụng vốn, kích thích áp dụng công nghệ mới, cải tiến sản phẩm. • Tạo môi trường giúp Chính phủ thực hiện các chính sách kinh tế vĩ mô. Các chỉ báo của TTCK phản ánh động thái của nền kinh tế một cách nhạy bén và chính xác. Giá các chứng khoán tăng lên cho thấy đầu tư đang mở rộng, nền kinh tế tăng trưởng; ngược lại giá chứng khoán giảm sẽ cho thấy các dấu hiệu tiêu cực của nền kinh tế. Vì thế, TTCK được gọi là phong vũ biểu của nền kinh tế và là một công cụ quan trọng giúp Chính phủ thực hiện các chính sách kinh tế vĩ mô. Thông qua TTCK, Chính phủ có thể mua và bán trái phiếu Chính phủ để tạo ra nguồn thu bù đắp thâm hụt ngân sách và quản lý lạm phát. Ngoài ra, Chính phủ cũng có thể sử dụng một số chính sách, biện pháp tác động vào TTCK nhằm định hướng đầu tư đảm bảo cho sự phát triển cân đối của nền kinh tế. 1.1.2. Phương pháp phân tích kỹ thuật. ™ Định nghĩa. Phân tích kỹ thuật là việc sử dụng các mô hình toán học (đồ thị, biến đổi miền, xác suất thống kê,…) dựa trên dữ liệu thu thập về thị trường trong quá khứ và hiện tại để chỉ ra trạng thái của thị trường tại thời điểm xác định, thông thường là nhận định xu hướng thị trường đang lên, xuống hay “dập dềnh” hoặc nhận định tương quan lực 5 lượng giữa sự tăng và sự giảm giá. Phân tích kỹ thuật không để ý đến các chỉ số tài chính, tình hình phát triển hay các thông tin về thị trường về doanh nghiệp mà chỉ chú trọng vào tập các dữ liệu về giá cả, khối lượng… của cổ phiếu thu thập được tại các phiên giao dịch trong quá khứ. Chính vì chỉ dựa vào tập dữ liệu đã tồn tại trên thị trường, tức là các thông tin trong quá khứ- phân tích kỹ thuật không phải là công cụ để dự đoán tương lai giá cả của cổ phiếu. Những kết luận thu được từ các biện pháp phân tích kỹ thuật chỉ thị trạng thái của thị trường đã xảy ra trong quá khứ; thời điểm rút ra kết luận về trạng thái của thị trường luôn luôn đi sau so với sự kiện đã xảy ra. Khoảng thời gian chênh lệch đó gọi là độ trễ. Xét ví dụ về một phương pháp phân tích kỹ thuật sử dụng trung bình động. Giá CK trong 5 phiên đến ngày 18/05/2007 của Công ty cổ phần nhựa Đồng Nai – Mã CK DNP. Bảng 1: Ví dụ về thống kê chứng khoán Ngày Giá Thay đổi % thay đổi Khối lượng 18/05 76.000 2.000 2,7% 56,350 17/05 74.000 2.000 2,78% 36.190 16/05 72.000 -3.500 -4.64% 43.350 15/05 75.500 3.500 4,86% 30.550 14/05 72.000 3.000 4,35% 52.750 Vậy giá trị trung bình động trong 5 phiên của DNP vào ngày 18/05/2007 là (76.000 + 74.000 + 72.000 + 75.500 + 72.000) / 5 = 73.900 đ Tập hợp các giá trung bình động của DNP trong các ngày khác nhau sẽ được đường trung bình động giá trong 5 phiên của DNP. 6 Hình 1: Biểu đồ kỹ thuật chứng khoán trong thực tế Bằng mắt thường quan sát đường trung bình động có thể nhận định rằng xu thế của DNP đến thời điểm ngày 18/05/2007 là tăng giá, liệu sau ngày 18/05/2007 giá CP của DNP có tiếp tục tăng không? Đây chính là nhiệm vụ của việc phân tích kỹ thuật. ™ Các khái niệm cơ bản trong phân tích kỹ thuật. • Điểm đảo chiều Có điểm đảo chiều lên và đảo chiều xuống, trong trường hợp xu thế của giá chứng khoán đang tăng xuất hiện điểm đảo chiều mà tại đó giá chứng khoán đi xuống thì gọi là điểm đảo chiều lên. Ngược lại khi giá chứng khoán đang xuống mà xuất hiện điểm đảo chiều mà tại đó giá chứng khoán đi lên thì gọi là điểm đảo chiều xuống. • Ngưỡng kháng cự và ngưỡng hỗ trợ Ngưỡng hỗ trợ giữ cho giá cổ phiếu ở trên một mức giá nhất định nào đó, ngược lại ngưỡng kháng cự lại kìm giá cổ phiếu ở dưới một mức giá nhất định nào đó. Biểu diễn các đường hỗ trợ và kháng cự trên biểu đồ giúp nhà đầu tư hiểu được tầm quan trọng của nó trong quá khứ cũng như trong tương lai như thế nào. Nếu chúng ta thấy có giao dịch ở tại một trong hai ngưỡng này thì có thể dự đoán một cách tuơng đối giá của cổ phiếu mà chúng ta chọn mua. Và dĩ nhiên sau đó chúng ta có thể ra quyết định mua bán trên những mức giá mong đợi này. • Phân kỳ. 7 Phân kỳ đóng vai trò phát sinh các tín hiệu mua và bán hoặc giữ vai trò là một cảnh báo về sự thay đổi xu thế. Có 2 loại phân kỳ là phân kỳ dương và phân kỳ âm. Phân kỳ dương là phân kỳ mà giá trị của phân tích tăng nhưng giá của chứng khoán đang có xu hướng giảm; phân kỳ dương báo hiệu về sự thay đổi xu hướng sắp tới của giá là tăng giá. Hình 2: Phân kỳ dương Nguồn: www.bsc.com.vn Phân kỳ âm là phân kỳ mà giá trị của phân tích giảm nhưng giá của chứng khoán tăng; phân kỳ âm báo hiệu về sự thay đổi xu thế sắp tới sẽ là giảm giá. Điều này không có nghĩa là tại thời điểm mà nhà đầu tư nhìn thấy chu kỳ dương hoặc chu kỳ âm thì xu thế giá sẽ thay đổi trong tương lai gần, rất khó xác định khi nào sự thay đổi xu thế sẽ xảy ra. Vì vậy không thể ra quyết định mua hoặc bán chỉ dựa vào phân kỳ mà phải sử dụng với vai trò củng cố bổ trợ với các tín hiệu khác. • Siêu mua /Siêu bán. Siêu mua và siêu bán là hai ngưỡng giá trị của phân tích. Mọi giá trị nằm trên ngưỡng siêu mua thì tại đó nó thể hiện giá CP tăng. Mọi giá trị nằm dưới ngưỡng siêu bán là giá CP giảm. Phân tích việc xuyên phá các ngưỡng giá trị này nhằm chỉ ra khi giá CP đang biến động dập dềnh nhằm chỉ ra xu thế sắp tới của giá CP sẽ là tăng giá hay giảm giá. Trong trường hợp giá CP biến động có xu thế, sử dụng các ngưỡng siêu mua hoặc siêu bán thường hay cho tín hiệu không phù hợp nếu việc mua và bán đi 8 ngược lại xu thế của thị trường. Tuy nhiên vẫn có thể sử dụng các tín hiệu mua hoặc bán khi giá trị siêu mua hoặc siêu bán bị xuyên phá nhưng phải thuận theo xu thế chung thị trường mà không được đi ngược lại. Cụ thể nếu có tín hiệu mua và biến động là tăng thì có thể mua, nếu có tín hiệu bán và biến động là giảm thì có thể bán; xu thế càng mạnh mẽ thì tín hiệu càng đáng tin cậy. • Đường trung bình. Đường trung bình là ngưỡng trung bình giá trị của phân tích. Nếu sự xuyên phá là vượt ngưỡng trung bình, thế trận đổi chiều nghiêng phần thắng về phe bán cổ phiếu. Ngược lại nếu sự xuyên phá là xuống dưới ngưỡng trung bình điều đó có nghĩa thế trận đổi chiều nghiêng phần thắng về phe mua cổ phiếu. • Tín hiệu mua và bán. Để đưa ra các quyết định mua và bán hợp lý, cần có một số tín hiệu khác nhau bổ trợ lẫn nhau nhằm tăng cường độ chính xác của các tín hiệu và giảm thiểu rủi ro đối mới mỗi quyết định. Các dấu hiệu sau được sử dụng để báo hiện việc mua hoặc bán: Nếu giá trị của máy dao động từ dưới vượt qua ngưỡng siêu mua rồi quay trở lại xuống dưới ngưỡng này, đồng thời xu thế giá là đi xuống hoặc biến động dập dềnh. Điều đó cảnh báo thị trường sẽ chuyển sang xu thế giảm giá hoặc đang ở giai đoạn đầu của xu thế giảm giá. Đây là tín hiệu bán ra. Nếu giá trị của máy dao động từ dưới vượt qua ngưỡng siêu bán rồi quay trở lại lên trên ngưỡng này, đồng thời xu thế giá là đi lên hoặc biến động dập dềnh. Điều đó cảnh báo thị trường sẽ chuyển sang xu thế tăng giá hoặc đang ở giai đoạn đầu của xu thế tăng giá. Đây là tín hiệu mua vào. Nếu xu thế giá đang tăng mạnh, khi giá trị của máy dao động vượt qua ngưỡng siêu mua có nghĩa là đang ở giai đoạn đầu của xu thế tăng giá và sẽ tiếp tục tăng. Đây là tín hiệu mua vào. Nếu xu thế giá đang giảm mạnh, khi giá trị của máy dao động vượt qua ngưỡng siêu bán có nghĩa là đang ở giai đoạn đầu của xu thế giảm giá và sẽ tiếp tục giảm, Đây là tín hiệu bán ra. Nếu giá trị máy dao động đang ở dưới ngưỡng siêu bán nhưng có sự xuất hiện của phân kỳ dương thì đó là tín hiệu mua vào. Chú ý tính thuận theo xu thế: nếu thị trường ở trạng thái dập dềnh hoặc xu thế là tăng hoặc giảm nhẹ thì có thể mua, nếu thị trường ở trạng thai giảm mạnh thì tín hiệu này không đáng tin. Nếu giá trị máy dao động đang ở trên ngưỡng siêu mua nhưng có sự xuất hiện của phân kỳ âm thì đó là tín 9 hiệu bán ra. Chú ý tính thuận theo xu thế: nếu thị trường ở trạng thái dập dềnh hoặc xu thế là giảm hoặc tăng nhẹ thì có thể bán, nếu thị trường ở trạng thái tăng mạnh thì tín hiệu này không đáng tin. Nếu giá trị máy dao động tăng vượt qua giá trị trung bình và có sự xuất hiện của phân kỳ dương và xu thế giá đi lên thì đó là tín hiệu mua vào. Nếu giá trị máy dao động giảm xuống xuyên qua giá trị trung bình và có sự xuất hiện của phân kỳ âm và xu thế giá đi xuống thì đó là tín hiệu bán ra. Ví dụ: xét ví dụ về sử dụng ngưỡng trung bình của phân tích MACD đối với chứng chỉ quỹ VF1. Hình 3: Biểu đồ giúp nhận biết các dấu hiệu đảo chiều Nguồn: www.bsc.com.vn Thời điểm số (1), (5) là thời điểm giai đoạn đầu của xu thế tăng giá mạnh, ngưỡng siêu mua bị xuyên phá, thuận theo xu thế của thị trường, đây là lúc nên mua vào. Thời điểm số (2), (3), (4) là thời điểm mà giá CP đã vượt từ dưới ngưỡng siêu bán lên trên. Tại các thời điểm này còn có sự xuất hiện của phân kỳ dương, đây là tín hiệu mua vào. Để tăng cường chính xác cần theo dõi thêm xu thế lúc đó của thị trường. Tại thời điểm số (2), về dài hạn giá CP đang theo xu thế giảm, nhưng trong ngắn hạn 5 ngày thì tại thời điểm đó giá đang tăng, nếu tuân theo xu thế ngắn hạn thì có thể mua vào nhưng phải bán ngay ra khi có thể vì sự tăng giá chỉ là ngắn hạn. Tại thời điểm 10 số (3) và số (4) cho thấy những dấu hiệu chắc chắn hơn vì biến động lúc đó là dập dềnh, các tín hiệu khẳng định nên mua vào vì tin tưởng ở sự lên giá trong tương lai. Thời điểm số (6) là thời điểm nên bán ra vì ngưỡng siêu bán đã bị xuyên phá trong xu thế biến động giảm giá mạnh của thị trường. Việc bán ra ở thời điểm này nhằm mục đích giảm lỗ, chờ đợi sự hồi phục lại của thị trường để tiếp tục mua vào. Phân tích chứng khoán là một nghệ thuật hơn là một ngành khoa học chính xác. Vì vậy cần phải sử dụng kết hợp nhiều phương pháp khác nhau để đạt đến kết quả tốt nhất. Thậm chí ngay trong cùng một phương pháp cũng có nhiều cách sử dụng khác nhau tùy thuộc vào ngữ cảnh cụ thể. Vì vậy cần phải trải qua rèn luyện kiến thức và thực hành để tự đào tạo bản thân đạt được sự nhạy bén và chính xác mà không một phương pháp nào có thể đạt được. ™ Vai trò của phân tích kỹ thuật Phân tích kỹ thuật đóng vai trò là công cụ trợ giúp nhà đầu tư với ba chức năng chính: báo động, xác thực và dự đoán. • Công cụ báo động Phân tích kỹ thuật cảnh báo sự xuyên phá các ngưỡng an toàn và thiết lập nên các ngưỡng an toàn mới hay nói cách khác là thiết lập mức giá mới thực sự thay vì dao động quanh một mức giá cũ. Đối với nhà đầu tư việc nhận biết các dấu hiệu về sự thay đổi mức giá càng sớm càng tốt giúp cho họ sớm có hành động mua vào hoặc bán ra kịp thời. • Công cụ xác nhận. Mỗi phương pháp phân tích kỹ thuật được sử dụng kết hợp với các phương pháp kỹ thuật khác hoặc các phương pháp phi kỹ thuật để xác nhận về xu thế của giá. Việc kết hợp và bổ trợ lẫn nhau giữa các phương pháp kỹ thuật khác nhau giúp nhà đầu tư có được kết luận chính xác và tối ưu hơn. • Công cụ dự đoán. Nhà đầu tư sử dụng các kết luận của phân tích kỹ thuật để dự đoán giá cả của tương lai với kỳ vọng về khả năng đoán tốt hơn. Tuy nhiên như trên đã nói, bản chất của phân tích kỹ thuật không phải là dự báo tương lai mà là chỉ thị trạng thái thị trường trong quá khứ với một độ trễ; do đó nếu sử dụng như một công cụ dự đoán nhà đầu tư cần phải tính đến một xác suất an toàn và chấp nhận rủi ro khi dự đoán là không phù hợp. Không ai có thể nói trước tương lai chỉ bằng thông tin trong quá khứ. Tuy 11 nhiên nhờ có phân tích kỹ thuật, khả năng đoán sai do đoán được hạn chế rất nhiều. Mỗi phương pháp kỹ thuật được áp dụng sẽ thể hiện các vai trò trên với các ưu nhược điểm khác nhau. 1.1.3. Lý thuyết dow ™ Tìm hiểu chung. Lý thuyết Dow là cơ sở đầu tiên cho mọi nghiên cứu kĩ thuật trên thị trường cơ sở để xây dựng cũng như đối tượng nghiên cứu của lý thuyết chính là những biến động của bản thân thị trường (thể hiện trong chỉ số trung bình của thị trường) và không hề dựa trên cùng cơ sở của phân tích cơ bản là các thống kê hoạt động kinh doanh của doanh nghiệp. Tìm hiểu về lý thuyết của Dow, trước tiên ta phải nghiên cứu đến chỉ số trung bình của thị trường. Nhìn chung giá chứng khoán của tất cả các công ty đều cùng lên và xuống, tuy nhiên một số cổ phiếu lại chuyển động theo hướng ngược lại xu thế chung của các cổ phiếu khác cho dù là chỉ trong vài ngày hoặc vài tuần. Thực tế cho thấy khi thị trường lên giá thì giá của một số chứng khoán tăng nhanh hơn những chứng khoán khác, còn khi thị trường xuống giá thì một số chứng khoán giảm giá nhanh chóng trong khi có một số khác lại tăng lên, nhưng thực tế vẫn chứng minh rằng hầu như tất cả các chứng khoán đều dao động theo cùng một xu thế chung. ™ Nguyên lý quan trọng của lý thuyết Dow. Khi nghiên cứu lý thuyết Dow có 12 nguyên lý quan trọng sau: • Chỉ số bình quân thị trường phản ánh tất cả. Bởi vì nó phản ánh những hoạt động có liên kết với nhau của hàng nghìn nhà đầu tư, gồm cả những người có kinh nghiệm dự đoán thị trường giỏi nhất, có những thông tin tốt nhất về xu hướng và các sự kiện, những gì có thể nhận thấy trước và tất cả những gì có thể ảnh hưởng đến cung và cầu của các loại chứng khoán. Thậm chí cả những thiên tai hay thảm họa không dự tính được thì ngay khi xảy ra chúng đã được thị trường phản ánh ngay vào giá của các loại chứng khoán. • Ba xu thế của thị trường. Thuật ngữ thị trường nhằm chỉ giá chứng khoán nói chung, dao động của thị trường tạo thành các xu thế giá, trong đó quan trọng nhất là các xu thế cấp 1 (xu thế chính hay xu thế cơ bản). Đây là những biến động tăng hoặc giảm với qui mô lớn, thường kéo dài trong một hoặc nhiều năm và gây ra sự tăng hay giảm đến 20% giá của các cổ 12 phiếu. Chuyển động theo xu thế cấp 1 sẽ bị ngắt quãng bởi các bởi sự xen vào của các dao động cấp 2 theo hướng đối nghịch - gọi là những phản ứng hay điều chỉnh của thị trường. Những biến động này xuất hiện khi xu hướng cấp 1 tạm thời vượt quá mức độ hiện tại của bản thân nó (gọi chung các biến động này là các biến động trung gian - biến động cấp 2). Những biến động cấp 2 bao gồm những biến động giá nhỏ hay gọi là những biến động hàng ngày và không có ý nghĩa quan trọng trong Lý thuyết Dow. Xu thế cấp 1 Như đã nói đến ở phần trước, xu thế cấp 1 là những chuyển động lớn của giá, bao hàm cả thị trường, thường kéo dài hơn 1 năm và có thể là trong vài năm. Nếu như mỗi đợt tăng giá liên tiếp đều đạt đến mức cao hơn mức trước đó và mỗi điều chỉnh cấp 2 đều dừng lại ở mức đáy cao hơn mức đáy của lần điều chỉnh trước thì xu thế cấp 1 lúc này là tăng giá. Còn ngược lại nếu mỗi biến động giảm đều làm cho giá xuống những mức thấp hơn còn mỗi điều chỉnh đều không đủ mạnh để làm cho giá tăng lên đến mức đỉnh của những đợt tăng giá trước đó thì xu thế cấp 1 của thị trường lúc này là giảm giá. Thông thường, về lý thuyết thì xu thế cấp 1 chỉ là một trong 3 loại xu thế mà một nhà đầu tư dài hạn quan tâm. Mục đích của nhà đầu tư đó là mua chứng khoán càng sớm càng tốt trong một thị trường lên giá, với một kinh doanh chứng khoán ngắn hạn thì những biến động của xu thế cấp 2 lại có vai trò quan trọng bởi họ kiếm lợi nhuận dựa trên những biến động ngắn hạn của thị trường. Xu thế cấp 2 Xu thế cấp 2 là những điều chỉnh có tác động làm gián đoạn quá trình vận động của giá theo xu thế cấp 1. Chúng là những đợt suy giảm tạm thời (trung gian) hay còn gọi là những điều chỉnh xuất hiện ở các thị trường tăng giá; hoặc những đợt tăng giá hay còn gọi là hồi phục xuất hiện ở các thị trường giảm giá. Thường thì những biến động trung gian này kéo dài từ 3 tuần đến nhiều tháng. Chúng sẽ kéo ngược lại khoản 1/3 đến 2/3 mức tăng (hay giảm tùy loại thị trường) của giá theo xu thế cấp 1. Do đó, chẳng hạn trong thị trường tăng giá, nếu chỉ số giá bình quân công nghiệp tăng liên tục ổn định hoặc có gián đoạn rất nhỏ và mức tăng đạt đến 30 điểm, khi đó xuất hiện xu thế điều chỉnh cấp 2, thì người ta có thể trông đợi xu thế điều chỉnh này có thể làm giảm từ 10 đến 20 điểm cho đến khi thị trường lặp lại xu thế tăng cấp 1 ban đầu của nó. Dẫu sao cũng cần lưu ý là qui tắc giảm 1/3 đến 2/3 không phải là một luật lệ không thể phá vỡ mà nó đơn giản chỉ là một nhận xét về khả năng có thể xảy ra mà hầu hết các biến động cấp 2 đều bị giới hạn trong mức này. Rất nhiều trong số đó ngừng tác 13 động ở điểm gần với mức 50% mà rất hiếm khi đạt đến mức 1/3. Như vậy có 2 tiêu chí để nhận định một xu thế cấp 2: Tất cả những chuyển động của giá ngược hướng với xu thế cấp 1 kéo dài ít nhất 3 tuần và kéo hoàn lại ít nhất 1/3 mức biến động thức của xu thế cấp 1 (tính từ điểm kết thúc biến động cấp 2 trước đó đến biến động cấp 2 này, bỏ qua những dao động nhỏ) thì được coi là thuộc loại trung gian hay còn gọi là biến động cấp 2. Mặc dù đã có những tiêu chí để xác định một xu thế cấp 2 nhưng vẫn có những khó khăn trong việc xác định thời điểm hình thành và thời gian tồn tại của xu thế. Xu thế nhỏ (Minor). Đây là những dao động trong thời gian ngắn (dài tối đa 3 tuần, hường chỉ dưới 6 ngày) mà theo như thuyết Dow đã nói đến, bản thân chúng không thực sự có ý nghĩa nhưng chúng góp phần tạo nên các xu thế trung gian. Thông thường thì một biến động trung gian dù là một xu thế cấp 2 hay là một phần của xu thế cấp 1 xen giữa hai xu thế cấp 2 liên tiếp, đều được tạo thành từ một dãy gồm 3 hoặc nhiều hơn những dao động nhỏ khác nhau. Xu thế nhỏ là dạng duy nhất trong 3 loại xu thế có thể bị “lôi kéo” (bị tác động). Để tác động vào xu thế cấp 1 và 2 thì cần những giao dịch với khối lượng rất lớn và điều này hầu như là không thể. • Bull Market (thị trường Bull market - thị trường tăng giá) Một xu thế tăng giá cơ bản thường bao gồm 3 thời kì: Thời kì đầu tiên là quá trình “tích tụ”, trong quá trình này, những nhà đầu tư có tầm nhìn xa sẽ tiến hành xem xét các doanh nghiệp, có thể vào thời kì này doanh nghiệp đang suy thoái nhưng nhà đầu tư nhận thấy khả năng doanh ngiệp có thể chuyển biến tình hình thành tăng trưởng nhanh chóng, có thể giá cổ phiếu của nó sẽ tăng trong thời gian tới. Đây cũng là thời điểm mà cổ phiếu này đang được chào bán rất nhiều bởi những nhà đầu tư đang có tâm lý rất chán nản và lo lắng về tình trạng của những cổ phiếu của họ và để nhằm tăng dần giá chào bán của họ khi thị trường xuất hiện sự suy giảm trong khối lượng giao dịch. Các bản báo cáo tài chính của doanh nghiệp đó có thể không tốt thậm chí rất tồi. Công chúng hoàn toàn cảm thấy thất vọng khi tham gia vào thị trường chứng khoán bởi họ thấy lượng tiền đã đầu tư của họ đang giảm giá trị nhanh chóng và có nguy cơ còn giảm nữa, vì vậy mà họ muốn thoát ra khỏi thị trường. Tuy nhiên có thể nhận thấy một điều vào cuối giai đoạn thứ nhất này là trong hoạt động của công ty và trong những biến động trên thị trường đã có những biến chuyển tuy mới chỉ ở mức hạn chế, bắt đầu xuất hiện những đợt tăng giá nhỏ. 14 Thời kỳ thứ 2 là thời kỳ của sự tăng trưởng khá vững chắc. Họat động của doanh ngiệp đang theo dõi gia tăng mạnh cùng với những khởi sắc trong nội bộ doanh nghiệp và doanh thu của nó cũng tăng dần và bắt đầu thu hút các mối quan tâm trên thị trường. Đây chính là thời kì mang lại nhiều lợi nhuận cho các nhà kinh doanh chứng khoán theo trường phái Phân tích kỹ thuật. Thời kì thứ 3, trong thời kì này thị trường sôi sục với những biến động của nó. Công chúng rất háo hức với từng biến động của thị trường. Tất cả các thông tin tài chính của doanh nghiệp đưa ra đều rất tốt, giá chứng khoán tăng cao ngoài sức tưởng tượng và đang là những vấn đề nóng hổi được đưa lên trang đầu của các tờ báo ra hàng ngày. Đến thời điểm sau khoảng hai năm tính từ lúc thị trường bắt đầu đi lên, những người ít kinh nghiệm có thể mới cho rằng thị trường lúc này mới chắc chắn cho lợi nhuận của họ và muốn tham gia vào thị trường. Nhưng thực sự thì sau hai năm, giá đã tăng khá cao, câu hỏi nên đặt ra vào lúc này là “nên bán cổ phiếu nào? ” chứ không còn là “nên mua cổ phiếu nào ? ” nữa. Vào cuối thời kì thứ 3, người ta có thể thấy nạn đầu cơ tràn lan, khối lượng giao dịch vẫn tiếp tục tăng nhưng “air-pocket-stock” xuất hiện ngày càng nhiều, số lượng cổ phiếu có giá thấp nhưng không có giá trị đầu tư cũng gia tăng và cả những đợt phát hành trái phiếu cũng ít dần đi. • Bear Market (Thị trường con gấu Bear Market - thị trường giảm giá) Xu thế giảm giá của thị trường cũng được chia thành ba thời kỳ. Thời kỳ đầu tiên là thời kỳ “phân bổ” (thời kỳ này thực sự bắt đầu ở giai đoạn cuối của Bull Market trước đó). Trong thời kỳ này những nhà đầu tư có tầm nhìn xa đều nhận thấy rằng doanh thu (và các chỉ số kinh doanh nói chung) của những công ty mà họ đang nắm giữ cổ phiếu đều đang đạt mức cao không bình thường và họ muốn nhanh chóng thoát khỏi vị thế sở hữu cổ phiếu của những công ty này. Khối lượng giao dịch vẫn rất cao mặc dù đã có những dấu hiệu của xu hướng giảm, công chúng vẫn rất “năng động” nhưng cũng bắt đầu có dấu hiệu lo lắng và cũng không còn nhiều kỳ vọng kiếm lợi nhuận. Thời kỳ thứ hai được gọi là thời kỳ "hỗn loạn". Số lượng người mua bắt đầu giảm dần và những người bán bắt đầu trở lên vội vã bán đi những cổ phiếu mình đang nắm giữ. Xu thế giảm giá bắt đầu tăng mạnh làm đồ thị giá gần như dốc thẳng xuống và khối lượng giao dịch đạt đến mức đỉnh điểm. Giai đoạn này được gọi là hỗn loạn vì sự sụt giảm thường xảy ra rất trầm trọng thậm chí là thái quá với mức độ vượt quá cả thực trạng của các doanh nghiệp. Sau giai đoạn hỗn loạn có thể có giai đoạn hồi phục 15 (một dạng xu thế cấp hai) hoặc một giai đoạn dao động ngang của đồ thị thị trường (các dao động không có hướng đi lên hay đi xuống mà là dao động trong một khoảng cố định theo chiều ngang của thị trường) trong một thời gian tương đối dài. Giai đoạn này thể hiện tâm lý chán nản của một bộ phận nhà đầu tư, họ cũng chính là những người đã cố gắng nắm giữ cổ phiếu qua thời kỳ hỗn loạn trước đó hoặc cũng có thể là những người đã mua cổ phiếu trong thời kỳ đó bởi vì lúc đó giá của cổ phiếu rõ ràng là rẻ hơn rất nhiều so với trước đó vài tháng. Thông tin về các doanh nghiệp ngày càng xấu đi. Kết thúc giai đoạn này mới bước vào thời kỳ thứ ba. Thời kỳ thứ ba, xu thế đi xuống trên thị trường đã yếu dần, nhưng lại được duy trì bởi những lệnh bán nhiều và liên tục thể hiện “nỗi buồn” và sự lo lắng của những nhà đầu tư đang rất cần tiền cho những nhu cầu riêng của họ. Các cổ phiếu đều giảm đến mức thấp nhất, thậm chí gần như mất hoàn toàn giá trị. Những cổ phiếu có chất lượng cao hầu như không được giao dịch vì những người sở hữu chúng đều muốn nắm giữ đến cùng. Ở giai đoạn cuối của Bear Market, như một kết quả của toàn bộ thời kỳ giảm giá trước, cả thị trường chỉ tập trung vào giao dịch một số loại cổ phiếu. Bear Market kết thúc tất cả với những tin xấu về các doanh nghiệp, về thị trường ở mức có thể coi là tồi tệ nhất đã thể hiện ra và có thể đến. • Hai đường chỉ số bình quân của thị trường phải cùng xác nhận xu thế của thị trường. Đây là câu hỏi thường xuyên đặt ra nhất và cũng khó giải thích nhất đối với hệ thống các nguyên lý của lý thuyết Dow. Tuy nhiên từ khi được đưa ra cho đến nay nó đã được thời gian chứng minh tính đúng đắn và nó vẫn được vận dụng cho đến ngày nay và bất kì một ai đã xem xét những số liệu ghi lại thì đều không thể có ý kiến phản đối với nguyên lý này. Còn với những người ít quan tâm hay bỏ qua nguyên lý này thì trong thực tế kinh doanh đã và sẽ phải nhiều lần cảm thấy tiếc nuối. Điều nguyên lý này muốn nói đến là không thể có một dấu hiệu chính xác nào về sự thay đổi xu thế thị trường có thể được khẳng định chỉ thông qua xem xét biến động của duy nhất một loại chỉ số bình quân (ở đây muốn nói đến những thị trường bao gồm nhiều chỉ số bình quân, chẳng hạn như ở Mỹ, như nói ở phần đầu, có hai loại chỉ số bình quân). 16 Hình 4: Chỉ số bình quân bên dưới chỉ ra thị trường đi lên và đi xuống Như vậy thị trường sẽ vẫn đi xuống do cả hai không cùng xác nhận một sự đảo chiều trong xu thế hiện tại của thị trường. Hình 5: Dấu hiệu đảo chiều trong thực tế • Khối lượng giao dịch áp dụng kèm với xu thế thị trường. Điều này thể hiện một thực tế là khi giá biến động theo đúng xu thế cấp 1 thì các họat động kinh doanh trên có xu hướng mở rộng hơn. Do vậy, với Bull Market, khối lượng giao dịch sẽ tăng nếu giá tăng, và sẽ thu lại nếu giá giảm; với Bear Market giá trị giao dịch sẽ tăng nếu giá giảm và ít khi giá có dấu hiệu phục hồi. Điều này vẫn đúng ở mức độ thấp hơn tức là với những xu thế cấp 2, đặc biệt là trong giai đoạn đầu của một xu thế hồi phục cấp 2 trong một Bear Market, khi mà các diễn biến của thị trường chỉ ra rằng giá sé tăng lên theo một số đợt tăng giá nhỏ, còn các biến động kéo giá xuống giảm đi. Các kết luận ở đây thường không có giá trị nếu chỉ dựa trên 17 diễn biến trong vài ngày và càng không có giá trị với những kết luận dựa trên một phiên giao dịch đơn lẻ. Nguyên lý này chỉ phát huy hiệu quả nếu dựa trên những diễn biến của khối lượng giao dịch chung trong thời gian giao dịch tương đối dài. Hơn nữa, theo Lý thuyết Dow thì chỉ dựa trên những phân tích về giá mới có thể đưa ra được những dấu hiệu mang tính quyết định về xu thế thị trường, còn khối lượng giao dịch chỉ có thể cung cấp thêm những chứng cứ phụ để giải thích rõ hơn biến động của thị trường và sử dụng vào những tình huống khi dấu hiệu chính tỏ ra còn nhiều nghi ngờ • Đường ngang có thể thay thế cho các xu thế cấp 2. Đường ngang theo định nghĩa của Lý thuyết Dow là những chuyển động ngang có tính chất trung gian của thị trường phản ánh thời kỳ mà giá biến động rất ít (với thị trường Mĩ là nhỏ hơn hoặc bằng 5%). Đường ngang thường kéo dài từ 2 đến 3 tuần hoặc đôi khi là lâu hơn (trong vài tháng). Khi thị trường xuất hiện mô hình dạng đường ngang, điều này chỉ ra rằng áp lực của cung và cầu trên thị trường là tương đối cân bằng. Thực tế trong giai đoạn này các lệnh đặt mua hoặc bán đều thể hiện một sự kiệt sức. Những người muốn mua cổ phiếu thì phải tăng mức giá chào mua để khuyến khích người có cổ phiếu mà họ muốn bán cho họ, còn những người muốn bán thì với thị trường có biến động dạng đường ngang họ thấy rằng số lượng người mua đang ít dần và kết quả là họ phải giảm giá để có thể bán được những cổ phiếu của mình. Do vậy một mức giá dao động vượt ra ngoài mức dao động của mô hình đường ngang đang xuất hiện trên thị trường sẽ là một dấu hiệu rõ ràng cho một thị trường lên hoặc xuống giá tùy thuộc vào hướng của dao động vượt ra ngoài. Nhìn chung mô hình đường ngang càng kéo dài lâu và biên độ dao động càng nhỏ thì ý nghĩa của dao động vượt ra ngoài mô hình đường ngang càng lớn. Mô hình đường ngang thường diễn ra dài vừa đủ để khoảng thời gian tồn tại của nó mang một ý nghĩa quan trọng đối với những người phân tích thị trường theo trường phái Dow. Những biến động vượt ra ngoài mô hình đường ngang có thể là dấu hiệu cho thấy mô hình này chính là những mức đỉnh hoặc đáy rất quan trọng của thị trường bởi nếu là đỉnh thì đó chính là giai đoạn “phân bổ” - giai đoạn ban đầu của một Bear Market; còn nếu dấu hiệu cho thấy nó có thể là mức đáy của thị trường thì đây là giai đoạn “tích tụ” - giai đoạn đầu của một Bull Market. Thông thường nhất, nó đóng vai trò như một thời kỳ yên tĩnh thuộc giai đoạn cuối cùng trong quá trình hình thành hoặc thuộc giai đoạn củng cố xu thế cấp 1 của thị trường. Trong những trường hợp đó mô hình này đóng vai trò như những sóng cấp 2. Mức biến động 5% cũng hoàn toàn chỉ là một mức biên độ được xác định theo kinh nghiệm bởi trên thực tế rằng mô hình 18 đường ngang có rất nhiều điểm tương đồng với mô hình cũng có nhiều biến động ngang với biên độ lớn hơn nhưng hai biên của nó vẫn được xác định khá rõ ràng và tương đối chuẩn nên cũng được tính là một loại mô hình đường ngang. • Chỉ sử dụng mức giá đóng cửa để nghiên cứu. Lý thuyết Dow không quan tâm và ít đề cao đến các mức biến động giá (thậm chí là cả mức giá cao nhất và thấp nhất) trong ngày mà chỉ quan tâm đến những số liệu cuối ngày giao dịch, chẳng hạn như mức bình quân giá bán cuối cung trong ngày. Xem xét một thị trường với xu thế cơ bản là tăng giá và đang ở thời điểm giá tăng và đạt mức đỉnh của ngày hôm đó vào 11 giờ sáng, giả sử lúc đó chỉ số bình quân đang là 152.45 sau đó lại giảm xuống mức giá đóng cửa là 150.70. Để có thể xác nhận thị trường vẫn đang trong xu thế cơ bản là tăng giá thì ở đợt tăng giá tiếp theo mức giá đóng cửa phải cao hơn 150.70. Trong trường hợp này mức đỉnh 152.45 không được quan tâm đến. Trái lại nếu ở đợt thứ 2, dù giá có đạt đến mức đỉnh ở 152.60 nhưng giá đóng cửa lại nhỏ hơn 150.70 thì hoàn toàn có cơ sở để nghi ngờ liệu xu thế tăng giá hiện tại có còn tiếp tục hay không. • Một xu thế cần được giả định rằng vẫn đang tiếp tục cho đến khi có một dấu hiệu thực sự về sự đảo chiều của xu thế đó được xác định. Nguyên lý này là một trong những nguyên lý có nhiều ý kiến tranh cãi nhất. Nhưng khi được hiểu chính xác nó vẫn có giá trị rất lớn trong phân tích thị trường. Nguyên lý thứ mười hai giúp đề phòng với những thay đổi (phản ứng) quá sớm trong quan điểm về thị trường của bất kì nhà đầu tư nào. Điều này không nhằm làm nhà đầu tư trì hoãn hành động của mình lại một cách không cần thiết, cho dù là chỉ một phút, khi những dấu hiệu về sự thay đổi của xu thế thị trường là đã rõ ràng, nhưng nó nhắc nhở một điều rằng lợi thế sẽ nghiêng về phía những người biết chờ đợi cho đến khi họ chắc chắn về tình hình thị trường và rõ ràng sẽ không nghiêng về những người quá nôn nóng với hành động của họ. Khả năng xảy ra không thể được phát hiện một cách rõ ràng bởi bản chất của nó là những biến động thực tế của thị trường và chúng thay đổi thường xuyên. Bull Market không thể lên giá mãi và Bear Market thì sớm muộn cũng đạt đến đáy của nó. Khi một xu thế cấp 1 của thị trường vừa mới được hình thành thì cho dù có những dao động trong ngắn hạn ta vẫn có thể chắc chắn rằng nó không thay đổi, nhưng nếu nó kéo dài càng lâu thì mức chắc chắn càng ít dần đi, các điểm tái xác nhận xu thế thị trường cũng có giá trị ít dần đi. Động lực của người mua và khả năng bán 19 được những cổ phiếu với giá cao hơn giá mua để kiếm lời sẽ ngày càng thấp nếu như Bull Market đã tồn tại trong nhiều tháng và rõ ràng là thấp hơn khi nó mới hình thành. Một hệ quả tất yếu từ nguyên lý này đó là khi đã có những dấu hiệu về sự thay đổi của xu thế thị trường thì sự thay đổi đó có thể xảy ra bất cứ lúc nào. Vì vậy bất cứ nhà đầu tư nào cũng cần phải theo dõi thị trường một cách thường xuyên. 1.2. Lý thuyết máy tính 1.2.1 Lý thuyết về Logic mờ. Lý thuyết mờ đã được nhắc đến rất nhiều trong những năm gần đây. Trên thế giới và ở Việt Nam đã có nhiều tác giả nghiên cứu và áp dụng thành công lý thuyết mờ trong các lĩnh vực điều khiển sản xuất công nghiệp, trong các sản phẩm gia dụng…vv. Tuy nhiên một bộ điều khiển mờ trong thực tế nó ra sao? Phần này tôi sẽ trình bày về các vấn đề, thứ nhất là lý thuyết điều khiển mờ, sau đó là giới thiệu về quá trình xây dựng bộ điều khiển mờ trong thực tế và các ứng dụng sử dụng logic mờ. Lôgic mờ (tiếng Anh: Fuzzy logic) được phát triển từ lý thuyết tập mờ để thực hiện lập luận một cách xấp xỉ thay vì lập luận chính xác theo logic vị từ cổ điển. Người ta hay nhầm lẫn mức độ đúng với xác suất. Tuy nhiên, hai khái niệm này khác hẳn nhau; độ đúng đắn của lôgic mờ biểu diễn độ liên thuộc với các tập được định nghĩa không rõ ràng, chứ không phải khả năng xảy ra một biến cố hay điều kiện nào đó. Để minh họa sự khác biệt, xét tình huống sau: Bảo đang đứng trong một ngôi nhà có hai phòng thông nhau: phòng bếp và phòng ăn. Trong nhiều trường hợp, trạng thái của Bảo trong tập hợp gồm những thứ "ở trong bếp" hoàn toàn đơn giản: hoặc là anh ta "trong bếp" hoặc "không ở trong bếp". Nhưng nếu Bảo đứng tại cửa nối giữa hai phòng thì sao? Anh ta có thể được coi là "có phần ở trong bếp". Việc định lượng trạng thái "một phần" này cho ra một quan hệ liên thuộc đối với một tập mờ. Chẳng hạn, nếu Bảo chỉ thò một ngón chân cái vào phòng ăn, ta có thể nói rằng Bảo ở "trong bếp" đến 99% và ở trong phòng ăn 1%. Một khi anh ta còn đứng ở cửa thì không có một biến cố nào (ví dụ một đồng xu được tung lên) quyết định rằng Bảo hoàn toàn "ở trong bếp" hay hoàn toàn "không ở trong bếp". Lôgic mờ cho phép độ liên thuộc có giá trị trong khoảng đóng 0 và 1, và ở hình thức ngôn từ, các khái niệm không chính xác như "hơi hơi", "gần như", "khá là" và "rất". Cụ thể, nó cho phép quan hệ thành viên không đầy đủ giữa thành viên và tập hợp. Tính chất này có liên quan đến tập mờ và lý thuyết xác suất. 20 Một ví dụ khác để minh họa cho sự mềm dẻo của Logic mờ là việc xác định lứa tuổi: Boolean Logic Fuzzy Logic Hình 6: Sự khác nhau giữa hai loại Logic trong việc xác định lứa tuổi Nhìn ở hình vẽ trên, nếu như đối với Boolean Logic (tương ứng với Crisp Sets) quy định tuổi dưới 23 mới được coi là “trẻ tuổi” thì ở Fuzzy Logic (tương ứng với Fuzzy Sets) , có sự xác định mềm dẻo hơn khi không quy định khắt khe chính xác bao nhiêu tuổi mới là trẻ. Điều này hợp hơn với thực tế bởi vì đôi khi tuổi tác còn do con người cảm nhận, có người coi dưới 23 tuổi là trẻ còn có người coi trên 23 tuổi một vài năm vẫn là trẻ, hoặc dưới 23 tuổi một vài năm đã không còn là trẻ nữa.Qua đó ở ví dụ này ta thấy các giá trị Fuzzy mềm dẻo hơn rất nhiều so với Crisp sets, phù hợp hơn với người dùng. 1.2.2 Công cụ thực hiện hệ Logic mờ. Việc thiết kế hệ điều khiển mờ có thể thực hiện bằng các phương pháp khác nhau như là thiết kế hệ mềm hoặc thiết kế hệ cứng. Mỗi phương pháp có những ưu nhược điểm riêng, thiết kế hệ cứng cho phép người thiết kế đánh giá được các luật mờ một cách nhanh chóng nhưng việc thiết kế theo cách này thường rất tốn kém. Thiết kế hệ mềm là cách tốt nhất để xây dựng nên một hệ điều khiển mờ, bằng cách sử dụng các phần mềm lập trình có sẵn, và có thể mô phỏng hệ thống. Thiết kế hệ mềm có thể sử dụng các phần mềm chuyên dụng về xử lý mờ như Matlab, FuzzyTech, Winfact,…Việc làm này cho phép xây dung rất nhanh một hệ mờ, mô phỏng và đành giá được ngay hệ thống. Nhưng trở ngại lớn vẫn là vấn đề kinh tế. Việc thiết kế hệ mềm vẫn có thể thực hiện được với các ngôn ngữ lập trình thông 21 dụng như C++, Delphi, VB,C# …Việc xử lý mờ sẽ được thực hiện trên máy tính bàng phần mềm tự xây dựng. Sau đó là việc trao đổi dữ liệu với thiết bị chấp hành,và các thiết bị đo sẽ do một modul khác đảm nhận.Modul đó cũng có thể tự xây dựng hoặc cùng các Modul của một hãng khác. Trước khi quyết định lựa chọn ngôn ngữ lập trình để giải quyết bài toán Logic mờ, chúng ta cần nắm được những nhiệm vụ cần giải quyết: - Cài đặt Cấu trúc dữ liệu mô tả tập mờ và các phép toán trên tập mờ. - Cài đặt Cấu trúc dữ liệu mô tả các luật suy diễn và các thao tác xử lý liên quan. - Cài đặt và vận hành Motor suy diễn mờ. - Cài đặt các công cụ đồ họa cho phép người sử dụng soạn thảo trực quan các tập mờ, các luật suy diễn. - Ghép nối máy tính và thiết bị điều khiển. - Các thao tác thông dụng như lưu trữ công việc, kết xuất dữ liệu,... Do vậy tôi chọn ngôn ngữ lập trình C#, là một ngôn ngữ cho phép: - Quản lý tốt mã nguồn. - Thư viện cài đặt các cấu trúc dữ liệu và giải thuật cơ bản được cung cấp đầy đủ, sử dụng tiện lợi. Trên thị trường hiện nay có một công cụ phát triển sử dụng ngôn ngữ lập trình C# rất tốt đó là Microsoft Visual C# trong bộ Visual Studio vì những lý do sau: - Thư viện lớp của C# Builder rất phong phú và dễ dàng mở rộng, thừa kế. Đây là ưu điểm vượt trội của nó so với các công cụ phát triển khác. - C# Builder không ép buộc người lập trình phải theo một khung ứng dụng nào. Do vậy, nó rất thích hợp cho người lập trình sáng tạo, có yêu cầu điều chỉnh chi tiết tới mọi thành phần của chương trình. 1.2.3 Một số ứng dụng của Logic mờ. Lôgic mờ có thể được sử dụng để điều khiển các thiết bị gia dụng như mý giặt (cảm nhận kích thước tải và mật độ bột giặt và điều chỉnh các chu kỳ giặt theo đó) và tủ lạnh. Một ứng dụng cơ bản có thể có đặc điểm là các khoảng con của một biến liên tục. Ví dụ, một đo đạc nhiệt độ cho phanh (anti-lock brake) có thể có một vài hàm 22 liên thuộc riêng biệt xác định các khoảng nhiệt độ cụ thể để điều khiển phanh một cách đúng đắn. Mỗi hàm ánh xạ cùng một số đo nhiệt độ tới một chân giá trị trong khoảng từ 0 đến 1. Sau đó các chân giá trị này có thể được dùng để quyết định các phanh nên được điều khiển như thế nào. Hình 7: Mô hình đoán nhận nhiệt độ Trong hình, cold (lạnh), warm (ấm), và hot (nóng) là các hàm ánh xạ một thang nhiệt độ. Một điểm trên thang nhiệt độ có 3 "chân giá trị" — mỗi hàm cho một giá trị. Đối với nhiệt độ cụ thể trong hình, 3 chân giá trị này có thể được giải nghĩa là 3 miêu tả sau về nhiệt độ này: "tương đối lạnh", "hơi hơi ấm", và "không nóng". Ví dụ về các ứng dụng khác của lôgic mờ • Các hệ thống con của ô tô và các phương tiện giao thông khác, chẳng hạn các hệ thống con như ABS và quản lý hơi (ví dụ Tokyo monorail) • Máy điều hòa nhiệt độ • Phần mềm MASSIVE dùng trong các tập phim Chúa Nhẫn (Lord of the Rings), phần mềm đã giúp trình diễn những đội quân lớn, tạo các chuyển động một cách ngẫu nhiên nhưng vẫn có thứ tự • Camera • Xử lý ảnh số(Digital image processing), chẳng hạn như phát hiện biên (edge detection) • Nồi cơm điện • Máy rửa bát • Thang máy • Trí tuệ nhân tạo trong trò chơi điện tử 23 • Các bộ lọc ngôn ngữ tại các bảng tin, diễn đàn (message board) và phòng chát để lọc bỏ các đoạn văn bản khiếm nhã • Nhận dạng mẫu trong Cảm nhận từ xa ( Remote Sensing) • Gambit System trong Final Fantasy XII Lôgic mờ cũng đã được tích hợp vào một số bộ vi điều khiển và vi xử lý, ví dụ Freescale 68HC12. 1.2.4 Các yếu tố xây dựng mô hình Logic mờ. Dữ liệu rõ (input) Dữ liệu mờ(Input) Dữ liệu mờ (Output) Dữ liệu rõ (output) Hình 8: Cấu trúc và qui trình hoat động của mô hình. Một mô hình lôgic mờ bao gồm các yếu tố sau: dữ liệu ( đầu vào và đầu ra) , các hàm chuyển đổi, các phép toán logic và các biến ngôn ngữ. Dữ liệu Dữ liệu được chia làm hai nhóm chính, dữ liệu đầu vào và dữ liệu đầu ra. Mỗi nhóm lại chia ra dữ liệu rõ và dứ liệu mờ Các hàm Để thực hiện việc quy đổi từ dữ liệu cứng về dữ liệu mờ ta cần phải lựa chọn các hàm phục vụ cho việc chuyển đổi, thông thường có 4 loại hàm hay sử dụng: hình tam giác, hình thang, hình cong và hình que được minh họa dưới đây: Quá trình mờ hóa Bộ xử lý Logic mờ Quá trình Giải mờ 24 Hình 9: Các mô hình được sử dụng trong hệ thống Logic mờ Các phép toán của logic mờ. Logic mờ cũng giống Logic thông thường đều quy định về các phép toán như giao, hợp, loại trừ ,cộng, phủ định….Tuy nhiên, cách tính giá trị của mỗi phép toán lại khác so với logic thông thương. Giả sử cho A và B là hai tập mờ trên không gian nền U, có các hàm liên thuộc μA, μB. Khi đó ta có các phép toán sau: Stt Phép toán trên tập mờ Định nghĩa hàm liên thuộc 1 A⊆B μA(u)≤μB(u) 2 A∪B μA∪B(u)=max{μA(u),μB(u)} 3 A∩B μA∩B(u)=min{μA(u),μB(u)} 4 ¬A μ¬A=1-μA 5 A⊕B μA⊕B=μA(u)+μB(u)-μA(u)μB(u) 6 U μU(u)=1 25 7 φ μφ(u)=0 Ví dụ Hợp của hai tập A và B là tập Max của mỗi phần tử con trong hai tập đó. – A = {1.0, 0.20, 0.75} – B = {0.2, 0.45, 0.50} Î A ∪ B = {MAX(1.0, 0.2), MAX(0.20, 0.45), MAX(0.75, 0.50)} = {1.0, 0.45, 0.75} Ngược lại, A giao B là giá trị MIN của mỗi phần tử trong hai tập A và B. Trong trường hợp trên thì Min của A và B là : A ∩ B = {MIN(1.0, 0.2), MIN(0.20, 0.45), MIN(0.75, 0.50)} = {0.2, 0.20, 0.50} Các phép toán nay ảnh hưởng rất nhiều đến một thành phần quan trọng của hệ Fuzzy là định khoảng giá trị. Đây cũng là cơ sở cho việc thiết lập các luật trong hệ Logic mờ. Biến ngôn ngữ. Một biến ngôn ngữ quy định đến trường nào đó có giá trị nào đó, hay nói cách khác nó chỉ đến một khoảng giá trị trong hệ thống fuzzy logic. Giá trị của biến ngôn ngữ cũng là dạng từ ngữ. Thông thường, người ta gắn các khoảng giá trị số cho một từ ngữ nào đó thể hiện cho nó.Ta xét ví dụ sau: - Biến ngôn ngữ: nhiệt độ - Các khoảng giá trị ( fuzzy sets) : cold , warm, hot Hình 10: Mô hình minh họa biến ngôn ngữ trong việc đoán nhận nhiệt độ 26 Trong ví dụ trên, người ta thay những con số chỉ nhiệt độ bằng biến ngôn ngữ là nhiệt độ, còn giá trị của biến này là cold, warm và hot. Giá trị cold gắn với khoảng giá trị thực từ 0 độ đến 20 độ , giá trị warm gắn với khoảng giá trị thực từ 20 độ đến 60 độ, còn giá trị hot gắn với khoảng giá trị thực từ 60 độ tới 100 độ. Các biến ngôn ngữ này phục vụ cho việc thiết lập các luật tương ứng và phù hợp với thực tế. Các luật trong mô hình logic mờ Các luật là thành phần điều khiển của một hệ thống logic mờ. Các luật được thực hiện dựa trên câu lệnh IF……….THEN và một số phép toán Logic khác như AND, OR, NOT….Trong một hệ thống, nếu tập luật càng chính xác thì hiệu quả của hệ thống càng cao. Dưới đây là cách tính của các phép toán AND, OR, và NOT Mô tả ví dụ: một lò sưởi tự động nhận hai giá trị đầu vào ( input ) là giá dầu đốt hiện tại và nhiệt độ hiện tại trong phòng, tùy mức độ nhiệt độ hiện tại nóng hay lạnh và giá dầu đốt đắt hay rẻ để nó tự động cung cấp nhiệt trong phòng một cách phù hợp sao cho không bị lạnh mà cũng không lãng phí quá. “Nếu nhiệt độ là lạnh và giá dầu là rẻ thì nhiệt xả ra là cao” Biến ngôn ngữ Giá trị biến ngôn ngữ Bảng dưới đây chỉ ra cụ thể luật làm việc của ví dụ trên: Bảng 3: Mô tả hoạt động của máy sưởi Nhiệt độ Giá dầu Lạnh Ấm Nóng Rẻ Cao Cao Trung bình Bình thường Cao Trung bình Thấp Đắt Trung bình Thấp Thấp 27 1.2.5 Qui trình hoạt động của Logic mờ. Hình 11: Quy trình hoạt động của hệ Logic mờ Đầu tiên ta sử dụng các dữ liệu thực tế (dữ liệu rõ) là dữ liệu đầu vào, qua bước mờ hóa (Fuzzification) sẽ cho ta dữ liệu “mờ”, kết quả này sẽ được sử dụng làm đầu vào cho hệ xử lý logic mờ (Fuzzy Logic) và cho ra kết quả tiêp theo là dữ liệu mờ đầu ra, dữ liệu này này tiếp tục được sử dụng làm dữ liệu đầu vào cho hệ thống giải mờ (De–Fuzzificationg), sau bước cuối cùng này cho ta kết quả là dữ liệu rõ. Khâu mờ hoá (Fuzzification): thực hiện biến đổi các giá trị rõ đầu vào thành một miền giá trị mờ với hàm thuộc và biến ngôn ngữ tương ứng. Khâu thiết bị hợp thành (Fuzzy Logic or FAM): biến đổi các giá trị mờ của biến ngôn ngữ đầu vào thành các giá trị mờ của biến ngôn ngữ đầu ra dựa trên các luật hợp thành đã xây dựng. Khâu giải mờ (De-Fuzzification): biến đổi các giá trị mờ của biến ngôn ngữ đầu ra thành các giá trị rõ để thực hiện điều khiển đối tượng. 1.2.6 Phương pháp xây dựng mô hình. Như đã nói ở trên trong phần giới thiệu về FuzzyLogic, có nhiều mô hình phục vụ cho việc xây dựng hệ Fuzzy Logic, trong khóa luận tốt nghiệp, tôi sử dụng hai mô hình cơ bản là mô hình tam giác và mô hình hình thang. Sau đây chúng ta sẽ tìm hiểu kỹ hơn về hai mô hình này và ứng dụng cụ thể của nó trong khóa luận tốt nghiệp. Mô hình tam giác Đây là mô hình Fuzzy Logic được sử dụng trong trường hợp mà giá trị của các biến ngôn ngữ được xác định một cách nhạy cảm và độ mờ biến thiên nhanh. 28 1 Chậm trung bình nhanh 0 5 10 15 20 Hình 12: Mô hình tam giác trong việc xác định tốc độ Ví dụ như biết “Tốc độ” bao gồm có ba giá trị ngôn ngữ là “nhanh”, “chậm” và “trung bình” tuy nhiên với một tốc độ thực tế là 40km/h thì tùy từng hoàn cảnh ta cho là nhanh, tùy từng hoàn cảnh lại cho là không nhanh. Như với tốc độ trong một cuộc đua xe đạp thì đó là chậm nhưng tốc độc của một người bình thường đi xe đạp thì lại có thể cho là nhanh, trong những trường hợp khác ta lại coi tốc độ đó ở mức trung bình. Hơn nữa trong cụ thể một hoàn cảnh nào đó thì lại tùy từng lúc chúng ta coi là nhanh mà có lúc lại coi là chậm, ví dụ như trong cuộc đua thì lại đối với vận động viên xuất sắc thì đó được coi là tốc độ chậm nhưng so với mặt bằng chung thì đó có thể coi là trung bình. Như vậy có nghĩa là đối với mô hình tam giác, tại từng “hoàn cảnh” sẽ lại có một sự đánh giá khác nhau hay nói cách khác thì độ “mờ” biến thiên nhanh hơn. Mô hình hình thang Nếu như mô hình tam giác là mô hình Fuzzy Logic được sử dụng trong trường hợp mà giá trị của các biến ngôn ngữ được xác định một cách nhạy cảm và độ mờ biến thiên nhanh thì mô hình hình thang lại mang tính chất gần với logic boolean hơn và nó có độ biến thiên mờ tương đối thấp Ta xét ví dụ sau: Một hệ thống Logic mờ đo nhiệt độ và xác định mức độ nóng lạnh với ba khoảng cold, warm và hot. 29 Hình 13: Mô hình hình thang Theo hình vẽ trên ta có thể thấy khoảng nhiệt độ lạnh kéo dài hơn với độ dài là đỉnh hình thang, trong khoảng nhiệt độ này hệ thống giữ cố định việc coi nhiệt độ độ là lạnh, sự biến thiên (mờ hóa) chỉ xảy ra ở các cạnh bên (không vuông góc ) của hình thang. Theo ví dụ trên thì trong khoảng nhiệt độ xung quanh 20 độ, có sự mềm dẻo khi coi thời tiết lúc đó nằm trong khoảng lạnh hay ấm, tương tự đối với khoảng nhiệt độ xung quanh 60 độ. Ở khóa luận tốt nghiệp, mô hình hình thang được dùng để xác định tiềm năng lên hay xuống của giá chứng khoán ngày hôm nay so với xu thế của cả một khoảng thời gian trước đó. Tổng kết Chương này tôi đã trình bày về cơ sở lý thuyết để xây dựng bài toán, trong đó có hai cơ sở chính là lý thuyết về kinh tế (phân tích kỹ thuật trong chứng khoán) và lý thuyết về máy tính ( tìm hiểu về Fuzzy Logic). Thông qua chương này , người đọc có thể dễ dàng hơn trong việc hiểu được cách kết hợp giữa lý thuyết về kinh tế và lý thuyết về tin học trong việc tạo ra bộ đoán nhận giá chứng khoán nói riêng và đoán nhận biểu đồ tài chính nói chung. 30 Chương 2. Xây dựng mô hình Logic mờ và ứng dụng trong phân tích kỹ thuật Bên cạnh trường phái phân tích cơ bản, trường phái phân tích kĩ thuật ngày càng khẳng định vai trò quan trọng và ưu việt của mình trong việc phân tích xu hướng biến động của các chỉ số chứng khoán trên thị trường. Tuy nhiên, số lượng nhà đầu tư hiểu và ứng dụng hệ thống phân tích kĩ thuật còn hạn chế, bên cạnh đó tính ứng dụng và tính chính xác của hệ thống phân tích kĩ thuật vẫn còn nhiều bất cập. Lý do cơ bản là chưa có một công cụ nào thực sự đưa ra được những dự báo có độ chính xác cao tại từng thị trường nhất định trong từng giai đoạn cụ thể. Mô hình Logic mờ cung cấp một cơ chế mềm dẻo để giúp cho việc dự đoán. Trong mô hình này, logic mờ được kết hợp với các biểu đồ để đưa ra dự đoán dựa vào các dấu hiệu quan trọng ở trên biểu đồ. Hình 14 : Mô hình cơ bản của hệ thống phân tích kỹ thuật trong chứng khoán Kết quả thu được sẽ là một hệ thống với tính năng chính là đoán nhận và dự báo xu hướng giá chứng khoán, ngoài ra còn một số tính năng khác hỗ trợ người chơi chứng khoán trong việc đầu tư. 2.1 Xây dựng mô hình 31 Như đã nói ở chương 1, các thành phần tạo nên một hệ logic mờ bao gồm: dữ liệu, các phép toán, các hàm, các biến ngôn ngữ và các luật. Dữ liệu người dùng đưa vào chương trình trở thành tham số cho các hàm trong hệ Logic mờ. Kết quả trả về của các hàm này lại chính là giá trị của các biến ngôn ngữ. Các biến ngôn ngữ này kết hợp với các phép toán Logic mờ sẽ tạo thành tập luật để điều khiển chương trình. Như vậy trong mô hình này tôi xây dựng được năm yếu tố: dữ liệu, các phép toán, các hàm, các biến ngôn ngữ và tập luật. 2.1.1 Dữ liệu đầu vào cho mô hình Mô hình tôi xây dựng có hai dữ liệu đầu vào ( input) là xuthe và vtht. Cả hai loại dữ liệu đầu vào đều được tính dựa trên các điểm đặc biệt trên biểu đồ. Dưới đây tôi sẽ trình bày cách tính toán ra từng loại dữ liệu. Hình 15: Cách xác định xem giá lên hay xuống trong mô hình - Dữ liệu xuthe: Đây là dữ liệu đầu vào của chương trình cho biết tình hình xu thế chu kỳ hiện tại của đồ thị giá chứng khoán là đang lên hay xuống. Đầu tiên ta tìm giá trị tại các điểm đảo chiều trong xu thế cần xem xét sau đó lấy giá trị tại điểm đảo chiều gần nhất và điểm đảo chiều thứ 3 gần nhất. Như ở hình 15 là giá trị tại điểm A và điểm B ta tính: BC = giá tại điểm B – Giá tại điểm A AC = chỉ số tại C – chỉ số tại A ( như trên hình vẽ 15 thì AC = 10 – 2 = 8 ) AB = sqrt(BC*BC + AC*AC) – Công thức tính cạnh huyền trong tam giác vuông 32 Cuối cùng ta tính xuthe = BC/AB : đây chính là giá trị của cos góc A nên tập giá trị của dữ liệu xuthe nằm trong khoảng ( -1 , 1 ) - Dữ liệu khoangcach Đây là dữ liệu để xác định quan hệ giữa giá hiện tại ( giá ngày hôm nay) so với xu thế giá trong cả một chu kỳ ngay trước nó. Để tìm được giá trị của khoangcach ta cần tính được: • Giá trị nhỏ nhất của chu kỳ: getMin(yp,yp.Length) • Giá trị lớn nhất của chu kỳ : getMax(yp,yp.Length) • Các điểm đảo chiều lên gần nhất: dinhl[0] • Các điểm đảo chiều xuống gần nhất : dinhx[0] • Giá trị hiện tại cần xem xét: yp[yp.Length - 1] Sau khi tìm được giá trị của khoảng cách như sau: Trong trường hợp xu thế đang xuống: khoangcach = (yp[yp.Length - 1] - dinhx[0])/(getMax(yp,yp.Length)- getMin(yp,yp.Length)); Trường hợp xu thế đang lên khoangcach = (-yp[yp.Length - 1] + dinhl[0])/(getMax(yp,yp.Length)- getMin(yp,yp.Length)); Giá trị của biến khoảng cách nằm trong khoảng(-1,1) nếu như các trường hợp khác( phá giá thì mới dẫn tới trường hợp khác) thì ta quy khoangcach = giá trị max là -1 hoặc 1. Ví dụ ở hình 15, ta xác định được xuthe > 0 nên xu thế của giá chứng khoán là đang lên, giá trị hiện tại nằm ở chỉ số 14 gọi là gia(14) , dinhx là gia(11), max = gia(14), min = gia(2) nên: Khoangcach = (gia(11) – gia(14))/(gia(14) – gia(2) ) được một con số trong khoảng ( -1 , 0 ) 2.1.2 Các biến ngôn ngữ và giá trị của chúng. Sau khi đã tính toán được dữ liệu đâu vào cho chương trình ta cần khởi tạo và thiết lập giá trị các biến ngôn ngữ. Có hai biến đầu vào là fvxuthe và fvvtht tương 33 ứng cho hai dữ liệu đầu vào là xuthe và vtht, và một biến kết quả là fvTips, chúng đc khai báo như sau: FuzzyVariable fvxuthe = _fsTips.InputByName("xuthe"); FuzzyVariable fvvtht = _fsTips.InputByName("vtht"); FuzzyVariable fvTips = _fsTips.OutputByName("tips"); Biến fvxuthe lấy tên đại diện là “xuthe”, biến fvvtht lấy tên đại diện là “vtht”, biến fvTips lấy tên đại diện là “tips”. Để gắn các dữ liệu đã tính toán vào hai biến fvxuthe và fvvtht ta sử dụng các câu lệnh sau: inputValues.Add(fvxuthe, xuthe); inputValues.Add(fvvtht, (double)khoangcach); 2.1.3 Các hàm được sử dụng trong mô hình Mô hình dự báo giá chứng khoán tôi thực hiện bao gồm có hai hàm chính trong đó một hàm là hàm tam giác để thiết lập giá trị cho các biến ngôn ngữ fvxuthe nhận đầu vào là dữ liệu xuthe ở 2.1.1 và một hàm là hàm hình thang để thiết lập giá trị cho biến ngôn ngữ fvvtht, hàm này nhận đầu vào là dữ liệu khoangcach. Xây dựng lớp để tạo hàm tam giác ( dưới đây chỉ là code minh họa, không đầy đủ) public class TriangularMembershipFunction : IMembershipFunction { double _x1, _x2, _x3; public TriangularMembershipFunction(double x1, double x2, double x3) { if (!(x1 <= x2 && x2 <= x3)) { throw new ArgumentException(); } _x1 = x1; _x2 = x2; _x3 = x3; } public double GetValue(double x) { double result = 0; if (x == _x1 && x == _x2) { result = 1.0; } else if (x == _x2 && x == _x3) 34 { result = 1.0; } else if (x = _x3) { result = 0; } else if (x == _x2) { result = 1; } else if ((x > _x1) && (x < _x2)) { result = (x / (_x2 - _x1)) - (_x1 / (_x2 - _x1)); } else { result = (-x / (_x3 - _x2)) + (_x3 / (_x3 - _x2)); } return result; } } Ta thấy x1,x2,x3 là các mốc quan trọng trong khoảng giá trị có thể của các biến được đưa vào, tùy giá trị biến x đưa vào nằm trong khoảng nào của x1,x2,x3 mà giá trị trả về của hàm getvalue(double x): result sẽ là một giá trị tương ứng. Dưới đây là một vài ví dụ minh họa cho việc gọi hàm: FuzzyVariable fvxuthe = new FuzzyVariable("xuthe", -1.0, 1.0); // Khởi tạo biến fvxuthe nhận giá trị từ dữ liệu xuthe và có giá trị trong khoảng ( -1.0,1.0) fvxuthe.Terms.Add(new FuzzyTerm("xuong", new TriangularMembershipFunction(-1, -0.5, 0.0))); fvxuthe.Terms.Add(new FuzzyTerm("trungbinh", new TriangularMembershipFunction(-0.5, 0.0, 0.5))); Như ví dụ trên, ta đặt giá trị của biến ngôn ngữ fvxuthe nằm trong khoảng -1 đến 1 và giá trị của nó là xuong và trungbình, khi dữ liệu đưa vào nằm trong khoảng (- 1, -0.5, 0) thì biến fvxuthe sẽ được gán giá trị là xuống, nếu nằm trong khoảng (-0.5, 0, 0.5) thì giá trị của nó là trung bình. Xây dựng lớp tạo hàm hình thang 35 public TrapezoidMembershipFunction(double x1, double x2, double x3, double x4) { if (!(x1 <= x2 && x2 <= x3 && x3 <= x4)) { throw new ArgumentException(); } _x1 = x1; _x2 = x2; _x3 = x3; _x4 = x4; } public double GetValue(double x) { double result = 0; if (x == _x1 && x == _x2) { result = 1.0; } else if (x == _x3 && x == _x4) { result = 1.0; } else if (x = _x4) { result = 0; } else if ((x >= _x2) && (x <= _x3)) { result = 1; } else if ((x > _x1) && (x < _x2)) { result = (x / (_x2 - _x1)) - (_x1 / (_x2 - _x1)); } else { result = (-x / (_x4 - _x3)) + (_x4 / (_x4 - _x3)); } return result; } } 36 Tương tự như hàm tam giác, hàm hình thang nhận giá trị đầu vào là biến khoangcach để cho ra kết quả tương ứng như ở trong hàm getValue ( double x).Ta có thể gọi hàm này như sau FuzzyVariable fvvtht = new FuzzyVariable("vtht", -1.0, 1.0); fvvtht.Terms.Add(new FuzzyTerm("tren", new TrapezoidMembershipFunction(0.2, 0.35, 0.55, 0.7))); fvvtht.Terms.Add(new FuzzyTerm("duoi", new TrapezoidMembershipFunction(-1.0, -1.0, -0.9, -0.85))); Nếu giá trị khoangcách đưa vào nằm trong khoảng ( 0.2, 0.35, 0.55, 0.7) thì giá trị biến ngôn ngữ vtht là “trên” còn lại thì là “dưới” Sau khi xác định xong giá trị của các biến đầu vào thì ta dùng hàm tam giác để xác định giá trị của biến đầu ra bằng việc gọi hàm như sau: FuzzyVariable fvTips = new FuzzyVariable("tips", 0.0, 100.0); fvTips.Terms.Add(new FuzzyTerm("xuong", new TriangularMembershipFunction(0.0, 15.0, 40.0))); fvTips.Terms.Add(new FuzzyTerm("trungbinh", new TriangularMembershipFunction(33.0, 44.0, 60.0))); fvTips.Terms.Add(new FuzzyTerm("len", new TriangularMembershipFunction(60.0, 75.0, 100.0))); fsTips.Output.Add(fvTips); 2.1.4 Tập luật Để thực hiện việc đánh giá xu thế giá chứng khoán ta cần xây dựng tập luật để xác định khi nào thì giá sẽ tăng và khi nào thì giảm. Các luật bao gồm các biến ngôn ngữ, giá trị của chúng và các phép toán Logic để kết hợp theo câu điều kiện IF…………………THEN và các phép toán khác như AND, OR, NOT. Thông thường có nhiều luật khác nhau để cùng diễn tả một biểu đồ nên để luật mang lại hiệu quả thì cần phải kết hợp kỹ lưỡng với phương pháp phân tích kỹ thuật trong chứng khoán. Cơ sở để xây dựng tập luật Trong mô hình này tôi mới dừng lại ở những cơ sở đơn giản để xây dựng đánh giá xu hướng của giá chứng khoán đó là xu thế cấp 1 và xu thế cấp 2 của lý thuyết DOW. Nếu như mỗi đợt tăng giá liên tiếp đều đạt đến mức cao hơn mức trước đó và mỗi điều chỉnh cấp 2 đều dừng lại ở mức đáy cao hơn mức đáy của lần điều chỉnh 37 trước thì xu thế cấp 1 lúc này là tăng giá. Còn ngược lại nếu mỗi biến động giảm đều làm cho giá xuống những mức thấp hơn còn mỗi điều chỉnh đều không đủ mạnh để làm cho giá tăng lên đến mức đỉnh của những đợt tăng giá trước đó thì xu thế cấp 1 của thị trường lúc này là giảm giá Xu thế cấp 2 là những điều chỉnh có tác động làm gián đoạn quá trình vận động của giá theo xu thế cấp 1. Chúng là những đợt suy giảm tạm thời (trung gian) hay còn gọi là những điều chỉnh xuất hiện ở các thị trường tăng giá; hoặc những đợt tăng giá hay còn gọi là hồi phục xuất hiện ở các thị trường giảm giá. Thường thì những biến động trung gian này kéo dài từ 3 tuần đến nhiều tháng. Chúng sẽ kéo ngược lại khoản 1/3 đến 2/3 mức tăng (hay giảm tùy loại thị trường) của giá theo xu thế cấp 1. Do đó, chẳng hạn trong thị trường tăng giá, nếu chỉ số giá bình quân công nghiệp tăng liên tục ổn định hoặc có gián đoạn rất nhỏ và mức tăng đạt đến 30 điểm, khi đó xuất hiện xu thế điều chỉnh cấp 2, thì người ta có thể trông đợi xu thế điều chỉnh này có thể làm giảm từ 10 đến 20 điểm cho đến khi thị trường lặp lại xu thế tăng cấp 1 ban đầu của nó. Dẫu sao cũng cần lưu ý là qui tắc giảm 1/3 đến 2/3 không phải là một luật lệ không thể phá vỡ mà nó đơn giản chỉ là một nhận xét về khả năng có thể xảy ra mà hầu hết các biến động cấp 2 đều bị giới hạn trong mức này. Rất nhiều trong số đó ngừng tác động ở điểm gần với mức 50% mà rất hiếm khi đạt đến mức 1/3. Trong mô hình tôi xây dựng các tập luật dựa trên hai biến ngôn ngữ là fvxuthe và fvvtht đã trình bày ở trên. Dưới đây là ví dụ một số luật được sử dụng trong mô hình MamdaniFuzzyRule rule1 = fsTips.ParseRule("if (xuthe is xuong ) and (vtht is duoi1) then tips is xuong"); MamdaniFuzzyRule rule2 = fsTips.ParseRule("if (xuthe is xuong ) and (vtht is tren) then tips is len"); (1) Giải thích: Ta lấy ví dụ về luật có mã là (1): if (xuthe is xuong ) and (vtht is tren) then tips is len"; Luật này có nghĩa là nếu xu thế trong chu kỳ hiện tại là đang di xuống( giá chứng khoán giam, giá trị của xuthe nằm trong khoảng( -1, -0.5, 0)) đồng thời vị trí hiện tại là “trên” (nằm ở vị trí cao hơn so với điểm đảo chiều gần nhất, giá tị của biến vtht nằm trong khoảng (0.2, 0.35, 0.55, 0.7) thì khả năng đảo chiều trong thời gian tới là rất cao, đây có thể coi như là một tín hiệu cho việc đảo chiều lên. Kết quả trong 38 trường hợp này là “lên”, tức là giá trị của biến fvTips nằm trong khoảng 60% đến 100%. Để gắn mỗi luật vào hệ thống chỉ cần gọi câu lệnh sau fsTips.Rules.Add(rule1); Trong đó rule1 là tên luật mà ta đã định nghĩa giống như ở trên. 2.2 Ứng dụng của mô hình. Do giá cả thay đổi từng ngày nên từng thời điểm chương trình sẽ đưa ra những biểu đồ khác nhau và những phán đoán phân tích khác nhau sau mỗi lần cập nhật. Nếu như mỗi ngày biểu đồ có một trạng thái thì thì trạng thái ngày hôm trước sẽ là đầu vào cho trạng thái ngày hôm sau. Với mô hình Logic mờ kết hợp với phương pháp học máy viết trên ngôn ngữ lập trình C# ta có thể tạo ra được chương trình với quy trình chức năng chính như sau: Hình 16: Quy trình thực hiện của hệ thống phân tích kỹ thuật trong chứng khoán 2.2.1 Chức năng nhập dữ liệu. Chương trình cho phép người dùng nhập các tham số dữ liệu bao gồm các trường: Mã chứng khoán, giá chứng khoán, ngày, chỉ số - dùng để phục vụ việc tìm kiếm thông tin giá theo ngày. Thông tin do người dùng nhập vào sẽ được chuyển vào 39 cơ sở dữ liệu. Người dùng có thể sử dụng cách thức nhập “bằng tay” hoặc là chọn nhập theo tool tự động. 2.2.2 Chức năng xây dựng biểu đồ. Sau khi nhập dữ liệu vào cơ sở dữ liệu, hệ thống sẽ tự xây dựng và cập nhật biểu đồ giá dựa vào số liệu trong cơ sở dữ liệu. 2.2.3 Chức năng xem, xóa biểu đồ theo mã chứng khoán. Khi người dùng muốn xem biểu đồ của một mã chứng khoán nào đó chỉ cần nhập mã chứng khoán và click vào nút nhấn thì hệ thống sẽ hiện ra biểu đồ của đúng mã chứng khoán đó trên màn hình. Khi người dùng xóa 1 giá trong cơ sở dữ liệu thì trên biểu đồ giá đó cũng bị xóa. 2.2.4 Chức năng phân tích đánh giá xu hướng giá chứng khoán. Khi người dùng yêu cầu phân tích biểu đồ, chương trình sẽ tìm ra các điểm đảo chiều 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 Chức năng đưa ra phán đoán dựa vào kết quả phân tích giá chứng 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. Tổng 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. 40 Thực nghiệm 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 dựng chương trình mô phỏng và chạy 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. 3.1.1 Cơ sở dữ liệu. 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 17: Bảng cơ sở dữ liệu được sử dụng 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 41 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 chức 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 Nhập và lưu trữ giá chứng 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. - Chỉ số dùng để quản lý giá và thông tin từng ngày của mỗi chứng 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 Sửa thông tin giá chứng 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 của giá chứng 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 của một giá chứng khoán theo ngày hay một nút trên biểu đồ chứng khoán. 42 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 dựng biểu đồ giá chứng 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 đồ 8 Phân tích xu hướng và đưa ra dự đoán, tư vấn. Đâ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 đó. Bảng 4: Mô tả các hàm của chương trình 43 1. Các hàm quản lý cơ sở dữ liệu 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 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 đó. 44 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 đồ 2. Các hàm chức năng của chương trình 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 đồ 45 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 Public void 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 diện chương trình và kiểm thử chức 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 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 diện màn hình chính. 46 Hình 18: Giao diện 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 Nhập giá chứng 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 ♦ Giá : 57.5 47 Hình 20: Giao diện nhập giá chứng 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 một bản ghi ( hay một nút trên biểu đồ ). Hình 21: Giao diện xem thông tin một bản 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 48 richtextbox. 12 Xóa một bản ghi giá chứng 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 9: Giao diện xóa một bản 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 biểu đồ. Đâ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á. 49 Hình 10: Giao diện chức năng phân tích biểu đồ 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 với thực 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. 50 Bảng 5: Kết quả minh họa của 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ả bảng kết quả: Bảng kết quả có 6 cột là : Ngày, Giá, Đánh giá của chương trình, Dự đoán, Kết 51 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ệ thống đưa ra năm trong khoảng 50% đến 100% thì mã chứng 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à 45.8%, con số này nằm ở khoảng trung bình( gần bằng 50 % ) do vậy, chương trình dự đoán khả năng giá ngày kế tiếp ( ngày 23/4) sẽ là giảm nhẹ. Thực tế ngày 23/04 giá cổ phiếu là 53.5 ( giảm 54 – 53.5 = 0.5 ) , như vậy phán đoán ở ngày 22/04 là chính xác. Và ở cột 6, giá trị ở hàng đó là T ( đúng ). Ngày 23/04 giá chứng khoán là 53.5 chương trình đưa ra con số dự đoán ở cột 3 là 18.6%, con số này là thấp(< 50 % ) do vậy, chương trình dự đoán khả năng giá ngày kế tiếp ( ngày 24/4) sẽ là giảm mạnh. Thực tế ngày 24/04 giá cổ phiếu là 54 ( tăng 54 – 53.5 = 0.5 ) , như vậy phán đoán ở ngày 23/04 là không chính xác. Và ở cột 6, giá trị ở hàng đó là F ( Sai ). Tương tự như vậy trong bảng trên ta thống kê ra có 10 lần hệ thống đoán đúng và có 4 lần hệ thống đoán sai. 3.2.2 Phân tích và đánh giá. Thực tế tôi đã thử nghiệm độ chính xác trong vòng 6 tháng từ ngày 24/12/2008 đến ngày13/05/2009 với các phương thức đánh giá theo kỳ hạn: quý, tháng và tuần và thu được kết quả về độ chính xác như biểu đồ dưới đây 52 54% 56% 58% 60% 62% 64% 66% Quý 1 Quý 2 Số lần đoán chính xác Hình 24: Biểu đồ tính độ chính xác theo từng quý Quý 1 dự đoán trong 42 lần trong đó có 24 lần chính xác, 18 lần dự đoán sai, tỉ lệ đoán chính xác là 58%, quý 2 dự đoán trong vòng 48 lần thì có 32 lần chính xác, 16 lần dự đoán sai. Tỉ lệ đoán chính xác là 66% 54% 56% 58% 60% 62% 64% 66% Tháng 1 Tháng 2 Tháng 3 Tháng 4 Số lần đoán chính xác Hình 25: Biểu đồ tính độ chính xác theo tháng Tháng 1 dự đoán 15 lần thì có 10 lần đúng, 5 lần sai tỉ lệ chính xác là 66%. Tháng 2 dự đoán 19 lần trong đó 11 lần đúng 8 lần sai tỉ lệ chính xác là 58%, tháng ba dự đoán 22 lần trong đó có 14 lần đúng 8 lần sai tỉ lệ chính xác là 64%, Tháng 4 dự đoán 20 lần trong đó 12 lần đúng 8 lần sai tỉ lệ chính xác là 60%. 53 0% 10% 20% 30% 40% 50% 60% 70% 80% 1 2 3 4 5 6 7 8 9 10 11 12 Số lần đoán chính xác Hình 26: Biểu đồ tính độ chính xác theo tuần Với cách tính như trên thì tỉ lệ chính xác khi dự đoán theo tuần được chỉ rõ ra ở trên hình 3. Đối với lần thực nghiệm cùng mã chứng khoán FPT này, ta có nhận xét kết quả hệ thống đưa ra có độ chính xác nằm ở mức tương đối khi mà tỉ lệ đoán chính xác chỉ nằm trong khoảng 50 đến 80% và độ chính xác này khá ổn định khi đánh giá theo các kỳ hạn quý, tháng hay tuần, số lượng lần đoán chính xác của chương trình đều cao hơn so với số lần đoán không chính xác và đặc biệt là tại những điểm tăng giá mạnh hệ thống thường đoán chính xác còn những dự đoán sai thì thiệt hại là không đáng kể. Tuy nhiên một lời khuyên cho các nhà đầu tư là không nên quyết định vội vàng đối với những con số dập dềnh của hệ thống ( trong khoảng 40 Æ 60%) hơn nữa để đầu tư lâu dài thì không nên chỉ dựa vào những con số từng ngày hệ thống đưa ra để quyết định đầu tư mà nên kết hợp chúng lại. 3.2.3. Những hạn chế của mô hình. Về giao diện: Cách bố trí biểu đồ còn sơ sài và chưa đầy đủ hết các chức năng, thuộc tính của biểu đồ chứng khoán. Màu sắc chưa thực sự hấp dẫn người dùng. Về mặt chức năng: Chương trình đến bước này gần như đã hoàn thành được các mục đích cơ bản nhất của nó, tuy nhiên nhược điểm của nó là chưa có các chức năng hỗ trợ tốt cho người dùng. Người sử dụng vẫn phải nhập trực tiếp dữ liệu hay còn gọi là “nhập bằng tay”. Hoặc chưa có module tìm kiếm. Về mặt nghiệp vụ: Do chưa có nhiều thời gian đặc biệt là kinh nghiệm thực tế về chứng khoán còn ít nên sự am hiểu về chứng khoán chưa được nhiều , chính vì vậy ác tập luật xây dựng để đánh giá còn ít và chưa tính được đến đầy đủ các yếu tố 54 để đánh giá về mặt kinh tế ,do đó chất lượng đánh giá xu thế giá chứng khoán còn chưa có độ chính xác cao. 3.2.4. Hướng phát triển của mô hình. Thời gian tới, tôi sẽ hoàn thiện tiếp những vấn đề sau đây: • Về mặt giao diện. - Nghiên cứu lại cho phù hợp hơn với các chức năng chương trình đưa ra. • Về chức năng - Đánh giá theo các kiểu biểu đồ khác nhau: Mỗi khi chúng ta chọn một kiểu biểu đồ thì đồ thị sẽ hiển thị đúng như dạng biểu đồ đó, ví đụ dạng bollinger, trung bình động hay dạng biểu đồ hình nến. .. - Cập nhật giá tự động: Việc giá chứng khoán cập nhật tự động sẽ giảm thiểu rất nhiều thời gian cho người dùng, do vậy đây là một vấn đề cấp thiết cần thực hiện đối với hệ thống này. - Lựa chọn đánh giá theo từng chu kỳ - Ý kiến đánh giá: Với mỗi con số đánh giá mà chương trình đưa ra, sẽ có những ý kiến nhận xét phù hợp • Về nghiệp vụ. - Tìm hiểu để phát triển tập luật trong việc đánh giá xu thế tiếp theo của từng mã chứng khoán. - Kết hợp với các chuyên gia am hiểu về chứng khoán để đưa ra những lời nhận xét phù hợp cho từng biểu đồ Tổng kết Chương 3 đã trình bày lại toàn bộ quá trình xây dựng thí nghiệm mô hình dự báo giá chứng khoán dựa trên mô hình Fuzzy Logic. Kết quả thu được là khá khả quan, điều này chứng tỏ khả năng ứng dụng của FuzzyLogic là rất tốt. Tuy nhiên để có thể sử dụng được trong thực tế thì cần phải chau chuốt về mặt chức năng cũng như nghiên cứu thêm về mặt nghiệp vụ chứng khoán. 55 56 Kết luận Phương pháp phân tích kĩ thuật ngày càng thể hiện tính ưu việt và vai trò quan trọng trong việc phân tích và dự báo giá chứng khoán. Chính vì vậy, sự ra đời và nâng cấp của các công cụ phân tích kĩ thuật mang ý nghĩa khoa học cũng như thực tiễn rất cao. Mô hình phân tích và dự báo giá chứng khoán mà tôi nghiên cứu và xây dựng trong đề tài luận văn của mình là sự kết hợp giữa phương pháp phân tích kĩ thuật truyền thống với mô hình Logic mờ sẽ tạo ra một công cụ phân tích và dự báo với độ chính xác cao hơn so với các mô hình cổ điển, đặc biệt đối với thị trường chứng khoán của Việt Nam, một thị trường vừa hình thành chục năm lại đây và chưa thể cung cấp đầy đủ nguồn tài dữ liệu để tạo ra đường xu hướng chính xác trong các biểu đồ phân tích và dự báo. Thực vậy, thực nghiệm và kết quả trên mã chứng khoán FPT đã minh chứng rõ luận điểm vừa nêu trên. Do hạn chề về thời gian thực hiện khóa luận tốt nghiệp cũng như hạn chế về mặt kiến thức chuyên môn của bản thên nên mô hình tôi nghiên cứu và xây dựng vẫn còn một số hạn chế và một số hướng phát triển chưa thực hiện được cũng như chưa thực hiện được thêm nhiều kiểm chứng trong thực tế để chứng minh cho tính ưu việt của mô hình. Tuy nhiên, module chính là “Phân tích và dự đoán xu thế giá” đã khá hoàn thiện và cho kết quả tương đối thuyết phục nên khả năng phát triển để hoàn thiện chương trình là hoàn toàn khả thi. Tôi hi vọng trong thời gian tới cùng với sự giúp đỡ của các chuyên gia, các thầy cô giáo và bạn bè, tôi sẽ hoàn thiện được sản phẩm nghiên cứu của mình và đưa vào áp dụng trong thực tế. Tôi xin chân thành cảm ơn! 57 Tài liệu tham khảo Tiếng Việt: [1]. ôgic_mờ [2]. TS Lê Đạt Trí, Phan Thị Bích Nguyệt. Phân Tích Kỹ Thuật Ứng Dụng Trong Đầu Tư Chứng Khoán Tiếng Anh: [3]. TS Nguyễn Hà Nam. Bài giảng về Fuzzy Logic [4]. Wee Mien Cheun, Uzay Kaymark. A Fuzzy Logic Based Trading System [5]. Geogre Bojadziev & Maria Bojadziev. Fuzzy Logic for Bussiness, Finance and Management [6]. Martin Hellman, March 2001. Fuzzy Logic Introduction [7]. Steven B. Achelis. Technical Analysis From A to Z [8]. Greg Cunningham. Artificial Intelligence: Fuzzy Logic and Artificial Neural Networks [9]. Kosko, B. (1993) Fuzzy Thinking

Các file đính kèm theo tài liệu này:

  • pdfLUẬN VĂN-TÌM HIỂU VÀ XÂY DỰNG MÔ HÌNH FUZZY LOGIC ỨNG DỤNG TRONG BÀI TOÁN DỰ BÁO TÀI CHÍNH.pdf