《量化投資:以MATLAB為工具》連載(1)基礎篇-N分鐘學會MATLAB(上)

http://blog.sina.com.cn/s/blog_4cf8aad30102uylf.html

《量化投資:以MATLAB為工具》連載(1)基礎篇-N分鐘學會MATLAB(上)

?《量化投資:以MATLAB為工具》簡介

?????????《量化投資:以MATLAB為工具》是由電子工業出版社(PHEI)下屬旗艦級子公司——北京博文視點資訊有限公司出版的《量化投資與對沖基金叢書》之一,叢書主編為丁鵬博士,《量化投資:以MATLAB為工具》由李洋(faruto)、鄭志勇(ArisZheng)編著,主要介紹MATLAB在量化投資中的具體應用。該書預計2014年10月上市,歡迎大家多多支持。在書籍上市之前,會在中國量化投資學會的各種網絡平臺進行系列連載介紹,方便讀者提前一窺書籍概要。

?

《量化投資:以MATLAB為工具》連載(1)基礎篇-N分鐘學會MATLAB(上)

?

引言

?????????之所以采用下文這種Q&A的形式來作為《量化投資:以MATLAB為工具》的基礎篇,是想讓剛剛接觸MATLAB的讀者能快速有效地了解MATLAB,畢竟在一個注重時間效率的年代大家更喜歡速成的東西。

?????????本篇形式上參考了劉思喆老師的《153分鐘學會R》,當然內容方面結合了MATLAB本身的特色,本篇的內容來源多樣,既有來自于MATLAB的官方幫助文檔,也有來自我個人的一些總結,還有若干來自MATLAB技術論壇(http://www.matlabsky.com)的討論問題。

?????????MATLAB是一個非常龐大的體系,其官方工具箱就有數十種,內部函數有數百個,可以說學習MATLAB是一件沒有盡頭的事情。

?????????想來自己接觸MATLAB已經有快10年的時間了,在學習MATLAB的道路上接觸很多志同道合的朋友,希望這篇簡單的“N分鐘學會MATLAB(60”能成為你認識、學習MATLAB的好助手。

?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????李洋(faruto)

?

基礎知識

?

(1)?????MATLAB是做什么的?為什么MATLAB叫做MATLAB?

?????????MATLAB是美國MathWorks公司出品的商業數學軟件,用于算法開發、數據可視化、數據分析以及數值計算的高級技術計算語言和交互式環境,主要包括MATLAB和Simulink兩大部分。

?????????MATLAB是Matrix和Laboratory兩個詞的組合,意為矩陣工廠(矩陣實驗室),之所以叫做矩陣工廠(矩陣實驗室),是因為MATLAB的基本數據單位是矩陣。

?

(2)?????MathWorks公司的創始人是誰?

Cleve Moler和Jack Little是MathWorks公司的創始人。其中Cleve Moler是MATLAB首個版本的開發者,Jack Little是信號處理工具箱和控制系統工具箱早期版本的共同開發者和首席架構師。

?

(3)?????我是新手,我如何開始學習MATLAB?

如果你的英文閱讀還算可以,那么MATLAB官方的幫助文檔將是最好且最全面的學習材料,你可以通過在MATLAB的命令窗口(Command Window)中鍵入“doc”來調出MATLAB官方的幫助文檔,或者你也可以在MathWorks公司的官方網站的文檔中心(http://www.mathworks.cn/cn/help/documentation-center.html)中查看在線的MATLAB官方幫助文檔。

另外MathWorks公司的官方網站的用戶中心(http://www.mathworks.cn/matlabcentral/)中有一些MATLAB相關問題的討論以及一些MATLAB大牛的博客,其中包括Cleve Moler的博客——Cleve's Corner(http://blogs.mathworks.com/cleve),在MATLAB用戶中心你可以學習MATLAB。

MATLAB技術論壇(http://www.matlabsky.com)是一個不錯的學習MATLAB的中文網站,本書的作者之一李洋(faruto)是MATLAB技術論壇核心管理團隊的成員之一,在這個論壇里你可以找到大量的學習資料(代碼、數據、視頻等)或直接提出問題同大家討論。

當然,你也可以購買一些MATLAB相關的中外文書籍進行學習。

?

(4)?????使用MATLAB需要很厲害的編程能力嗎?

?????????大多數時候并不需要,因為MATLAB有很多的函數和工具箱,官方的工具箱還有數十種,第三方的工具箱不計其數而且每天都在增加,你用到的一般方法和函數都可以在MATLAB的工具箱中找到。

?

(5)?????能否簡單舉一個MATLAB的例子?

生成100個高斯(正態)分布隨機數,并對這100個數進行特征描述。

MATLAB代碼

Mean_Value = 0;

STD_Value = 1;

Data_Num = 100;

?

x = random('Normal', Mean_Value, STD_Value, Data_Num, 1);

x_dataset = dataset(x);

?

whos

mean_x = mean(x)

std_x = std(x)

summary(x_dataset)

運行結果(由于是生成隨機數,多次運行結果可能不同。)

??Name??????????????Size????????????Bytes??Class??????Attributes

?

??Data_Num??????????1x1 ????????????????8??double??????????????

??Mean_Value????????1x1?????????????????8??double??????????????

??STD_Value?????????1x1?????????????????8??double??????????????

??x???????????????100x1???????????????800??double??????????????

??x_dataset????????????100x1??????????????2300??dataset?????????????

?

mean_x =

???-0.0684

std_x =

????0.9568

x: [100x1 double]

????min????????1st quartile????median???????3rd quartile????max??

????-2.8216????-0.7437?????????-0.088884????0.63638?????????2.3738

?

(6)?????如何查看使用的MATLAB的版本信息以及內存信息?

?????????以通過在MATLAB的命令窗口(Command Window)中鍵入“version”和“memory”來查看所使用的MATLAB版本信息和內存信息。

運行結果(由于MATLAB版本的不同以及電腦配置的不同,運行結果可能不同。)

>> version

ans =

7.14.0.739 (R2012a)

>> memory

Maximum possible array:?????????????444 MB (4.659e+08 bytes) *

Memory available for all arrays:???1190 MB (1.248e+09 bytes) **

Memory used by MATLAB:??????????????427 MB (4.476e+08 bytes)

Physical Memory (RAM):?????????????3327 MB (3.489e+09 bytes)

?

*??Limited by contiguous virtual address space available.

** Limited by virtual address space available.

?

(7)?????MATLAB支持中文嗎?

?????????支持!但在MATLAB中,有相當一部分工具箱的作者都是以英文為母語的,故建議熟練全英文環境。

?

(8)?????MATLAB支持自動補全(Tab Completion)么?

?????????支持!在較新版本中,MATLAB引入了命令自動補全功能,使用Tab鍵能自動補全MATLAB命令或給出所有可能的補全命令列表。

?

(9)?????MATLAB有哪些常用的熱鍵?

?????????MATLAB除了支持常見的Windows熱鍵(復制:Ctrl+C,剪切:Ctrl+X,粘貼:Ctrl+P等等),在MATLAB文件編輯器(Editor)中,還有如下一些常見的熱鍵:

F5:運行當前的M文件;

F9:運行選中的代碼段;

Ctrl+R:注釋選中的代碼段;

Ctrl+T:反注釋選中的代碼段;

Ctrl+I:將選中的代碼段智能縮進調整。

?

(10)?????如何清除變量?

使用clear命令可以清除工作空間(Workspace)中的所有變量,清除工作空間(Workspace)名字為name的變量,使用clear name命令。

?

(11)?????如何清空命令窗口(Command Window)?

使用clc命令可以清空命令窗口(Command Window)。

?

(12)?????MATLAB常用的數據類型有哪些?

MATLAB支持的基本數據類型有基本數值類型、字符串、元胞數組、結構、函數句柄、Java對象、邏輯類型等等。

?????????其中基本數值類型包括基本數值類型包括雙精度類型、單精度類型、整數類型等。

?

(13)?????如何查看函數的代碼?

MATLAB文件編輯器(Editor)菜單欄中可以使用file->Open直接打開相關M文件查看源碼,或者也可以只用edit函數打開,比如

edit mean;

會直接打開求均值函數mean查看源碼:

function y = mean(x,dim)

%MEAN???Average or mean value.

%???For vectors, MEAN(X) is the mean value of the elements in X. For

%???matrices, MEAN(X) is a row vector containing the mean value of

%???each column.??For N-D arrays, MEAN(X) is the mean value of the

%???elements along the first non-singleton dimension of X.

%

%???MEAN(X,DIM) takes the mean along the dimension DIM of X.

%

%???Example: If X = [1 2 3; 3 3 6; 4 6 8; 4 7 7];

%

%???then mean(X,1) is [3.0000 4.5000 6.0000] and

%???mean(X,2) is [2.0000 4.0000 6.0000 6.0000].'

%

%???Class support for input X:

%??????float: double, single

%

%???See also MEDIAN, STD, MIN, MAX, VAR, COV, MODE.

?

%???Copyright 1984-2009 The MathWorks, Inc.

%???$Revision: 5.17.4.5 $??$Date: 2010/09/02 13:35:22 $

?

if nargin==1,

??% Determine which dimension SUM will use

??dim = find(size(x)~=1, 1 );

??if isempty(dim), dim = 1; end

?

??y = sum(x)/size(x,dim);

else

??y = sum(x,dim)/size(x,dim);

end

?

(14)?????MATLAB里面可以使用科學計數法么?

可以。

1e10 = 1000000000

1.2e-4 = 0.00012

?

?

更多內容參見《量化投資:以MATLAB為工具》。

?????????該書預計2014年10月上市。

書籍交流論壇:MATLAB技術論壇讀書頻道《量化投資:以MATLAB為工具》專版,地址:http://www.matlabsky.com/forum-112-1.html

?

《量化投資:以MATLAB為工具》基礎篇-N分鐘學會MATLAB?文檔、代碼、數據下載地址

?????????《量化投資:以MATLAB為工具》基礎篇部分(N分鐘學會MATLAB)的相關文檔、代碼、數據已經完全免費開源共享,歡迎下載。

百度網盤下載地址:

http://pan.baidu.com/share/link?shareid=1036543686&uk=1761970726

?

作者簡介

李洋(faruto),中國量化投資學會專家委員會成員,MATLAB技術論壇(www.matlabsky.com)聯合創始人,北京師范大學應用數學碩士,先后就職于私募、期貨公司、保險公司,從事量化投資相關工作。十年MATLAB編程經驗,對機器學習、量化投資等相關領域有深入研究,已出版《MATLAB神經網絡30個案例分析》和《MATLAB神經網絡43個案例分析》等書籍。

郵箱:farutoliyang@foxmail.com

微博:http://weibo.com/faruto

鄭志勇(Ariszheng),中國量化投資學會專家委員會成員,方正富邦基金產品總監,北京理工大學運籌學與控制論碩士,先后就職于中國銀河證券、銀華基金、方正富邦基金,從事金融產品研究與設計工作。十余年MATLAB編程經驗,專注于產品設計、量化投資等相關領域的研究,尤其對于各種結構化產品、分級基金產品有著深入的研究,已出版《運籌學與最優化MATLAB編程》和《金融數量分析:基于MATLAB編程》等書籍。

郵箱:ariszheng@gmail.com

微博:http://weibo.com/ariszheng

轉載于:https://www.cnblogs.com/carl2380/p/6224606.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/394292.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/394292.shtml
英文地址,請注明出處:http://en.pswp.cn/news/394292.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

android-開源項目_我如何擺脫對開源的恐懼,并開始了自己的項目-以及如何做到。...

android-開源項目by Linea Brink Andersen通過Linea Brink Andersen 我如何擺脫對開源的恐懼,并開始了自己的項目-以及如何做到。 (How I crushed my fear of open source and started my own project — and how you can, too.) A week ago, I started an Open So…

本題要求實現函數輸出n行數字金字塔。_練習5-3 數字金字塔 (15分)

本題要求實現函數輸出n行數字金字塔。函數接口定義&#xff1a;void pyramid( int n );其中n是用戶傳入的參數&#xff0c;為[1, 9]的正整數。要求函數按照如樣例所示的格式打印出n行數字金字塔。注意每個數字后面跟一個空格。裁判測試程序樣例&#xff1a;#include <stdio.…

leetcode167. 兩數之和 II - 輸入有序數組(二分查找)

給定一個已按照升序排列 的有序數組&#xff0c;找到兩個數使得它們相加之和等于目標數。 函數應該返回這兩個下標值 index1 和 index2&#xff0c;其中 index1 必須小于 index2。 說明: 返回的下標值&#xff08;index1 和 index2&#xff09;不是從零開始的。 你可以假設每…

thinkcmf 橫向排列數據_利用python進行數據分析之數據清洗規整

1.處理缺失值數據使用dropna()時&#xff0c;注意里面參數axis、how、thresh的用法使用fillna()時&#xff0c;注意里面參數value、method、inplace、limit的用法2.數據轉換去重data.drop_duplicates(keeplast)#注意keep的用法映射map&#xff08;&#xff09;針對的是一維數組…

v$asm_diskgroup中state的說明

1.使用oracle賬號連接數據庫&#xff0c;查看v$asm_diskgroup 2.使用grid賬號連接ASM實例&#xff0c;查看v$asm_diskgroup 3.官方v$asm_diskgroup關于state的解釋 https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/V-ASM_DISKGROUP.html#GUID-5CF77719-7…

AutoMapper的介紹與使用(二)

AutoMapper的匹配 1&#xff0c;智能匹配 AutoMapper能夠自動識別和匹配大部分對象屬性: 如果源類和目標類的屬性名稱相同&#xff0c;直接匹配&#xff0c;不區分大小寫目標類型的CustomerName可以匹配源類型的Customer.Name目標類型的Total可以匹配源類型的GetTotal()方法…

站長快訊 WordPress跨站攻擊漏洞修補

WordPress中發現一些漏洞&#xff0c;攻擊者利用該漏洞可以發起跨站腳本攻擊&#xff0c;繞過WordPress安全性限制&#xff0c;獲取較為敏感的修訂歷史記錄的信息&#xff0c;或者綁架站點以用于DDoS攻擊。 CVE ID CVE-2015-8834 CVE-2016-5832 CVE-2016-5834 CVE-2016-5835 C…

暢通無阻的公式:乘員組從幾乎破產變成了吸引500萬游客的方式

How could you go from almost no traction and running out of money, to getting millions of visitors to your website?您怎么能從幾乎沒有牽引力和資金用盡的角度&#xff0c;如何吸引數百萬的網站訪問者&#xff1f; You could do like Crew accidentally did with Uns…

leetcode1302. 層數最深葉子節點的和(深度優先搜索)

給你一棵二叉樹&#xff0c;請你返回層數最深的葉子節點的和。 代碼 class Solution {int[] depthnew int[]{Integer.MIN_VALUE,0};//記錄最深層數和對應的和public int deepestLeavesSum(TreeNode root) {if(rootnull) return 0;deep(root,0);return depth[1];}public void d…

Python筆記 【無序】 【五】

描述符 將某種特殊類型的類【只要實現了以下或其中一個】的實例指派給另一個類的屬性 1.__get__(self,instance,owner)//訪問屬性&#xff0c;返回屬性的值 2.__set__(self,instance,value)//將在屬性分配【即賦值】中調用&#xff0c;不返回任何內容 3.__delete__&#xff08;…

化工圖紙中LISP_化工設備廠參展模型設計制作

最近這個案子是受某化工設備企業委托做四套設備模型 用來參加展會在模型制作過程中&#xff0c;這類案例經常遇到。但是客戶所提供的CAD圖紙&#xff0c;往往是實物尺寸在進行縮放的過程中常會造成過薄和過于精細的情況出現眼下技術小哥就遇到這類情況讓我們先看看客戶提供的C…

社交大佬們的數據“大”在哪里?

文章講的是社交大佬們的數據“大”在哪里&#xff0c;“別說忙&#xff0c;沒工夫看書&#xff0c;你那刷FB/朋友圈的工夫騰出來&#xff0c;保證每周啃下一本”&#xff0c;小編身邊總充斥著這樣的“訓話”。 額&#xff0c;奈何我每天的工作離不開從社交媒體中獲取信息&#…

微信支付JsAPI

https://pay.weixin.qq.com/wiki/doc/api/download/WxpayAPI_php_v3.zip 下載獲取微信支付demo壓縮包打開壓縮包&#xff0c;并將其中 WxpayAPI_php_v3\example下的 jsapi.php log.php WxPay.JsApiPay.php WxPay.MicroPay.php WxPay.NativePay.php 解壓縮到根目錄 tellingtent/…

mysql 多數據源訪問_通過Spring Boot配置動態數據源訪問多個數據庫的實現代碼

之前寫過一篇博客《SpringMybatisMysql搭建分布式數據庫訪問框架》描述如何通過SpringMybatis配置動態數據源訪問多個數據庫。但是之前的方案有一些限制(原博客中也描述了)&#xff1a;只適用于數據庫數量不多且固定的情況。針對數據庫動態增加的情況無能為力。下面講的方案能支…

我如何將Google I / O 2018的興奮帶給尼日利亞沃里的115個人

Google Developer Group Warri的第一個I / O擴展事件的故事 (A tale of Google Developer Group Warri’s first I/O Extended event) Google I/O is one of the largest developer festivals in the tech ecosystem. I am the lead organizer for the Google Developer Group …

菜鳥postman接口測試_postman 接口測試(轉)

本文轉載自testerhome&#xff1b;作者&#xff1a;xinxi1990 &#xff1b;原文鏈接&#xff1a;https://testerhome.com/topics/18719&#xff1b;轉載以分享知識為目的&#xff0c;著作權歸原作者所有&#xff0c;如有侵權&#xff0c;請聯系刪除。postman使用創建用例集啟動…

求絕對值最小的數

題目 有一個升序排列的數組&#xff0c;數組中可能有正數&#xff0c;負數或0. 求數組中元素的絕對值最小的數. 例如 數組{-10&#xff0c; 05&#xff0c; 02 &#xff0c;7&#xff0c;15&#xff0c;50} 絕對值最小的是-2 解答 #include <bits/stdc.h> using namespac…

leetcode面試題 04.02. 最小高度樹(深度優先搜索)

給定一個有序整數數組&#xff0c;元素各不相同且按升序排列&#xff0c;編寫一個算法&#xff0c;創建一棵高度最小的二叉搜索樹。 public TreeNode sortedArrayToBST(int[] nums) {if(nums.length0) return null;return BST(nums,0,nums.length-1);}public TreeNode BST(int[…

IT團隊如何贏得尊重?

本文講的是IT團隊如何贏得尊重,在傳統觀念中&#xff0c;作為企業的IT人&#xff0c;似乎都有一種揮之不去的消極情緒&#xff1a;能夠為企業帶來直接利益的業務部門才是企業核心&#xff0c;而作為技術支撐的IT部門&#xff0c;則是作為附屬而存在。 我們經常也會聽到一些企業…

mysql 官方鏡像_運行官方mysql 鏡像

//目前最新的為mysql 8sudo docker run -itd --restart unless-stopped --nethost --name mysql -p3306:3306 -e MYSQL_ROOT_PASSWORDroot mysqlmysql 官方docker 需要重新設置密碼&#xff0c;否則無法遠程連接step1 : docker exec -it [容器id] /bin/bashstep2 : 登陸mysql &…