自動化交易R語言實戰指南 (Automated Trading with R)
內容描述
R語言是用於統計分析、繪圖的語言和操作環境,是屬於GNU系統的一個自由、免費、源代碼開放的軟件。它是一個用於統計計算和統計制圖的u秀工具。
本書通過11章內容介紹了自動化交易的核心要點,並基於R語言給出了相應的編程方法。本書涉及編程、高性能計算、數值優化、金融以及網絡等眾多主題,書中的3個部分分別涵蓋了自動化交易簡介、平臺搭建、產出交易等重要主題。
本書內容詳細、示例豐富,非常適合對自動化交易感興趣或者想要使用R語言進行金融數據分析的人士閱讀參考。如果讀者有一定的編程基礎,將會對本書的學習提供不少助力。適當參考書中的公式和代碼示例,讀者能夠更好地掌握相關內容。
目錄大綱
第1部分研究內容
第1章自動化交易的基礎2
1.1淨值曲線和收益率序列2
1.1.1淨值曲線的特徵3
1.1.2收益率序列的特性3
1.2風險—收益模型4
1.3風險—收益模型的特徵5
1.3.1夏普比率8
1.3.2最大回撤比率9
1.3.3偏矩比11
1.3.4基於回歸的性能指標13
1.4最優化性能指標16
第2部分搭建平台
第2章網絡部分Ⅰ 18
2.1雅虎金融數據接口19
2.1.1設置目錄19
2.1.2構建URL查詢20
2.1.3數據獲取21
2.1.4加載數據至內存22
2.1.5更新數據23
2.2 YQL網絡服務24
2.3 Quantmod的註釋28
2.4比較29
2.5組織成為日期一致的zoo對象29
第3章數據準備31
3.1處理NA值(缺失值) 31
3.1.1注意:R中NA和NaN的
區別31
3.1.2 IPO以及加入標準普爾500
指數31
3.1.3合併到統一的日期模板33
3.1.4向前替換34
3.1.5線性平滑替換35
3.1.6交易量加權平滑替換36
3.2關於替換方法的討論37
3.2.1實時VS模擬37
3.2.2對波動率指標的影響37
3.2.3 對交易決策的影響38
3.2.4結論38
3.3收盤價和調整收盤價38
3.3.1股票分割的調整39
3.3.2現金分紅的調整40
3.3.3有效更新和調整收盤價40
3.3.4實施調整41
3.4檢驗不活躍股票41
3.5計算收益矩陣42
第4章指標44
4.1指標類型44
4.1.1疊加層44
4.1.2振盪器44
4.1.3累加器45
4.1.4模式/二元/三元45
4.1.5機器學習/非可視化、黑箱45
4.2示例指標45
4.2.1簡單移動平均45
4.2.2移動平均收斂發散振盪器(MACD) 46
4.2.3布林帶47
4.2.4使用相關性和斜率自定義
指標47
4.2.5基於多個數據集的指標48
4.3小結50
第5章規則集51
5.1作為嵌套函數的過程流51
5.2術語51
5.3示例的規則集52
5.3.1疊加層53
5.3.2振盪器53
5.3.3累加器53
5.4過濾、觸發以及定量的偏好54
第6章高性能計算56
6.1硬件概覽56
6.1.1處理56
6.1.2多核處理56
6.1.3超線程57
6.1.4內存58
6.1.5磁盤58
6.1.6隨機存取存儲器59
6.1.7處理器緩存59
- 1.8交換空間59
6.1.9軟件概覽60
6.1.10編譯與解釋60
6.1.11腳本語言61
6.1.12速度與安全性61
6.1.13建議62
6.1.14 for循環與apply函數62
6.1.15 for循環與內存分配63
6.1.16 apply族函數64
6.1.17創造性地使用二進制64
6.1.18測量計算時間的說明65
6.2 R中的多核計算66
6.2.1令人尷尬的並行過程66
6.2.2 doMC和doParallel 66
6.2.3 foreach程序包67
6.3實踐中的foreach程序包68
6.3.1整數映射68
6.3.2使用foreach計算收益率
矩陣69
6.3.3使用foreach計算指標70
第7章模擬和回測74
7.1交易策略示例74
7.2模擬工作流程76
7.2.1代碼清單7-1:偽代碼76
7.2.2代碼清單7-1:對輸入的解釋及
用戶指南76
7.2.3討論83
7.3執行示例交易策略84
7.4總結性統計量和績效指標88
7.5小結89
第8章優化方法90
8.1時間序列的交叉驗證90
8.2數值VS解析優化91
8.3數值優化概覽92
8.4聲明一個求值器93
8.4.1代碼清單8-1 :偽代碼94
8.4.2代碼清 8-1:解釋輸入及
用戶指南94
8.5通用模式搜索優化101
8.6廣義模式搜索優化102
8.7 Nelder-Mead優化107
8.8預測交易策略表現113
8.9小結116
第9章網絡部分II 117
9.1市場概覽:經紀商API 117
9.2安全連接118
9.2.1建立SSL連接118
9.2.2專有的SSL連接119
9.2.3 HTTP/HTTPS 120
9.2.4 OAuth 120
9.3交易API的可行性分析120
9.3.1自定義R程序包的可行性120
9.3.2通過現存R程序包實現
HTTPS + OAuth 121
9.3.3 FIX引擎121
9.3.4向被支持的語言輸出
指引121
9.4計劃和執行交易121
9.4.1 PLAN任務122
9.4.2 TRADE任務124
9.5一般性的數據格式125
9.5.1處理XML 125
9.5.2生成XML文檔131
9.5.3處理JSON數據132
9.5.4金融信息eXchange協議133
9.5.5 FIX可擴展標記語言
(FIXML) 134
9.5 .6 R中的OAuth 135
9.6小結137
第3部分產出交易
第10章組織和自動運行腳本140
10.1組織腳本成任務140
10.2利用源函數調用任務140
10.3通過源函數方式調用任務141
10.4 Wi ndows中的任務調度141
10.4.1在Windows中從命令行
運行R語言141
10.4.2設置和管理任務調度程序143
10.5 UNIX中的任務計劃144
10.6小結145
第11章前瞻146
11.1語言的注意事項146
11.1.1 Python 146
11.1.2 C/C++ 146
11.1.3硬件描述語言147
11.2零售經紀商和拒絕權147
11.3連接延遲148
11.3.1以太網與Wi-Fi 148
11.3.2臨近交易所149
11.4優先零售商149
11.5消化信息和基本面149
11.6小結150
附錄A源代碼151
A.1 Platform/config.R 151
A.2 Platform/load 152
A.2.1 Platform/load.R 152
A.2.2 Platform/update. R 153
A.2.3 Platform/functions/yahoo.R 153
A.2.4 Platform/load/ initial.R 154
A.2.5 Platform/load/ loadToMemory.R 155
A.2.6 Platform/load/ update
Stocks.R 156
A.2.7 Platform/load/ dateUnif.R 160
A.2.8 Platform/load/ spClean.R 161
A.2.9 Platform/load/ adjust
Close.R 161
A.2.10 Platform/load/ return.R 162
A.2.11 Platform/load/
fillInactive .R 162
A.3 Platform/compute 162
A.3.1 Platform/compute/
MCinit.R 162
A.3.2 Platform /compute/
functions.R 163
A.4 Platform/plan 168
A.4.1 Platform/plan.R 169
A.4.2 Platform/plan/
decisionGen.R 169
A.5 Platform/trade 173
A.6 Platform/model 174
A. 6.1 Platform/model.R 174
A.6.2 Platform/model/optimize. R 174
A.6.3 Platform/model/evaluate
Func.R 174
A.6.4 Platform/model/optimize
Func. R 177
附錄B多核R的範圍180
B .1 R的作用域規則180
B.1.1應用詞法作用域180
B.1.2原型181
B.2 UNIX交叉系統調用181
B.2.1 fork調用和內存管理182
B.2.2 R作用域的應用182
B.3 Windows中的實例複製184
B.3.1實例複製和內存管理184
B.3.2 R作用域應用184
作者介紹
Chris Conlan 是作為獨立從事交易算法的數據科學家開始他的職業生涯的。進入弗吉尼亞大學之後,他僅用3 個學期就完成了本科統計學課程。在此期間,他籌資組建了一家高頻外匯交易集團,並擔任總裁和首席交易策略師。目前,他正管理著一家科技公司,該公司業務涉及高頻外匯、機器視覺和動態報告等領域。