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
116 trang |
Chia sẻ: baoanh98 | Lượt xem: 813 | Lượt tải: 0
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:
- BaoCao LVTN_Khoa2002.pdf