Đề tài Thiết kế hệ thống giải các bài toán tài chính thông qua Matlab

Mô tả: Tính độ dịch chuyển trung bình có trọng số bằng cách cung cấp các trọng số cho mỗi yếu tố trong cửa sổ dịch chuyển. Chiều dài của vectơ trọng số xác định kích cỡ cửa sổ. Nếu các trọng số lớn hơn được dùng cho nhiều giá gần đây và các trọng số nhỏ hơn dùng cho giá trước đó thì xu hướng thuận lợi hơn cho thị trường chứng khoán gần đây. ƒ Các đối số - tsobj: Đối tượng FTS. - lag: Số điểm dữ liệu trước. - vector: Vectơ hàng hay ma trận hàng. Mỗi hàng là một bộ quan sát

pdf116 trang | Chia sẻ: baoanh98 | Lượt xem: 740 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Đề tài Thiết kế hệ thống giải các bài toán tài chính thông qua Matlab, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 68 /116 ƒ Các dòng sự kiện khác Nếu không có dữ liệu ra (bài toán chưa được thực thi). Hệ thống hiển thị thông báo và use case kết thúc khi người dùng xem xong thông báo. 9 Các yêu cầu đặc biệt Không có. 9 Điều kiện tiên quyết Không có. 9 Post-Conditions Trạng thái của hệ thống không thay đổi sau khi use case này thực hiện. 4.2.1.16 HienThiDLRText (Chọn dữ liệu ra) 9 Tóm tắt Usecase này cho phép người dùng hiển thị kết quả tính toán ra file Text. 9 Dòng sự kiện ƒ Dòng sự kiện chính - Người dùng click phải chuột lên đối tượng. - Hệ thống hiển thị contextmenu tương ứng với đối tượng. - Người dùng chọn menu “Hiển thị”. - Hệ thống hiển thị dữ liệu dưới dạng file Text. ƒ Các dòng sự kiện khác Nếu không có dữ liệu ra (bài toán chưa được thực thi). Hệ thống hiển thị thông báo và use case kết thúc khi người dùng xem xong thông báo. 9 Các yêu cầu đặc biệt Không có. 9 Điều kiện tiên quyết Không có. 9 Post-Conditions Trạng thái của hệ thống không thay đổi sau khi use case này thực hiện. SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 69 /116 4.2.1.17 HienThiDLRAccess (Chọn dữ liệu ra) 9 Tóm tắt Usecase này cho phép người dùng hiển thị kết quả tính toán ra file Access. 9 Dòng sự kiện ƒ Dòng sự kiện chính - Người dùng click phải chuột lên đối tượng. - Hệ thống hiển thị contextmenu tương ứng với đối tượng. - Người dùng chọn menu “Hiển thị”. - Hệ thống hiển thị dữ liệu dưới dạng Access. ƒ Các dòng sự kiện khác Nếu không có dữ liệu ra (bài toán chưa được thực thi). Hệ thống hiển thị thông báo và use case kết thúc khi người dùng xem xong thông báo. 9 Các yêu cầu đặc biệt Không có. 9 Điều kiện tiên quyết Không có. 9 Post-Conditions Trạng thái của hệ thống không thay đổi sau khi use case này thực hiện. 4.2.1.18 HienThiDLRChart (Chọn dữ liệu ra dạng biểu đồ) 9 Tóm tắt Usecase này cho phép người dùng hiển thị kết quả tính toán dưới dạng biểu đồ. 9 Dòng sự kiện ƒ Dòng sự kiện chính - Người dùng click phải chuột lên đối tượng. - Hệ thống hiển thị contextmenu tương ứng với đối tượng. - Người dùng chọn menu “Hiển thị”. - Hệ thống hiển thị dữ liệu dưới dạng biểu đồ. ƒ Các dòng sự kiện khác Nếu không có dữ liệu ra (bài toán chưa được thực thi). Hệ thống hiển thị thông báo và use case kết thúc khi người dùng xem xong thông báo. SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 70 /116 9 Các yêu cầu đặc biệt Không có. 9 Điều kiện tiên quyết Không có. 9 Post-Conditions Trạng thái của hệ thống không thay đổi sau khi use case này thực hiện. 4.2.1.19 HienThiDLRSql (Chọn dữ liệu ra dạng Sql) 9 Tóm tắt Usecase này cho phép người dùng hiển thị kết quả tính toán ra file Sql. 9 Dòng sự kiện ƒ Dòng sự kiện chính - Người dùng click phải chuột lên đối tượng. - Hệ thống hiển thị contextmenu tương ứng với đối tượng. - Người dùng chọn menu “Hiển thị”. - Hệ thống hiển thị dữ liệu dưới dạng Sql. ƒ Các dòng sự kiện khác Nếu không có dữ liệu ra (bài toán chưa được thực thi). Hệ thống hiển thị thông báo và use case kết thúc khi người dùng xem xong thông báo. 9 Các yêu cầu đặc biệt Không có. 9 Điều kiện tiên quyết Không có. 9 Post-Conditions Trạng thái của hệ thống không thay đổi sau khi use case này thực hiện. 4.2.1.20 ThucThiBaiToan (Thực thi bài toán được chọn) 9 Tóm tắt Usecase này cho phép người dùng thực hiện tính toán bài toán được chọn với dữ liệu vào và ra được xác định. 9 Dòng sự kiện ƒ Dòng sự kiện chính - Người dùng click phải chuột lên đối tượng Bài toán. - Hệ thống hiển thị contextmenu tương ứng với đối tượng. SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 71 /116 - Người dùng chọn menu “Thực thi”. - Hệ thống thực hiện tính toán và trả kết quả ra. ƒ Các dòng sự kiện khác Nếu không có dữ liệu vào, hệ thống hiển thị thông báo và use case kết thúc khi người dùng xem xong thông báo. 9 Các yêu cầu đặc biệt Không có. 9 Điều kiện tiên quyết Không có. 9 Post-Conditions Nếu use case thành công, dữ liệu ra sẽ được trả về để phục vụ cho việc hiển thị kết quả sau này. Ngược lại, trạng thái hệ thống không thay đổi. 4.2.1.21 LuuDuLieu (Lưu dữ liệu xuống CSDL) 9 Tóm tắt Usecase này cho phép người dùng lưu dữ liệu ra xuống CSDL. 9 Dòng sự kiện ƒ Dòng sự kiện chính - Người dùng click nút lưu trên form xuất kết quả. - Hệ thống sẽ lưu dữ liệu trên form xuống CSDL và hiển thị thông báo đã lưu. Use case kết thúc sau khi người dùng xem thông báo. ƒ Các dòng sự kiện khác Nếu quá trình lưu bị lỗi thì thông báo lỗi. Use case kết thúc sau khi người dùng xem thông báo. 9 Các yêu cầu đặc biệt Không có. 9 Điều kiện tiên quyết Không có. 9 Post-Conditions Nếu use case thành công, dữ liệu sẽ được lưu xuống CSDL. Ngược lại, trạng thái của hệ thống không thay đổi. SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 72 /116 4.2.1.22 XoaDuLieu (Xóa dữ liệu trong form nhập mới) 9 Tóm tắt Use case này cho phép người dùng xóa một dòng dữ liệu từ form nhập hoặc xuất. 9 Dòng sự kiện ƒ Dòng sự kiện chính - Người dùng click nút Xóa trên form. - Hệ thống kiểm tra và yêu cầu người dùng xác nhận việc xóa các dòng dữ liệu được chọn. - Người dùng xác định xóa. - Hệ thống xóa các dòng dữ liệu đó khỏi form và cập nhật lại danh sách trên form. ƒ Các dòng sự kiện khác - Nếu người dùng quyết định không xóa dữ liệu đã chọn thì lệnh xóa bị huỷ bỏ và Dòng sự kiện chính được bắt đầu lại từ đầu. 9 Các yêu cầu đặc biệt Không có. 9 Điều kiện tiên quyết Không có. 9 Post-Conditions Nếu use case thành công, các dòng dữ liệu được chọn sẽ bị xóa khỏi form. Ngược lại, trạng thái hệ thống không thay đổi. SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 73 /116 4.2.2 Lược đồ UseCase (UseCase Diagram) LuuMoHinh ThemMoiMoHinh NhapDLMoi ChonDLVAccess ChonDLVSQL ChonDLVText ChonBTLaiDon ChonBTLaiKep > ChonBTChiSo ChonBTThanhToanTheoCK ChonBTDuBao HienThiDLRAccess HienThiDLRText HienThiDLRChart HienThiDLRSQL HienThiDLRExcel XoaDoiTuong XoaDuLieu > ThucThiBaiToan > > LuuDuLieu VeDoiTuong > > ChonDLVExcel > NguoiDung > Hình 4.1: Lược đồ Usecase SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 74 /116 4.2.3 Lược đồ tuần tự (Sequence Diagram) 4.2.3.1 VeDoiTuong : NguoiDung : frmMain : ControlComp 1: Chon doi tuong can ve 2: Click len khung lam viec 3: Draw( ) 4: Ve doi tuong Hình 4. 2: Lược đồ tuần tự Vẽ đối tượng 4.2.3.2 ChonBTLaiDon : NguoiDung : frmMain 1: Click fai len doi tuong 'LaiDon' 2: Hien thi context menu 3: Chon bai toan cu the 4: luu bai toan Hình 4. 3: Lược đồ tuần tự Chọn bài toán Lãi đơn 4.2.3.3 ChonDLVExcel : NguoiDung : frmMain : frmInputExcel : ControlComp 1: Click phai len doi tuong 'InputExcel' 2: Hien thi contextmenu 3: Chon menu 'Chon File' 4: Hien thi 5: Chon duong dan 6: Chon nut Ok 7: LoadInputExcel( ) 8: Tra ket qua Hình 4. 4: Lược đồ tuần tự Chọn dữ liệu vào Excel SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 75 /116 4.2.3.4 ChonDLVSQL : NguoiDung : frmMain : frmInputSql : ControlComp : DBComp : Database 1: Click phai len doi tuong 'InputSQL' 2: Hien thi context menu 3: Chon 'Chon du l ieu' 4: Hien thi 5: Chon Co so du l ieu 6: GetDatabase() 9: Hien thi cac table 7: GetDatabase() 8: Query getTable 10: Chon table 11: GetColumn() 12: GetColumn() 13: Query getColumn 14: Hien thi column 15: Chon du l ieu 17: GetData() 18: GetData() 19: Query data 16: Click OK 20: Tra du lieu Hình 4. 5: Lược đồ tuần tự Chọn dữ liệu vào Sql 4.2.3.5 HienThiDLRExcel 1: Click phai len doi tuong OutputExcel : NguoiDung : frmMain : frmOutput : ControlComp 2: Hien thi contextmenu 3: Chon menu 'Hien Thi' 4: ResultLoad( ) 5: Hien thi ket qua Hình 4. 6: Lược đồ tuần tự Hiển thị dữ liệu dạng Excel SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 76 /116 4.2.3.6 HienThiDLRSQL 5: Hien thi ket qua : NguoiDung : frmMain : frmOutput : ControlComp 1: Click phai len doi tuong 'outputSQL' 2: Hien thi context menu 3: Chon menu 'Hien thi' 4: ResultLoad( ) Hình 4. 7: Lược đồ tuần tự Hiển thị dữ liệu Sql 4.2.3.7 LuuDuLieu 5: Cap nhat DB : NguoiDung : frmOutput : ControlComp : DBComp : Database 1: Nhan nut 'Luu' 2: SaveData( ) 3: SaveData() 4: Goi store SaveData 6: Hien thi thong bao Hình 4. 8: Lược đồ tuần tự Lưu dữ liệu 4.2.3.8 NhapDLMoi : NguoiDung : frmMain : frmInput 1: Click phai len doi tuong 'InputNew' 2: Hien thi contextmenu 3: Chon menu 'Nhap Du Lieu' 4: Kiem tra loai bai toan 5: Hien thi 6: Nhap du lieu 7: Click OK Hình 4. 9: Lược đồ tuần tự Nhập dữ liệu mới SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 77 /116 4.2.3.9 ThemMoiMoHinh Dòng sự kiện chính : NguoiDung : frmMain : ControlComp 1: Chon nut 'Them moi' 2: Kiem tra mo hinh va thong bao 3: Xac nhan 'Luu' 4: SaveModel() 5: Thong bao 6: xoa doi tuong Hình 4. 10: Lược đồ tuần tự Thêm mô hình mới (dòng sự kiện chính) Dòng sự kiện khác 3: Hien thi thong bao : NguoiDung : frmMain 1: Chon nut 'Them moi' 2: Kiem tra mo hinh 4: Xac nhan 'Khong Luu' 5: xoa cac doi tuong Hình 4. 11: Lược đồ tuần tự Thêm mô hình mới (dòng sự kiện khác) 4.2.3.10 ThucThiBaiToan : NguoiDung : frmMain : ControlComp 1: Click phai len doi tuong bai toan 2: hien thi context menu 3: Chon menu 'Thuc thi' 4: Run( ) 5: Tra ket qua Hình 4. 12: Lược đồ tuần tự Thực thi bài toán SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 78 /116 4.2.4 Lược đồ Lớp (Class Diagram) 4.2.4.1 Lược đồ quan hệ giữa các class đối tượng Drawer rect : Rectangle g : Graphics x : int y : int p : Point Draw() Move() Algorithm rsize : int = 64 Draws() Input rsize : int = 64 Draws() Output rsize : int = 64 Draws() Connector obj1 : Object obj2 : Object Connector() AlgCirclePay iconFile : string AlgCirclePay() AlgDblInterest iconFile : string AlgDblInterest() AlgIndexNumber iconFile : string AlgIndexNumber() AlgSingInterest iconFile : string AlgSingInterest () AlgTSForecasting iconFile : string AlgTSForecasting () InputAccess iconFile : string InputAccess() InputExcel iconFile : string InputExcel () InputNew iconFile : string InputNew() InputSql iconFile : string InputSql() InputText iconFile : string InputText() OutputAccess iconFile : striing OutputAccess() OutputChart iconFile : string OutputChart() OutputExcel iconFile : string OutputExcel() OutputSql iconFile : string OutputSql() OutputText iconFile : string OutputText() Hình 4. 13: Lược đồ quan hệ giữa các class đối tượng 4.2.4.2 VeDoiTuong NguoiDung Drawer rect : Rectangle g : Graphics x : int y : int p : Point Draw() Move() frmMain p : Point FindObject() (from User Services) Hình 4. 14: Lược đồ lớp Vẽ đối tượng SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 79 /116 4.2.4.3 ChonBTLaiDon NguoiDung frmMain p : Point FindObject() (from User Services) Hình 4. 15: Lược đồ lớp Chọn bài toán Lãi đơn 4.2.4.4 ChonDLVExcel ControlComp Realresult; : double[] loadResult : string[] length : int n : int kq : int display : MWArray result : MWCellArray MatLabresutl : MWNumericArray mathtype : string NgayDauTu : string[] NgayDaoHan : string[] VonDauTu : double[] LaiSuat_HienGia : double[] TinhDonKep() TienThanhToan() ChiSo() DuBao() load() DisplayExcelResutl( () plot() (from Bussiness Services) frmMain p : Point FindObject() (from User Services) frmInputExcel (from User Services) NguoiDung Hình 4. 16: Lược đồ lớpChọn dữ liệu vào Excel SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 80 /116 4.2.4.5 ChonDLVSQL Database (from Data Services) DBComp (from Bussiness Services) ControlComp Realresult; : double[] loadResult : string[] length : int n : int kq : int display : MWArray result : MWCellArray MatLabresutl : MWNumericArray mathtype : string NgayDauTu : string[] NgayDaoHan : string[] VonDauTu : double[] LaiSuat_HienGia : double[] TinhDonKep() TienThanhToan() ChiSo() DuBao() load() DisplayExcelResutl( () plot() (from Bussiness Services) frmMain p : Point FindObject() (from User Services) frmInputSql (from User Services) NguoiDung Hình 4. 17: Lược đồ lớp Chọn dữ liệu vào Sql 4.2.4.6 HienThiDLRExcel NguoiDung frmMain p : Point FindObject() (from User Services) frmOutput (from User Services) ControlComp Realresult; : double[] loadResult : string[] length : int n : int kq : int display : MWArray result : MWCellArray MatLabresutl : MWNumericArray mathtype : string NgayDauTu : string[] NgayDaoHan : string[] VonDauTu : double[] LaiSuat_HienGia : double[] TinhDonKep() TienThanhToan() ChiSo() DuBao() load() DisplayExcelResutl( () plot() (from Bussiness Services) Hình 4. 18: Lược đồ lớp Hiển thị dữ liệu Excel SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 81 /116 4.2.4.7 HienThiDLRSQL NguoiDung frmMain p : Point FindObject() (from User Services) ControlComp Realresult; : double[] loadResult : string[] length : int n : int kq : int display : MWArray result : MWCellArray MatLabresutl : MWNumericArray mathtype : string NgayDauTu : string[] NgayDaoHan : string[] VonDauTu : double[] LaiSuat_HienGia : double[] TinhDonKep() TienThanhToan() ChiSo() DuBao() load() DisplayExcelResutl( () plot() (from Bussiness Services) frmOutput (from User Services) Hình 4. 19: Lược đồ lớp Hiển thị dữ liệu Sql 4.2.4.8 LuuDuLieu Database (from Data Services) DBComp (from Bussiness Services) ControlComp Realresult; : double[] loadResult : string[] length : int n : int kq : int display : MWArray result : MWCellArray MatLabresutl : MWNumericArray mathtype : string NgayDauTu : string[] NgayDaoHan : string[] VonDauTu : double[] LaiSuat_HienGia : double[] TinhDonKep() TienThanhToan() ChiSo() DuBao() load() DisplayExcelResutl( () plot() (from Bussiness Services) NguoiDung frmOutput (from User Services) Hình 4. 20: Lược đồ lớp Lưu dữ liệu SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 82 /116 4.2.4.9 NhapDLMoi frmMain p : Point FindObject() (from User Services) NguoiDung frmInput (from User Services) Hình 4. 21: Lược đồ lớp Nhập dữ liệu mới 4.2.4.10 ThucThiBaiToan NguoiDung frmMain p : Point FindObject() (from User Services) ControlComp Realresult; : double[] loadResult : string[] length : int n : int kq : int display : MWArray result : MWCellArray MatLabresutl : MWNumericArray mathtype : string NgayDauTu : string[] NgayDaoHan : string[] VonDauTu : double[] LaiSuat_HienGia : double[] TinhDonKep() TienThanhToan() ChiSo() DuBao() load() DisplayExcelResutl( () plot() (from Bussiness Services) Hình 4. 22: Lược đồ lớp Thực thi bài toán SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 83 /116 4.2.5 Lược đồ thành phần ( Component Diagram) FinancialMathFrm FinancialMathControl Database DBConnection MaLabComp SubFrm Drawer Hình 4. 23: Component Diagram 4.3 Thiết kế dữ liệu 4.3.1 Cơ sở dữ liệu ở mức vật lý ChiTietBaiToan MaBaiToan: NUMBER MaThongSo: VARCHAR2(20) MaGia: NUMBER GiaTriThongSo: NUMBER KetQuaBaiToan MaKQ: NUMBER MaBaiToan: NUMBER MaThongSo: VARCHAR2(20) MaGia: NUMBER KetQua: NUMBER ThongSo MaThongSo: VARCHAR2(20) TenThongSo: VARCHAR2(20) BaiToan MaBaiToan: NUMBER MaLBT: VARCHAR2(20) SoThongSo: NUMBER LoaiBaiToan MaLBT: VARCHAR2(20) TenLoaiBT: VARCHAR2(20) Hình 4. 24: Cơ sở dữ liệu ở mức vật lý SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 84 /116 4.3.2 Mô hình dữ liệu 4.3.2.1 LoaiBaiToan: Đối tương lưu trữ các dạng bài toán 9 MaLBT : Mã loại bài toán 9 TenLoaiBT : Tên loại bài toán 4.3.2.2 BaiToan: Đối tượng lưu trữ bài toán cụ thể cần tính 9 MaBaiToan : Mã bài toán 9 SoThongSo : Số thông số trong bài toán cụ thể 9 MaLBT : Mã loại bài toán 4.3.2.3 ThongSo : Đối tượng lưu trữ các thông số của bài toán 9 MaThongSo : Mã thông số của bài toán 9 TenThongSo : Tên thông số của bài toán 9 KiHieu : Kí hiệu của thông số 4.3.2.4 ChiTietBaiToan: Đối tượng lưu trữ chi tiết bài toán cụ thể 9 MaBaiToan : Mã bài toán 9 MaThongSo : Mã thông số của bài toán 9 MaGia : Mã giả dùng khi nhập nhiều giá trị cho một thông số 9 GiaTriDoiSo : Giá trị đối số của bài toán cụ thể 4.3.2.5 KetQuaBaiToan: Đối tượng lưu trữ kết quả bài toán 9 MaKQ : Mã kết quả bài toán (có thể tương ứng cho từng giá trị của các thông số có nhiều giá trị nhập vào) 9 MaBaiToan : Mã bài toán 9 MaThongSo : Mã thông số của bài toán 9 MaGia : Mã giả dùng khi nhập nhiều giá trị cho một thông số 4.3.3 Các bảng dữ liệu ¾ LoaiBaiToan Thuộc tính Kiểu dữ liệu Chiều dài Ràng buộc MaLBT Nvarchar 5 Not null TenLBT Nvarchar 50 Allow null Bảng 4. 1: Bảng LoaiBaiToan ¾ BaiToan Thuộc tính Kiểu dữ liệu Chiều dài Ràng buộc MaBaiToan Numeric 9 Not null SoThongSo Numeric 9 Allow null MaLBT Nvarchar 5 Allow null Bảng 4. 2: Bảng BaiToan SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 85 /116 ¾ ThongSo Thuộc tính Kiểu dữ liệu Chiều dài Ràng buộc MaThongSo Nvarchar 5 Not null TenThongSo Nvarchar 50 Allow null KiHieu Nvarchar 5 Allow null Bảng 4. 3: Bảng ThongSo ¾ ChiTietBaiToan Thuộc tính Kiểu dữ liệu Chiều dài Ràng buộc MaBaiToan Numeric 9 Not null MaThongSo Nvarchar 5 Not null MaGia Numeric 9 Not null GiaTriDoiSo Numeric 9 Allow null Bảng 4. 4: Bảng ChiTietBaiToan ¾ KetQuaBaiToan Thuộc tính Kiểu dữ liệu Chiều dài Ràng buộc MaKQ Numeric 9 Not null MaBaiToan Numeric 9 Not null MaThongSo Nvarchar 5 Not null MaGia Numeric 9 Not null KetQua Numeric 9 Allow null Bảng 4. 5: Bảng KetQuaBaiToan 4.3.4 Mô hình cài đặt dữ liệu trong Sql Hình 4. 25: Mô hình cài đặt dữ liệu SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 86 /116 4.4 Giao diện 4.4.1 Tab Dữ liệu vào: Hình 4. 26: Giao diện Tab dữ liệu vào 4.4.2 Tab Bài toán: Hình 4. 27: Giao diện Tab Bài toán SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 87 /116 4.4.3 Tab Dữ liệu xuất: Hình 4. 28: Giao diện Tab dữ liệu xuất 4.5 Thử nghiệm 4.5.1 Tính lãi đơn với dữ liệu nhập mới từ form: Mô hình bài toán với kết quả được lưu xuống CSDL Sql Hình 4. 29: Mô hình bài toán lãi đơn với dữ liệu vào nhập mới, dữ liệu ra được lưu dạng Sql SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 88 /116 Form nhập dữ liệu: Hình 4. 30: Nhập dữ liệu cho bài toán tính tiền lãi đơn Kết quả đạt được: Hình 4. 31: Kết quả Bài toán tính tiền lãi đơn với dữ liệu nhập từ form SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 89 /116 4.5.2 Tính lãi đơn với dữ liệu vào lấy từ file Excel Mô hình bài toán: Hình 4. 32: Mô hình tính tiền lãi đơn với dữ liệu vào và ra dạng file Excel Form load dữ liệu từ file Excel: Hình 4. 33: form load dữ liệu từ Excel SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 90 /116 Kết quả bài toán: Hình 4. 34: Kết quả Bài toán tính tiền lãi đơn với dữ liệu vào và ra là file Excel SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 91 /116 KẾT LUẬN 1. KẾT QUẢ ĐẠT ĐƯỢC KHI THỰC HIỆN ĐỀ TÀI Luận văn đã trình bày tổng quan về Matlab và các hàm về tài chính mà Matlab cung cấp. Giới thiệu các bài toán tài chính cơ bản. Bao gồm định nghĩa, công thức và ví dụ minh họa. Xây dựng được chương trình giải các bài toán tài chính thông qua Matlab. Cho phép nhận và xuất dữ liệu theo các định dạng lưu trữ: Excel, Access, SQL,. 2. ĐÁNH GIÁ Mặc dù chúng em đã có nhiều cố gắng trong quá trình thực hiện luận văn này. Song, vẫn không tránh khỏi những thiếu sót và hạn chế về mặt lý thuyết cũng như ứng dụng. ƒ Lý thuyết: - Các bài toán trong tài chính chưa được giới thiệu đầy đủ. - Chưa trình bày sâu về các hàm trong hộp công cụ tài chính. ƒ Chương trình: - Chỉ giải được một số bài toán cơ bản đã giới thiệu trong phần lý thuyết. - Chương trình chỉ nhận và xuất theo các định dạng dữ liệu nhất định. - Chưa hỗ trợ tính năng xử lý các bài toán lồng nhau (dữ liệu ra của bài này là dữ liệu đầu vào của bài toán khác). 3. HƯỚNG PHÁT TRIỂN ƒ Lý thuyết: - Giới thiệu thêm các bài toán khác trong tài chính. - Trình bày đầy đủ các hàm trong hộp công cụ tài chính ƒ Chương trình: - Tạo mô hình dữ liệu lưu các công thức tính do người dùng nhập vào nhằm tạo sự linh động khi tính toán. - Bổ sung một số định dạng lưu trữ dữ liệu khác như: MySQL, Oracle.. - Cho phép lọc dữ liệu vào và ra. - Thiết kế giao diện thân thiện hơn. SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 92 /116 PHỤ LỤC (1) Hướng dẫn cài đặt Matlab: 1. Yêu cầu hệ thống: ( MATLAB 7.3) ƒ Ổ đĩa CD-ROM (để cài đặt từ CD) hoặc DVD. ƒ Hệ điều hành: Windows XP, Windows 2000 (Service Pack 3 hoặc 4), Windows Server 2003. ƒ Bộ vi xử lý : Intel Pentium III, IV, Xeon, Pentium M hoặc AMD Athlon, Athlon XP, Athlon MP, Opteron. ƒ Dung lượng RAM : 512 MB (tối thiểu), 1024 MB (đề nghị). ƒ Dung lượng đĩa cứng cần thiết : 460 MB (chỉ cài đặt MATLAB và Help), nếu cài đặt đầy đủ cần khoảng 4377MB. ƒ Card đồ họa : hỗ trợ OpenGL 16-,24-, hoặc 32-bit. 2. Cách cài đặt MATLAB 7.3 (phiên bản R2006b) trên Windows từ CD: ƒ Cho đĩa CD1 vào ổ đĩa CD – ROM, trình cài đặt The MathWorks Installer sẽ tự chạy, hiển thị hộp hội thoại Welcome to the MathWorks Installer như sau: ƒ Hộp thoại sau xuất hiện yêu cầu điền các thông tin cần thiết cho việc cài đặt. SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 93 /116 ƒ Đọc software licensing agreement, chọn Yes và click vào nút Next. ƒ Chọn chế độ cài đặt là Typical hoặc Custom và click Next. ƒ Nếu chọn kiểu cài đặt là Custom thì hộp thoại sau xuất hiện cho phép ta chọn các tool cần cài đặt và click Next. ƒ Chọn nơi cài đặt Matlab và click Next. SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 94 /116 ƒ Chọn Intall để cài đặt chương trình. ƒ Sau khi cài đặt xong, hộp thoại sau xuất hiện. (2) Hộp công cụ tài chính: 2.1. Biến đổi ma trận 9 Cú pháp: - tsmat = fts2mat(tsobj) - tsmat = fts2mat(tsobj, datesflag) - tsmat = fts2mat(tsobj, seriesnames) - tsmat = fts2mat(tsobj, datesflag, seriesnames) 9 Mô tả : Lấy chuỗi dữ liệu trong đối tượng FTS và đặt chúng vào ma trận cột. Thứ tự các cột giống thứ tự của chuỗi dữ liệu trong đối tượng FTS. 9 Các đối số : - tsobj: Đối tượng FTS. - datesflag( Tùy chọn ): ‚ datesflag = 0 (mặc định) Không chứa ngày. ‚ datesflag = 1 chứa vectơ ngày. - seriesnames( Tùy chọn ): Chỉ rõ chuỗi dữ liệu trong ma trận. Có thể là mảng các chuỗi. SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 95 /116 2.2. Kết hợp các đối tượng FTS 9 Cú pháp: newfts = merge(fts1, fts2, ..., Method, RefObj) 9 Mô tả: Kết hợp các đối tượng FTS. Đối số Method xác định giá trị chứa trong đối tượng FTS trả về. 9 Các đối số - fts1, fts2, ...: Danh sách các đối tượng FTS cần tích hợp, được ngăn cách bởi dấu phẩy. Chú ý: Thứ tự nhập vào quyết định dữ liệu ra. Những ngày giống nhau và dữ liệu tương ứng của đối tượng sau bị loại bỏ. - Method(tùy chọn): Phương pháp tích hợp. ‚ 'union' hoặc 'u' (Mặc định): Trả về các giá trị kết hợp của tất cả đối tượng. ‚ 'intersection' hoặc 'i': Trả về các giá trị chung cho các đối tượng. ‚ 'reftime' hoặc 'r': Sắp xếp tất cả các giá trị đến một thời điểm liên quan trong RefObj. - RefObj( Tùy chọn ): Vectơ thời gian của đối tượng FTS được sử dụng như thời gian tham khảo. 9 Ví dụ: Tạo 3 đối tượng FTS và kết hợp chúng vào một đối tượng duy nhất. >> dates = {'jan-01-2001'; 'jan-03-2001' }; >> data = [1; 1]; >> t1 = fints(dates, data); >> dates = { 'jan-03-2001'; 'jan-04-2001'}; >> data = [2; 2]; >> t2 = fints(dates, data); >> dates = {'jan-03-2001';'jan-05-2001'}; >> data = [3; 3]; >> t3 = fints(dates, data); >> t123 = merge(t1, t2, t3) ; >> ans = desc: || || freq: Unknown (0) 'dates: (4)' 'series1: (4)' '01-Jan-2001' [ 1] '03-Jan-2001' [ 1] '04-Jan-2001' [ 2] '05-Jan-2001' [ 3] SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 96 /116 2.3. Các hàm số học Hàm Ý nghĩa horzcat Nối các đối tượng FTS theo chiều ngang. vertcat Nối các đối tượng FTS theo chiều dọc. minus Trừ FTS. times Nhân FTS. rdivide Chia FTS. mtimes Nhân ma trận FTS. mrdivide Chia ma trận FTS. power Lũy thừa đối tượng FTS. 9 horzcat: ƒ Mô tả: Các đối tượng FTS phải chứa ngày và thời gian giống nhau chính xác. Khi nhiều chuỗi dữ liệu chỉ tên xuất hiện, việc kết hợp sẽ thêm một hậu tố _objectname, với n là một số cho biết vị trí của chuỗi thời gian trong câu lệnh kết nối từ trái sang phải. n chỉ xuất hiện khi có nhiều chuỗi dữ liệu chỉ tên. Các field miêu tả cũng được kết nối. Chúng được phân cách bởi //. ƒ Ví dụ: Xây dựng 3 đối tượng FTS, mỗi đối tượng chứa một chuỗi dữ liệu có tên DataSeries: >> firstfts = fints((today:today+1)', (1:2)','DataSeries','d'); >> secondfts = fints((today:today+1)', (11:12)','DataSeries','d'); >> thirdfts = fints((today:today+1)', (21:22)','DataSeries','d'); >> newfts = [firstfts secondfts thirdfts secondfts]; >> newfts = desc: // // // freq: Daily (1) Columns 1 through 2 'dates: (2) ' 'DataSeries_firstfts' ' ' ': (2) ' '10-Dec-2006' [ 1] '11-Dec-2006' [ 2] Columns 3 through 4 'DataSeries_secondft' 'DataSeries_thirdfts' 's2: (2) ' ': (2) ' [ 11] [ 21] SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 97 /116 [ 12] [ 22] Column 5 'DataSeries_secondft' 's4: (2) ' [ 11] [ 12] 9 vertcat: ƒ Mô tả: Đối tượng được kết nối không cần phải có thời gian trùng khớp. Các field miêu tả cũng được kết nối. Chúng được ngăn cách bởi ||. Khi freq khác nhau thì thuộc tính freq xuất ra có giá trị là Unknown(0). ƒ Ví dụ: >> myfts = fints((today:today+1)', (1:2)', 'DataSeries', 'd'); >> yourfts = fints((today+2:today+3)', (11:12)', 'DataSeries', 'd'); >> newfts1 = [myfts; yourfts]; >> newfts1 = desc: || freq: Daily (1) 'dates: (10)' 'DataSeries: (4)' '10-Dec-2006' [ 1] '11-Dec-2006' [ 2] '12-Dec-2006' [ 11] '13-Dec-2006' [ 12] 9 plus: ƒ Cú pháp: - newfts = tsobj_1 + tsobj_2 - newfts = tsobj + array - newfts = array + tsobj ƒ Mô tả: Hai phải cùng ngày và chuỗi dữ liệu chỉ tên, thứ tự không cần giống nhau. Thứ tự của chuỗi dữ liệu khi một FTS được cộng với một FTS khác theo sau thứ tự của đối tượng đầu tiên. ƒ Các đối số - tsobj_1, tsobj_2: Một cặp đối tượng FTS. - array: Giá trị hoặc mảng vô hướng với số hàng bằng số hàng của thuộc tính ngày trong tsobj và số cột bằng với số chuỗi dữ liệu trong tsobj. SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 98 /116 ƒ Ví dụ: >> newfts = first + second >> newfts = desc: (none) freq: Daily (1) 'dates: (5)' 'DataSeries: (5)' '10-Dec-2006' [ 12] '11-Dec-2006' [ 14] '12-Dec-2006' [ 16] '13-Dec-2006' [ 18] '14-Dec-2006' [ 20] 9 minus: ƒ Cú pháp: - newfts = tsobj_1 - tsobj_2 - newfts = tsobj – array - newfts = array – tsobj ƒ Mô tả: Hai đối tượng phải cùng ngày và chuỗi dữ liệu chỉ tên, thứ tự không cần giống nhau. Thứ tự của chuỗi dữ liệu khi một FTS bị trừ bởi một FTS khác theo sau thứ tự của đối tượng đầu tiên. ƒ Ví dụ >> newfts = first – second >> newfts = desc: (none) freq: Daily (1) 'dates: (5)' 'DataSeries: (5)' '10-Dec-2006' [ -10] '11-Dec-2006' [ -10] '12-Dec-2006' [ -10] '13-Dec-2006' [ -10] '14-Dec-2006' [ -10] ƒ Các đối số - tsobj_1, tsobj_2: Một cặp đối tượng FTS. - array: Giá trị hoặc mảng vô hướng với số hàng bằng số hàng của thuộc tính ngày trong tsobj và số cột bằng với số chuỗi dữ liệu trong tsobj. SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 99 /116 9 times: ƒ Cú pháp: - newfts = tsobj_1 .* tsobj_2 - newfts = tsobj .* array - newfts = array .* tsobj ƒ Mô tả : Hai đối tượng phải cùng ngày và cùng chuỗi dữ liệu chỉ tên, thứ tự không cần giống nhau. Thứ tự của chuỗi dữ liệu khi đối tượng được nhân bởi một đối tượng khác theo sau thứ tự của đối tượng đầu tiên. ƒ Các đối số - tsobj_1, tsobj_2: Một cặp đối tượng FTS. - array: Giá trị hoặc mảng vô hướng với số hàng bằng số hàng của thuộc tính ngày trong tsobj và số cột bằng với số chuỗi dữ liệu trong tsobj. ƒ Ví dụ: >> newfts = first.* second >> newfts = desc: (none) freq: Daily (1) 'dates: (5)' 'DataSeries: (5)' '11-Dec-2006' [ 11] '12-Dec-2006' [ 24] '13-Dec-2006' [ 39] '14-Dec-2006' [ 56] '15-Dec-2006' [ 75] 9 rdivide: ƒ Cú pháp: - newfts = tsobj_1 ./ tsobj_2 - newfts = tsobj ./ array - newfts = array ./ tsobj ƒ Mô tả :Hai đối tượng phải cùng ngày và cùng chuỗi dữ liệu chỉ tên, thứ tự không cần giống nhau. Thứ tự của chuỗi dữ liệu khi đối tượng bị chia bởi một đối tượng khác theo sau thứ tự của đối tượng đầu tiên. SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 100 /116 ƒ Các đối số - tsobj_1, tsobj_2: Một cặp đối tượng FTS. - array: Giá trị hoặc mảng vô hướng với số hàng bằng số hàng của thuộc tính ngày trong tsobj và số cột bằng với số chuỗi dữ liệu trong tsobj. ƒ Ví dụ: >> newfts = first ./ second >> newfts = desc: (none) freq: Daily (1) 'dates: (5)' 'DataSeries: (5)' '11-Dec-2006' [ 0.0909] '12-Dec-2006' [ 0.1667] '13-Dec-2006' [ 0.2308] '14-Dec-2006' [ 0.2857] '15-Dec-2006' [ 0.3333] 9 mtimes : - newfts = tsobj_1 * tsobj_2 - newfts = tsobj * array - newfts = array * tsobj Chú ý: Đối với đối tượng FTS, hàm mtimes giống hệt như hàm times. 9 mrdivide : - newfts = tsobj_1 / tsobj_2 - newfts = tsobj / array - newfts = array / tsobj Chú ý: Đối với đối tượng FTS, hàm mrdivide giống hệt như hàm rdivide 9 Lũy thừa: ƒ Cú pháp: - newfts = tsobj .^ array - newfts = array .^tsobj - newfts = tsobj_1 .^ tsobj_2 ƒ Mô tả: Nâng tương ứng tất cả các giá trị trong chuỗi dữ liệu của đối tượng FTS tới lũy thừa được chỉ rõ bởi giá trị của mảng. Kết quả trả về trong một đối tượng FTS mới. Đối tượng này chứa chuỗi dữ liệu chỉ tên giống như đối tượng FTS trước. SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 101 /116 ƒ Các đối số - tsobj: Đối tượng FTS. - tsobj_1, tsobj_2: Một cặp đối tượng FTS. - array: Giá trị hoặc mảng vô hướng với số hàng bằng số hàng của thuộc tính ngày trong tsobj và số cột bằng với số chuỗi dữ liệu trong tsobj. ƒ Ví dụ: >> newfts = first .^ array >> newfts = desc: (none) freq: Daily (1) 'dates: (5)' 'DataSeries: (5)' '11-Dec-2006' [ 1] '12-Dec-2006' [ 32] '13-Dec-2006' [ 243] '14-Dec-2006' [ 1024] '15-Dec-2006' [ 3125] 2.4. Các hàm toán học Hàm Ý nghĩa exp Tính giá trị số mũ theo cơ số e hist Vẽ biểu đồ log Tính giá trị loga theo cơ số e max Giá trị lớn nhất mean Tính giá trị trung bình cộng std Tính độ lệch chuẩn 9 exp: ƒ Cú pháp: newfts = exp(tsobj) ƒ Mô tả: Tính giá trị số mũ theo cơ số e cho tất cả các giá trị trong chuỗi giá trị của đối tượng FTS tsobj và trả kết quả trong đối tượng FTS newfts. ƒ Ví dụ: >> newfts = exp(firstfts) >> newfts = desc: EXP of freq: Daily (1) 'dates: (5)' 'DataSeries: (5)' '11-Dec-2006' [ 2.7183] SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 102 /116 '12-Dec-2006' [ 7.3891] '13-Dec-2006' [ 20.0855] '14-Dec-2006' [ 54.5982] '15-Dec-2006' [ 148.4132] 9 hist: ƒ Cú pháp: - hist(tsobj, numbins) - ftshist = hist(tsobj, numbins) - [ftshist, binpos] = hist(tsobj, numbins) ƒ Các đối số - tsobj: Đối tượng FTS. - numbins( Tùy chọn ): Số thanh của biểu đồ. Mặc định = 10. ƒ Ví dụ: >> hist(first) 9 log: ƒ Cú pháp: newfts = log(tsobj) ƒ Mô tả: Tính giá trị loga theo cơ số e cho các giá trị trong đối tượng FTS tsobj và trả kết quả trong đối tượng FTS newfts. ƒ Ví dụ: >> newfts = log(first) >> newfts = desc: LOG of freq: Daily (1) 'dates: (5)' 'DataSeries: (5)' '11-Dec-2006' [ 0] '12-Dec-2006' [ 0.6931] '13-Dec-2006' [ 1.0986] '14-Dec-2006' [ 1.3863] '15-Dec-2006' [ 1.6094] Chú ý: Các hàm log2, log10 tương tự. SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 103 /116 9 tsmax: ƒ Cú pháp: tsmax = max(tsobj) Chú ý: tsmax chỉ trả về giá trị và không trả về ngày liên quan với giá trị. Giá trị lớn nhất không cần ngày phải giống nhau. ƒ Ví dụ: >> tsmax = max(first) >> tsmax = DataSeries: 5 Chú ý: Hàm min tương tự 9 mean: ƒ Cú pháp: tsmean = mean(tsobj) ƒ Ví dụ: >> tsmean = mean(first) >> tsmean = DataSeries: 3 9 std: ƒ Cú pháp: - tsstd = std(tsobj) - tsstd = std(tsobj, flag) ƒ Các đối số - tsobj: Đối tượng FTS - flag( Tùy chọn ): Các nhân tố bình thường hóa: ‚ flag = 1: Bình thường hóa bởi n( số dữ liệu tìm thấy). ‚ flag = 0: Bình thường hóa bởi n-1 ƒ Ví dụ: >> tsstd = std(first) >> tsstd = DataSeries: 1.5811 2.5. Các hàm tiện ích Hàm Ý nghĩa chfield Thay đổi tên chuỗi dữ liệu extfiel Trích chuỗi dữ liệu fetch Trích dữ liệu từ đối tượng FTS fieldnames Lấy tên field freqnum Chuyển chuỗi chỉ tính thường xuyên thành số getnameidx Tìm tên trong danh sách rmfield Xóa chuỗi dữ liệu sortfts Sắp xếp FTS SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 104 /116 9 chfield: ƒ Cú pháp: newfts = chfield(oldfts, oldname, newname) ƒ Mô tả: - Đổi tên của thành phần đối tượng FTS từ oldname thành newname. - Gán newfts = oldfts để đổi tên của một thành phần đã tồn tại mà không phải thay đổi tên của đối tượng FTS. - Để đổi tên đồng thời nhiều thành phần cần chỉ rõ chuỗi của đối tượng cũ và tên thành phần mới trong mảng cột tương ứng. - Không thể đổi tên của desc, freq, dates. ƒ Các đối số: - oldfts: Tên của đối tượng FTS hiện hành. - oldname: Tên thành phần hiện hành trong oldfts. Một chuỗi MatLab hay một mảng cột. - newname: Tên mới cho thành phần trong oldfts. Một chuỗi MatLab hay một mảng cột. ƒ Ví dụ: >> newfts = chfield(first, 'DataSeries', 'DataSeries1') >> newfts = desc: (none) freq: Daily (1) 'dates: (5)' 'DataSeries1: (5)' '11-Dec-2006' [ 1] '12-Dec-2006' [ 2] '13-Dec-2006' [ 3] '14-Dec-2006' [ 4] '15-Dec-2006' [ 5] 9 extfield: ƒ Cú pháp: ftse = extfield(tsobj, fieldnames) ƒ Mô tả: Trích từ tsobj ngày và chuỗi dữ liệu được xác định bởi fieldnames vào đối tượng FTS ftse. ftse có tất cả các ngày trong tsobj nhưng chứa số chuỗi dữ liệu nhỏ hơn. ƒ Các đối số: - tsobj: Đối tượng FTS. - fieldnames: Chuỗi dữ liệu được trích. Là một mảng nếu một danh sách tên các chuỗi dữ liệu được cung cấp. Là một chuỗi nếu chỉ một tên chuỗi dữ liệu được yêu cầu. SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 105 /116 ƒ Ví dụ: >> ftse = extfield(first, 'DataSeries') >> ftse = desc: (none) freq: Daily (1) 'dates: (5)' 'DataSeries: (5)' '11-Dec-2006' [ 1] '12-Dec-2006' [ 2] '13-Dec-2006' [ 3] '14-Dec-2006' [ 4] '15-Dec-2006' [ 5] 9 fetch: ƒ Cú pháp: newfts = fetch(oldfts, StartDate, StartTime, EndDate, EndTime, delta, dmy_specifier, time_ref) ƒ Mô tả: Yêu cầu dữ liệu của một đối tượng FTS bắt đầu từ ngày bắt đầu và/hoặc thời gian bắt đầu đến ngày kết thúc và/hoặc thời gian kết thúc, bỏ qua số ngày, tháng, năm. ƒ Các đối số: - oldfts: Đối tượng FTS hiện tại. - StartDate: Ngày đầu tiên trong mảng dữ liệu được trích. - StartTime: Thời gian bắt đầu mỗi ngày. Nếu không cần thời gian cụ thể hoặc oldfts không chứa thời gian thì dùng []. Nếu StartTime xác định thì cũng phải xác định EndTime. - EndDate: Ngày cuối trong mảng dữ liệu được trích. - EndTime: Thời gian kết thúc vào mỗi ngày. Nếu thời gian không xác định hoặc oldfts không chứa thông tin thời gian thì dùng “[]”. Nếu EndTime xác định thì StartTime cũng phải xác định. - delta: Nhảy qua khoảng thời gian giữa.Có thể là bất kỳ số nguyên dương. Đơn vị cho khoảng thời gian bỏ qua được xác định bởi dmy_specifier. - dmy_specifier: Xác định đơn vị cho delta. ‚ D, d ( Ngày ) ‚ M, m ( Tháng ) ‚ Y, y ( Năm ) - time_ref: Khoảng thời gian tham khảo hay thời gian rõ ràng. Khoảng thời gian tham khảo hợp lý là 1, 5, 15, 60 phút. Nhập vào thời gian xác định như 'hh:mm'. SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 106 /116 ƒ Ví dụ: >>dates2 = ['01-Jan-2001';'01-Jan-2001'; '01-Jan-2001';... '02-Jan-2001'; '02-Jan-2001';'02-Jan-2001']; >>times2 = ['11:00';'11:05';'11:06';'12:00';'12:05';'12:06']; >>dates_times2 = cellstr([dates2, repmat(' ',size(dates2,1),1), times2]); >>myFts2 = fints(dates_times2,(1:6)',{'Data1'},1,'My second FINTS') >> fetch(myFts2,'01-Jan-2001',[],'02-Jan-2001',[],1,'d',... {'11:06';'12:06'}) >> ans = desc: My second FINTS freq: Daily (1) 'dates: (2)' 'times: (2)' 'Data1: (2)' '01-Jan-2001' '11:06' [ 3] '02-Jan-2001' '12:06' [ 6] 9 fieldnames: ƒ Cú pháp: fnames = fieldnames(tsobj) ƒ Mô tả: Trả về tên field liên quan với đối tượng FTS tsobj như một mảng các chuỗi, bao gồm các field thông thường: desc, freq, dates( và thời gian nếu tồn tại ). ƒ Ví dụ: >> fnames = fieldnames(first) >> fnames = 'desc' 'freq' 'dates' 'DataSeries' ƒ Các đối số: - tsobj: Đối tượng FTS. - srsnameonly: Các tên field trả về: ‚ = 0( mặc định ): trả về tất cả các tên field. ‚ = 1: chỉ trả về tên chuỗi dữ liệu. Chú ý: Hàm fnames = fieldnames(tsobj, srsnameonly) tương tự. 9 freqnum: ƒ Cú pháp: nfreq = freqnum(sfreq) ƒ Mô tả: Chuyển một chuỗi chỉ tính thường xuyên thành số. SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 107 /116 Chú ý: Hàm sfreq = freqstr(nfreq) ngược lại. ‚ Các giá trị: sfreq nfreq UNKNOWN, Unknown, unknown, U, u 0 DAILY, Daily, daily, D, d 1 WEEKLY, Weekly, weekly, W, w 2 MONTHLY, Monthly, monthly, M, m 3 QUARTERLY, Quarterly, quarterly, Q, q 4 SEMIANNUAL, Semiannual, semiannual, S, s 5 ANNUAL, Annual, annual, A, a 6 ƒ Ví dụ: >> nfreq = freqnum('w') >> nfreq = 2 9 getnameidx : ƒ Cú pháp: nameidx = getnameidx(list, name) ƒ Mô tả: Nếu name là một mảng các tên thì getnameidx trả về vectơ chứa thứ tự của các tên trong danh sách. Nếu không tìm thấy tên nào trong danh sách thì nó trả về 0. Nếu một vài tên không tìm thấy thì thứ tự tương ứng bằng 0. Hàm chỉ nhận tên đầu tiên trong danh sách có các tên giống nhau. Hàm này dùng cho tên trong danh sách là duy nhất. ƒ Các đối số: - list: Một mảng các chuỗi tên. - name: Một chuỗi hay một mảng các chuỗi tên. ƒ Ví dụ: >> poultry = {'duck', 'goose', 'chicken'} >> animals = {'duck', 'cow', 'duck', 'chicken', 'horse', 'chicken'} >> nameidx = getnameidx(animals, poultry) >> nameidx = 1 0 4 9 rmfield : ƒ Cú pháp: fts = rmfield(tsobj, fieldname) ƒ Mô tả: Xóa chuỗi dữ liệu fieldname và nội dung của nó từ đối tượng FTS tsobj. SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 108 /116 ƒ Các đối số: - tsobj: Đối tượng FTS. - fieldname: Mảng chứa tên các chuỗi để xóa một chuỗi đơn ra khỏi đối tượng. Mảng các chuỗi dữ liệu để xóa nhiều chuỗi dữ liệu ra khỏi đối tượng cùng một lúc. 9 sortfts: ƒ Cú pháp - sfts = sortfts(tsobj) - sfts = sortfts(tsobj, flag) - sfts = sortfts(tsobj, seriesnames, flag) - [sfts, sidx] = sortfts(...) ƒ Mô tả: Sắp xếp đối tượng FTS tsobj. theo thứ tự tăng dần chỉ dựa vào vectơ ‘dates’ nếu tsobj không chứa thời gian. Nếu có thì phải sắp xếp dựa trên sự kết hợp của vectơ ‘dates’ và ‘times’. Vectơ ‘times’ không thể sắp xếp riêng biệt. ƒ Các đối số - tsobj:Đối tượng FTS. - flag( Tùy chọn ): Xác định thứ tự sắp xếp: ‚ flag = 1( mặc định ): thứ tự tăng dần. ‚ flag = -1: thứ tự giảm dần. - seriesnames( Tùy chọn ): Chuỗi chứa một tên chuỗi dữ liệu hay mảng chứa danh sách các tên chuỗi dữ liệu. ƒ Ví dụ: >> sfts1 = sortfts(first, -1) >> sfts = sortfts(sfts1) >> sfts = desc: (none) freq: Daily (1) 'dates: (5)' 'DataSeries: (5)' '11-Dec-2006' [ 1] '12-Dec-2006' [ 2] '13-Dec-2006' [ 3] '14-Dec-2006' [ 4] '15-Dec-2006' [ 5] SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 109 /116 2.6. Biến đổi dữ liệu Hàm Ý nghĩa peravg Tính mức trung bình định kỳ smoothts Dữ liệu trơn tsmovavg Tính độ dịch chuyển trung bình và độ trung bình dịch chuyển có trọng số 9 peravg: ƒ Cú pháp: avgfts = peravg(tsobj, numperiod) ƒ Mô tả: Trả về một cấu trúc avgfts chứa mức trung bình định kỳ( cho mỗi kỳ numperiod ) của đối tượng FTS. avgfts có các tên field giống với tên chuỗi dữ liệu của tsobj. ƒ Các đối số: - tsobj: Đối tượng FTS. - numperiod: Số nguyên xác định số điểm dữ liệu dùng để tính trung bình cho mỗi mức trung bình định kỳ - daterange: Khoảng thời gian dùng để tính trung bình. ƒ Ví dụ: >> avgfts = peravg(first, 2) >> avgfts = DataSeries: [1.5000 3.5000 5] ™ Chú ý: Hàm avgfts = peravg(tsobj, daterange) tương tự Ví dụ: >> avgfts = peravg(first, '13-Dec-2006::16-Dec-2006') >> avgfts = DataSeries: 2.5000 9 smoothts: ƒ Cú pháp: output = smoothts(input, 'e', n) ƒ Mô tả: Làm trơn dữ liệu vào dùng phương pháp Exponential. n có thể đại diện cho kích thước cửa sổ( window size)( khoảng thời gian ) hoặc alpha. Nếu n>1 thì n đại diện cho kích thước cửa sổ(window size). Nếu 0< n<1 thì n đại diện cho alpha mà 1 2 += wsizeα . Nếu input là FTS thì output là FTS giống hệt nhưng loại trừ nội dung. Nếu input là ma trận hàng thì output là ma trận hàng cùng cỡ. ƒ Ví dụ: >> a = [1 2 3 4 5; 4 5 6 7 8 ]; >> output = smoothts(a, 'e', 0.5) >> output = 1.0000 1.5000 2.2500 3.1250 4.0625 4.0000 4.5000 5.2500 6.1250 7.0625 SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 110 /116 9 tsmovavg: Độ dịch chuyển trung bình đơn giản ƒ Cú pháp: - output = tsmovavg(tsobj, 's', lag) - output = tsmovavg(vector, 's', lag, dim) ƒ Mô tả: Tính độ dịch chuyển trung bình. lag chỉ số điểm dữ liệu trước được dùng chung dữ liệu hiện tại khi tính độ dịch chuyển trung bình. ƒ Ví dụ: >> output = tsmovavg(first, 's', 2) >> output = desc: (none) freq: Daily (1) 'dates: (5)' 'DataSeries: (5)' '13-Dec-2006' [ NaN] '14-Dec-2006' [ 1.5000] '15-Dec-2006' [ 2.5000] '16-Dec-2006' [ 3.5000] '17-Dec-2006' [ 4.5000] 9 tsmovavg: Độ dịch chuyển trung bình có trọng số ƒ Cú pháp: - output = tsmovavg(tsobj, 'w', weights) - output = tsmovavg(vector, 'w', weights, dim) ƒ Mô tả: Tính độ dịch chuyển trung bình có trọng số bằng cách cung cấp các trọng số cho mỗi yếu tố trong cửa sổ dịch chuyển. Chiều dài của vectơ trọng số xác định kích cỡ cửa sổ. Nếu các trọng số lớn hơn được dùng cho nhiều giá gần đây và các trọng số nhỏ hơn dùng cho giá trước đó thì xu hướng thuận lợi hơn cho thị trường chứng khoán gần đây. ƒ Các đối số - tsobj: Đối tượng FTS. - lag: Số điểm dữ liệu trước. - vector: Vectơ hàng hay ma trận hàng. Mỗi hàng là một bộ quan sát. - dim( Tùy chọn ): Chỉ rõ chiều khi đầu vào là vectơ hoặc ma trận. Mặc định là 2( Ma trận hàng: mỗi hàng là một biến và mỗi cột là một bộ quan sát ). Nếu dim = 1 thì đầu vào là vectơ cột hoặc ma SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 111 /116 trận cột( mỗi cột là một biến và mỗi hàng là một bộ quan sát). output giống định dạng của đầu vào. weights: Trọng số của các yếu tố. ƒ Ví dụ: >> output = tsmovavg(first, 'w', [3 2 1]) >> output = desc: (none) freq: Daily (1) 'dates: (5)' 'DataSeries: (5)' '13-Dec-2006' [ NaN] '14-Dec-2006' [ NaN] '15-Dec-2006' [ 1.6667] '16-Dec-2006' [ 2.6667] '17-Dec-2006' [ 3.6667] 2.7. Vẽ đồ thị Hàm Ý nghĩa bar Vẽ biểu đồ dạng bar, barh chartfts Hiển thị tương tác 9 bar: ƒ Cú pháp: - bar(tsobj) - bar(tsobj, width) - bar(..., 'style') - hbar = bar(...) ƒ Mô tả: Vẽ các cột chuỗi dữ liệu của tsobj. Số chuỗi dữ liệu quyết định số cột đứng trong mỗi nhóm. Mỗi nhóm là dữ liệu cho một ngày riêng biệt. ƒ Các đối số - tsobj: Đối tượng FTS. - width: Độ rộng của cột và khoảng cách giữa các cột trong một nhóm. Mặc định là 0.8. Nếu width =1 thì các cột trong một nhóm đụng lẫn nhau. Nếu width >1 tạo ra các cột chồng lấp. - style: ‘grouped’( mặc định ) hoặc ‘stacked’ Chú ý: - Hàm barh(...) và hàm hbarh = barh(...) tương tự nhưng vẽ theo chiều ngang. - Các hàm bar3, bar3h tương tự như bar, barh SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 112 /116 9 chartfts: ƒ Cú pháp: chartfts(tsobj) ƒ Mô tả: Tạo một khung hình chứa một hoặc nhiều biểu đồ. Có thể dùng chuột để xem dữ liệu tại một điểm thời gian riêng biệt trên biểu đồ. ƒ Ví dụ: >> ibmfts = ascii2fts('ibm9599.dat.txt', 1, 3, 2); >> chartfts(ibmfts) (3) Các LineSpec (Line Specification): Matlab cho phép ta định nghĩa bất kỳ đặc tính nào của các đường (line) dùng cho việc vẽ đồ thị, hình ảnh,Bao gồm kiểu đường (line style), độ rộng của đường (line width), màu (color), kiểu vạch dấu (marker type), kích thước vạch dấu (marker size), bề mặt vạch dấu và màu cạnh (dùng cho các vạch dấu được tô đặc). Sau đây là một số đặc tính của đường được Matlab cung cấp: " Kiểu đường: Chỉ định Kiểu đường - Đường liền (mặc định) -- Đường gạch ngang : Đường chấm -. Đường gạch chấm " Vạch dấu (kiểu ký hiệu dánh dấu điểm dữ liệu): Chỉ định Kiểu vạch dấu + Kiểu dấu cộng o Hình tròn * Dấu hoa thị . Điểm x Dấu thập SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 113 /116 square hoặc s Hình vuông diamond hoặc d Hình kim cương (thoi) ^ Tam giác hướng lên v Tam giác hướng xuống > Tam giác hướng phải < Tam giác hướng trái pentagram hoặc p Ngôi sao 5 cánh hexagram hoặc h Ngôi sao 6 cánh none Không có vạch dấu (mặc định) " Bảng màu ColorSpec: Giá trị RGB Tên tắt Tên đầy đủ Màu [1 1 0] y yellow Vàng [1 0 1] m magenta Đỏ tươi [0 1 1] c cyan Lục lam [1 0 0] r red Đỏ [0 1 0] g green Xanh lá [0 0 1] b blue Xanh [1 1 1] w white Trắng [0 0 0] k black Đen Ví dụ: t = 0:pi/20:2*pi; plot(t,sin(t),'-.r*') hold on plot(t,sin(t-pi/2),'--mo') plot(t,sin(t-pi),':bs') hold off SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 114 /116 >> plot(t,sin(2*t),'-mo',... 'LineWidth',2,... 'MarkerEdgeColor','k',... 'MarkerFaceColor',[.49 1 .63],... 'MarkerSize',12) (4) Các định dạng ngày tháng (DateForm): DateForm Định dạng Ví dụ 0 'dd-mmm-yyyy HH:MM:SS' 01-Mar-2000 15:45:17 1 'dd-mmm-yyyy' 01-Mar-2000 2 'mm/dd/yy' 03/01/00 3 'mmm' Mar 4 'm' M 5 'mm' 03 6 'mm/dd' 03/01 7 'dd' 01 8 'ddd' Wed 9 9 'd' W10 10 'yyyy' 2006 11 'yy' 06 12 'mmmyy' Mar06 13 'HH:MM:SS' 15:45:17 14 'HH:MM:SS PM' 3:45:17 PM 15 'HH:MM' 15:4516 16 'HH:MM PM' 3:45 PM 17 'QQ-YY' Q1-01 18 'QQ' Q1 SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 115 /116 19 'dd/mm' 01/03 20 'dd/mm/yy' 01/03/06 21 'mmm.dd.yyyy HH:MM:SS' Mar.01,2000 15:45:17 22 'mmm.dd.yyyy' Mar.01.2006 23 'mm/dd/yyyy' 03/01/2006 24 'dd/mm/yyyy' 01/03/2006 25 'yy/mm/dd' 06/03/01 'yyyy/mm/dd' 2006/03/01 27 'QQ-YYYY' Q1-2006 28 'mmmyyyy' Mar2006 SVTH: Nguyễn Thị Cẩm Nhân–02ĐHTH143 Nguyễn Thị Hồng Nhi–02ĐHTH150 Trang 116 /116 TÀI LIỆU THAM KHẢO Sách và Ebooks: [1] David F. Griffiths, An Introduction to Matlab version 2.3, The University Dundee, 2005. [2] The Math Work, Getting Started with Matlab. [3] Alex F. Bielajew, Introduction to Computers and Programming using C++ and MATLAB, The University of Michigan, 2005. [4] Đinh Đức Anh Vũ, Giới thiệu sơ lược vển ngôn ngữ Matlab, Trường ĐH Bách Khoa TpHCM, 2004. [5] PGS.TS Tạ Duy Liêm, Cơ sở Matlab và Ứng dụng, NXB Khoa học và Kỹ thuật, Hà Nội, 2005. [6] Tiến sĩ Lại Tiến Dĩnh, Toán Tài Chính, NXB Thống Kê, 2002 [7] Tiến sĩ Trương Mỹ Dung, SOFTWARE APPLICATIONS TO CONOMICS, NXB Tổng Hợp Tp HCM, 2005 [8] The Math Work, MATLAB Help của MATLAB version 7.3 [9] Kevin Sheppard, Financial Econometrics MFE Matlab Notes, University of Oxford, 8/10/2006 [10] La Văn Hiển, Nhập môn MATLAB Access, NXB Đại Học Quốc Gia Tp.HCM, 2003 [11] Pascal Getreuer, Writing Fast MATLAB Code, 6/2006 [12] Dmitrii S. Silvestrov and Anatoliy A. Malyarenko, An Introduction to Financial Mathematics with MATLAB, Research Report, 2001. Websites: [1] www.mathwork.com [2] www.codeproject.com [3] www.msdn.microsoft.com [4] www.en911.com [5] www.templateen.com [6] www.c-sharpcorner.com

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

  • pdfBaoCao LVTN_Khoa2002.pdf