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