《算法交易系統(tǒng)與策略》詳細闡述了與算法交易系統(tǒng)相關的基本解決方案,主要包括開發(fā)交易系統(tǒng)的流行方法、開發(fā)交易系統(tǒng)導論、架構解決方案、技術棧和庫、優(yōu)化算法、優(yōu)化算法的實現(xiàn)、Core模塊的實現(xiàn)、最終實現(xiàn)方法等內(nèi)容。此外,本書還提供了相應的示例、代碼,以幫助讀者進一步理解相關方案的實現(xiàn)過程。
在量化日益精進的今天,構建高效、穩(wěn)定的算法交易系統(tǒng)已成為金融科技創(chuàng)新的核心!端惴ń灰紫到y(tǒng)與策略》系統(tǒng)講解了交易系統(tǒng)的開發(fā)方法、架構設計、技術選型與核心模塊實現(xiàn),重點剖析了優(yōu)化算法的實戰(zhàn)應用。書中不僅融合了現(xiàn)代軟件工程的實踐,更配有清晰的示例與可運行代碼,幫助讀者真正掌握從構思到落地的全過程。無論是金融工程師、量化研究員,還是對程序化交易感興趣的開發(fā)者,本書都是一本不可多得的實用指南,助你在復雜市場中構建屬于自己的智能交易引擎。
前言
你如果開始研究算法交易,會注意到創(chuàng)建交易系統(tǒng)的邏輯中的一般性模式。這種模式就是找到一些高盈利策略并在交易中使用它們。通常,搜索這樣的策略需要大量的體力勞動,而且這種方法有一個很大的缺點:找到盈利策略的可能性很低。
此外,這個過程由于需要大量的體力勞動,因此對于所發(fā)現(xiàn)的策略也會提出過高的要求,而這些都需要大量的資源支持和配置。
我過去曾經(jīng)嘗試了許多不同的策略,其中大多數(shù)都表現(xiàn)不佳,因此我對自己和使用的方法越來越感到沮喪。有一天,我想起了我在大學時和一位老師一起從事的一些工作,當時我們正在尋找發(fā)射和調(diào)整人造地球衛(wèi)星運動的參數(shù),要求以最少的燃料消耗將其發(fā)射到目標軌道。我想,這項任務與尋找盈利策略的任務有何不同?我意識到它們是一樣的,這意味著我在該領域的知識可以應用于一個全新的方向。
因此,我結合了構建高載荷系統(tǒng)和工程領域的知識,創(chuàng)建了一種尋找和使用盈利策略的新方法。我提出的解決方案不是要孜孜以求地尋找?guī)资畟超高盈利的策略,而是要快速找到數(shù)百種適度盈利策略,盡管這些策略的盈利目標不如超高盈利策略那樣激進,但需要的體力勞動卻是最少的。
本書將介紹如何開發(fā)一個能夠不斷搜索和運行策略的系統(tǒng),并使用.NET Framework演示實現(xiàn)這種系統(tǒng)基礎部分的選項。因此,在本書中,讀者將學習如何構建一個交易系統(tǒng),該系統(tǒng)將比傳統(tǒng)方法更有可能找到盈利策略。
維多利亞·多爾曾科成為一名程序員的夢想始于家里優(yōu)質臺計算機出現(xiàn)的那一刻。小時候,她喜歡編程,并定期參加各種編程比賽。她在開發(fā)復雜系統(tǒng)方面已經(jīng)擁有10多年的經(jīng)驗。她的本職工作是各種應用程序的復雜設計,但就個人而言,她對算法交易更感興趣。為了將這兩者結合起來,她決定建立一個系統(tǒng),該系統(tǒng)可以自己搜索和找到可盈利的策略。黃剛,計算機軟件專業(yè)碩士畢業(yè)。精通網(wǎng)絡主流開發(fā)語言、數(shù)據(jù)分析和硬件技術,同時具有較好的英文水平和技術背景,并翻譯過多本英文書籍。
目錄
第1章 開發(fā)交易系統(tǒng)的流行方法 1
1.1 人工交易 1
1.2 現(xiàn)成的信號和算法 1
1.2.1 信號 2
1.2.2 第三方算法 3
1.3 專業(yè)服務 5
1.4 獨立創(chuàng)建交易平臺 6
1.4.1 測試單一策略 6
1.4.2 不同開發(fā)人員的方法 7
1.5 雇用第三方開發(fā)者 7
1.6 我的方法 8
1.7 小結 9
第2章 開發(fā)交易系統(tǒng)導論 10
2.1 一般理論 10
2.1.1 訂單執(zhí)行 12
2.1.2 金和杠桿 14
2.2 交易系統(tǒng)的構成 15
2.3 交易理論 16
2.3.1 技術分析 17
2.3.2 基本面分析 21
2.3.3 混合方法 21
2.3.4 波動 22
2.3.5 信號 22
2.4 資本管理 24
2.4.1 固定頭寸規(guī)模 24
2.4.2 凱利標準 25
2.4.3 f 26
2.4.4 鞅 27
2.4.5 反鞅 28
2.4.6 固定比例頭寸規(guī)模 28
2.5 風險控制 30
2.5.1 最大損失金額 31
2.5.2 止損單 31
2.5.3 止盈單 32
2.5.4 追蹤止損單 33
2.5.5 組合多樣化 34
2.5.6 監(jiān)測市場波動 35
2.6 測試 36
2.7 績效指標 37
2.7.1 盈利能力 37
2.7.2 獲利因子 38
2.7.3 回撤 38
2.7.4 夏普比率 39
2.7.5 盈利交易的平均盈利規(guī)模和虧損交易的平均虧損規(guī)模 39
2.7.6 期望值 40
2.8 優(yōu)化 40
2.9 小結 42
第3章 架構解決方案第1 部分:識別需求 43
3.1 確定需求 44
3.1.1 信號 44
3.1.2 客戶對系統(tǒng)的愿景 45
3.2 理論生成器 47
3.2.1 策略搜索 50
3.2.2 選擇和前向測試 59
3.2.3 金融工具的選擇 60
3.2.4 盈利策略搜索設置 60
3.2.5 搜索盈利策略的邏輯 60
3.2.6 真實交易 62
3.3 重要問題 62
3.3.1 頭寸的生命周期 63
3.3.2 資本管理 64
3.3.3 風險控制 65
3.3.4 指標的可伸縮性 69
3.4 小結 71
第4章 架構解決方案第2 部分:服務和子系統(tǒng) 72
4.1 微服務架構 72
4.2 Kubernetes 74
4.3 子系統(tǒng) 76
4.4 策略搜索子系統(tǒng) 76
4.4.1 生成器 77
4.4.2 隊列 79
4.4.3 有限狀態(tài)機 82
4.4.4 理論處理步驟的概念 82
4.4.5 子理論計算 86
4.4.6 生成器過程檢查 87
4.4.7 優(yōu)化算法 88
4.4.8 任務 89
4.4.9 核心 91
4.4.10 沙盒交易所 91
4.5 真實交易子系統(tǒng) 92
4.5.1 集成交易所 92
4.5.2 策略的啟動和運行 95
4.5.3 啟用和禁用策略 96
4.5.4 檢查金融工具的類型 98
4.5.5 主數(shù)據(jù) 101
4.6 小結 103
第5章 技術棧和庫 104
5.1 選擇框架 104
5.2 應用程序架構 105
5.2.1 意大利面條式代碼 105
5.2.2 整潔架構 105
5.2.3 域驅動設計與貧血模型 107
5.3 對象關系映射器 108
5.3.1 使用 Dapper 的方法 108
5.3.2 遷移 111
5.4 有限狀態(tài)機 112
5.4.1 工作原理 113
5.4.2 托管服務 115
5.4.3 后臺運行機制 125
5.5 小結 129
第6章 優(yōu)化算法 130
6.1 問題的形式 130
6.2 種群算法 131
6.3 遺傳算法 132
6.3.1 突變算子 133
6.3.2 交叉算子 134
6.3.3 篩選算子 136
6.3.4 選擇算子 140
6.3.5 限制 142
6.3.6 局部無約束優(yōu)化算法 147
6.4 小結 155
第7章 優(yōu)化算法的實現(xiàn) 156
7.1 總體愿景 156
7.2 算法 158
7.2.1 獲取信息 159
7.2.2 獲取一組值 162
7.2.3 使用方法 166
7.3 遺傳算法 167
7.3.1 步驟 168
7.3.2 獲取信息 168
7.3.3 獲取一組值 172
7.3.4 初始化步驟 178
7.3.5 突變步驟 179
7.3.6 篩選步驟 181
7.3.7 繁殖步驟 184
7.4 測試函數(shù) 188
7.5 子理論示例 189
7.6 小結 191
第8章 Core 模塊的實現(xiàn) 192
8.1 用例 192
8.2 上下文 194
8.3 更新 K 線事件 194
8.4 檢查信號 196
8.4.1 策略模型 197
8.4.2 計算信號 201
8.4.3 指標計算 205
8.4.4 平均真實范圍 209
8.5 頭寸處理 212
8.5.1 ProcessBot Lite 213
8.5.2 處理步驟 218
8.5.3 事件 221
8.5.4 處理操作 229
8.6 小結 233
第9章 最終實現(xiàn)方法 234
9.1 Binance 適配器 234
9.1.1 功能目標 234
9.1.2 具體實現(xiàn) 235
9.2 Docker 237
9.2.1 容器化技術發(fā)展簡史 237
9.2.2 需要 Docker 的理由 239
9.2.3 Docker 組件 239
9.2.4 啟動應用程序 240
9.3 Kubernetes 245
9.3.1 組件 245
9.3.2 Pod 246
9.3.3 部署 247
9.3.4 服務 251
9.3.5 helm 252
9.4 小結 254