快速入门量化交易
本文首发自「慕课网」,想了解更多IT干货内容,程序员圈内热闻,欢迎关注"慕课网"!
原作者:袁霄|慕课网讲师
近来“量化交易”这个词听得越来越频繁,多数人对量化交易的第一印象是“高大上的技术”、“可以躺着赚钱的工具”……可是,你是否真正思考过量化交易到底是什么,能帮助我们做些什么?笔者认为在开启量化交易系统的开发前,有必要先理解“量化交易”的理念,清楚“量化交易”能带给我们的是否是自己想要的。本文就从本质、发展、优势、过程等多个维度来剖析量化交易。
1. 量化交易能做什么
什么是量化交易?确切地说,量化交易属于人工智能的一个应用分支,它利用计算机的强大运算能力,用数学模型来模仿人的思维作出决策,通过数据建模、统计学分析、程序设计等工具,从股票、债券、期货的历史数据分析中得到大概率下获利的交易策略。这么说有些官方,读起来也有些绕口,其实简单地说就是如何管理输赢的概率,帮助我们作出准确的决策,就像玩德州(puke)那样,当你持有的牌胜算大时便跟进,否则盖牌,没胜算时选择不玩。玩牌时胜算的概率在我们的大脑中时刻不停地计算着,而在量化交易中利用的是计算机、数学建模、程序设计这些更高级的手段,目的是高效快速地获得胜算的概率,并据此作出决策。
2. 量化交易是怎样发展起来的
关于量化交易的发展,我们首先了解下国外的量化金融发展情况。其实在金融领域我们的目标一直是金融霸主美国,我们知道量化金融在美国的金融领域发展已经日趋成熟。这里我们不得不提到著名的交易大师理查德·丹尼斯和“量化交易之父”詹姆斯·西蒙斯这两位大佬。
理查德·丹尼斯是著名的“海龟交易试验”的发起者,也是《海龟交易法则》的创始人。为了弄清伟大的交易员是天生造就的还是后天培养的,他在1983 年招募了 13 个人,教授给他们期货交易的基本概念,以及他自己的交易方法和原则,学员们被称为“海龟”。在随后的 4 年中,海龟们取得了年均复利 80% 的收益,这就是著名的“海龟交易试验”。同学们可能会有疑问,为什么取这个名字?据说,丹尼斯有一次在新加坡时正聚精会神地观察着一个海龟农场,突然冲口说出了“我们要培养交易者,就像新加坡人养海龟一样”这句话,“海龟交易试验”正是取名于此。毋庸置疑,“海龟交易试验”是金融史上的著名实验,在实验中运用的《海龟交易法则》提供了一套完整的交易系统框架和精髓,非常适合应用于量化分析,以至于在最近几年的量化投资热浪中再一次成为热门模式。
詹姆斯·西蒙斯是量化交易的先行者,也是将量化交易带到这个时代的人。西蒙斯在 1988 年成立了文艺复兴科技公司,作为有史以来最成功的对冲基金,文艺复兴科技公司的旗舰基金——大奖章基金取得年平均 35% 左右的回报,收益远超巴菲特、索罗斯这些行业地位和他相近,但是正在使用传统交易的同行大佬们。这个数字有多牛,我们可以对比下,它比索罗斯同期的年均回报率要高出 10 个百分点,比同期标准普尔 500 指数的年均回报率要高出 20 多个百分点,巴菲特的同期水平已经高达 20%。
自 1988 年至今,量化交易在美国已经有 30 年的历史了,到目前来看程序化交易已经占到美国股票市场交易量的 85% 以上,可想而知量化交易在美国股票市场的发展到什么程度了。
我们都知道美国的金融市场成熟程度是远超中国的,美国的股市有近一百多年的历史,而中国股市成立至今还不到 30 年。回到国内来看,随着国家层面推动人工智能、大数据技术的发展,大量的量化基金产品和平台如雨后春笋一般兴起,量化交易在国内也掀起热潮。就像互联网技术改变着传统行业的模式一样,未来量化交易必定是国内金融市场的一个大的发展趋势。
3. 量化交易有什么好处
与传统的交易相比量化交易有哪些优势呢?传统的交易无论是技术面分析还是基本面分析都属于定性分析,定性分析通俗的说就是人的思维去做决策,这种高度抽象的模式在深度上会有绝对的优势。而量化交易是一种定量的分析,所谓定量分析就是刚才讲到的获得一个具体的获利概率,并依据概率选择交易的策略,因为利用了计算机的强大运算能力,所以在广度上占有绝对的优势。
我们可以把量化交易和传统的交易类比为西医和中医,传统的投资交易靠的是主观经验判断,无法给出具体的参数指标,量化交易像西医那样,靠的是仪器、设备、软件,把现象转换成参考数据为病人治疗提供依据。笔者的观点是把量化交易和传统的交易相结合,把人的思维模型抽象成为数学模型,作为交易策略运用到量化交易中,这样是最理想的情况,既不失分析深度,也能保证分析的广度,不能说是鱼和熊掌兼得,算是两者特点的互补吧。
量化交易另一个优势是可以给予我们足够的自信,帮助我们克服来自人性中的贪婪、恐惧、自负等弱点。举几个典型的交易者身上发生的例子来说明下。
比如一个交易者对市场分析后,决定第二天买入一支股票,但在开盘后却因为一个朋友告诉他小道消息而临时改变了决策,没有买入。
又比如一个交易者用一种策略执行了 5 次交易都以亏损告终,那么他在第 6 次交易信号到来时很可能会放弃这个策略。但量化交易可以确保交易策略的严格执行,因为交易者可以确信量化交易策略经过了回测和度量分析,是具有概率上的优势的,从而心态上并不会出现恐惧和犹豫的情况。
再比如说,很多人喜欢时刻盯盘,幻想在 K 线的最低点买入、最高点卖出,其实盘中的波动是随机的。通过量化交易系统可以事先编写策略,交易者实际上并不需要过多关注盘中的价格波动,以免影响心态变化。
4. 由表及里说说量化交易的本质
量化交易的本质可以用西蒙斯的这段话概括:
“不管多么复杂的模型,没有一个能长期不变地一直赚钱,因为市场在变化,信息在变化,我们不是机器的奴隶,只有通过不断学习,持续不断地更新自己的模型和策略,寻找市场上的规律,让我们的交易系统跟上变化本身,才能在交易市场中立于不败之地。”
既然市场在变化,信息在变化,那么过去并不代表未来,用历史数据作检验是否有意义?另外,为什么交易策略在实际交易中的表现远不如历史模拟的结果?
对于第一个问题的回答可以举个高考相关的例子。高考前学校都会定期组织模拟考来评估学生的能力,虽然最终的高考题跟模拟考不一样,但学生在模拟考中发挥的水平基本和在高考中发挥的水平相差不会太大。因此用历史数据作检验是把过去的经验作为一种参考指南,通过对过去的解读发掘出蕴藏盈利机会的重复性模式。
对于第二个问题,历史测试结果和实际结果的差异主要是由这几个因素引起的:
- 交易者效应:其他交易者注意到了这个策略方法并开始模仿它,导致这种方法效果下降
- 随机效应:历史测试的结果可能是一种随机性的现象
- 最优化矛盾:选择特定的参数降低了事后测试的价值
- 过度拟合:与历史数据的吻合度太高,市场行为轻微的变化造成效果的恶化
总体来说“随时调整,合理应变”非常重要,但是除此之外我们还需要谨记以下四点,以在交易市场中立于不败之地。
- 掌握优势:找到一个期望值为正的交易策略,从长期看,它能创造正的回报
- 管理风险:控制风险、守住阵地,否则你可能等不到创造成果的那一天
- 坚定不移:唯有坚定不移地执行你的策略,你才能真正获得系统的成效
- 简单明了:从长久看,简单的系统比复杂的系统更有生命力
5. 量化交易的过程
关于量化交易的过程,如下图所示:
首先是把历史行情、基本面信息、新闻资讯等数据进行初步清洗和处理,而后输入到量化模型中,量化模型包括了上文讲到的通过数学建模、程序设计等工具所形成的交易策略,通过分析这些数据最终产生出交易的信号,比如买什么股、什么时候买、买多少、什么时候卖这些信息。当然实际上这个过程并没有流程图显示的那么简单,这里只是让大家有个整体的概念。
6. 写在结尾
我们不惜篇幅地从量化交易本质、发展、优势、过程等各个维度剖析了量化交易概念,目的是想让大家能够正确理解量化交易。但不能过于神话它,也不能因为不了解而排斥它,就像工业革命以机器取代人力那样,量化交易本质上是一种帮助我们高效快速地管理交易胜算的工具,是人工智能的一个应用分支。它并没有那么高深莫测,最关键的仍然是交易人的思想,也就是量化交易系统的策略模型,对于能够保持长期赚钱的主观交易大神,量化交易可以帮助他赚更多的钱,而一个主观交易不能赚钱的人,使用量化交易也并不能有所起色。因此我们在掌握工具的同时,也别忘记修炼自己的交易思想。
欢迎关注「慕课网」帐号,我们会一直坚持内容原创,提供IT圈优质内容,分享干货知识,大家一起共同成长吧!
本文原创发布于慕课网 ,转载请注明出处,谢谢合作
相关文章:

快速入门量化交易
本文首发自「慕课网」,想了解更多IT干货内容,程序员圈内热闻,欢迎关注"慕课网"! 原作者:袁霄|慕课网讲师 近来“量化交易”这个词听得越来越频繁,多数人对量化交易的第一印象是“高大上的技术”…...
Mongodb oplog
在MongoDB复制集中,oplog信息存储在oplog.rs集合中。 oplog.rs集合是一个固定大小的集合(capped collection),它位于local数据库中。 当我们在源MongoDB实例上启用了复制(replication)功能,MongoDB会自动在local数据库中创建oplog.rs集合。此后,所有在该实例上的写操作都会生…...
python基础篇: python字符串方法都有哪些?你知道多少?
❝ Python提供了丰富的字符串处理方法,可以方便地对字符串进行操作、处理和转换。在本文中,我们将介绍Python中常用的字符串方法。 ❞ python中字符串内置方法很多,可以通过dir()方式查看具体有哪些方法,下表是python字符串的全部…...

chmod 命令 (chmod 0660)
chmod的作用: 用于设置文件所有者和文件关联组的命令,就是控制用户的权限命令 注意事项: chown 需要超级用户 root 的权限才能执行此命令。 自己常用chmod 命令是 chmod 777 * 给所有文件权限 chmod 777 文件名 给单独文件权限 这个777 是怎么来的, 或者chmod 0660 这…...
Qt应用开发常用功能
Qt判断当前操作系统? #ifdef Q_OS_MAC //mac ... #endif#ifdef Q_OS_LINUX //linux ... #endif#ifdef Q_OS_WIN32 //win ... #endif#ifdef __arm__ //arm ... #endifQt实现应用程序关闭和重启? //关机按钮-点击槽函数 void SystemD::on_shutdownButton…...

麻了,部门新来的00后给我卷崩溃了...
今天上班开早会就是新人见面仪式,听说来了个很厉害的大佬,年纪还不大,是上家公司离职过来的,薪资已经达到中高等水平,很多人都好奇不已,能拿到这个薪资应该人不简单,果然,自我介绍的…...
代码随想录算法训练营第56天|583. 两个字符串的删除操作,72. 编辑距离
代码随想录算法训练营第56天|583. 两个字符串的删除操作,72. 编辑距离 583. 两个字符串的删除操作72. 编辑距离 583. 两个字符串的删除操作 题目链接:583. 两个字符串的删除操作,难度:中等 【实现代码】 class Solution { publi…...

【嵌入式笔/面试】嵌入式软件基础题和真题总结——操作系统
在学习的时候找到几个十分好的工程和个人博客,先码一下,内容都摘自其中,有些重难点做了补充! 才鲸 / 嵌入式软件笔试题汇总 嵌入式与Linux那些事 阿秀的学习笔记 小林coding 百问网linux 嵌入式软件面试合集 2022年春招实习十四面…...
2023浙江省赛“信息安全管理与评估“--Web渗透测试(高职组)
2022全国职业技能大赛“信息安全管理与评估”(高职组)任务书 2022全国职业技能大赛“信息安全管理与评估”任务书第一阶段竞赛项目试题第二阶段竞赛项目试题第三阶段竞赛项目试题任务2:Web渗透测试2022全国职业技能大赛“信息安全管理与评估”任务书 第一阶段竞赛项目试题 …...

垃圾收集器面试总结(二)
G1 收集器 G1 (Garbage-First) 是一款面向服务器的垃圾收集器,主要针对配备多颗处理器及大容量内存的机器。 以极高概率满足 GC 停顿时间要求的同时,还具备高吞吐量性能特征。 被视为 JDK1.7 中 HotSpot 虚拟机的一个重要进化特征。它具备以下特点: 并行与并发&am…...

语音交友app开发中的用户积分系统
引言 在当今数字时代,语音交友app已成为一种流行的社交工具。它们给用户提供了一个平台,在这里他们可以结交新朋友,分享他们的生活和信仰,并建立深厚的人际关系。然而,市场上存在大量的语音交友app,这使得…...

Nature:惊人的突破!科学家们成功破译人类嗅觉感应机制的奥秘!
加州大学旧金山分校(UCSF)的科学家们创造了第一张关于气味分子如何激活人类气味受体的分子水平的3D图片,这是破译嗅觉的关键一步,该成果打破了长期以来研究人员对嗅觉理解的僵局。 该研究成果于2023年3月15日发表在《Nature》&…...
WPF教程(九)--数据绑定(2)--绑定模式
一、绑定模式 绑定模式以及模式的使用效果。 示例如下是根据ListBox中的选中项,去改变TextBlock的背景色。将 TextBlock 的背景色绑定到在 ListBox 中选择的颜色。在下面的代码中针对TextBlock的 Background 属性使用绑定语法绑定从 ListBox 中选择的值。代码如下。…...

湿法冶金以及铼提取工艺,湿法冶金工艺特点及工艺流程
湿法冶金是利用浸出剂在一定温度压力下与矿石接触,把矿石中有用的金属溶解后再从溶液中回收有价金属的一种工艺,因为其过程大都是在水溶液中进行,所以又被称为“水法冶金”。 01 湿法冶金工艺特点及工艺流程 湿法冶金作为解决我国金属矿产资…...

kafka集群搭建
1.本次搭建涉及3台centos7主机,防火墙与selinux服务均关闭 2.主机参数如下表所示 nameIPportserviceA10.1.60.1122128、2888、3888、9092kafka、zookeeperB10.1.60.1142128、2888、3888、9092kafka、zookeeperC10.1.60.1152128、2888、3888、9092kafka、zookeeper…...

【UE】将存档的值显示在控件蓝图上
上一篇博客(【UE】保存游戏的demo)已经实现了存档功能,本篇博客介绍的是如何将存档的值显示在控件蓝图上。 效果 可以看到我们存档的值显示在文本控件上 步骤 1. 新建一个蓝图类,父类为“HUD” 命名为“NewHudClassBP” 2. 在世…...
考研数据结构代码篇
文章目录 数据结构线性表基本操作顺序表的定义顺序表基本操作 单纯上传一下数据结构中可能考察的代码,规格很乱,过几天改规格,提前水一篇 数据结构 线性表 基本操作 InitList(&L) // 初始化表。构造一个空的线性表L࿰…...

css-设置单行文本溢出省略号,使用overflow:hidden属性之后的出现的问题几解决办法。
1 设置单行文本溢出后出现省略号 必要:需要设置固定宽度,不允许换行 width: 200px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; 2 设置N行文本…...
js的方法
字符串方法: substring(startIndex, endIndex):从指定的字符串中提取字符并返回新字符串,不包括结束位置的字符。substr(startIndex, length):从指定字符串中提取指定长度的字符并返回新字符串。indexOf(searchValue, startIndex…...
[NSSRound#11] 密码学个人赛
这个比赛没有参加,跟别人要了些数据跑一下,其实交互这东西基本上一样,跑通就行. ez_enc 这题有点骗人,给了一堆AB串,一开始以为是培根密码,结果出来很乱.再看长度:192 应该就是01替换 a ABAABBBAABABAABBABABAABBABAAAABBABABABAAABAAABBAABBBBABBABBABBABABABAABBAABBABAA…...

idea大量爆红问题解决
问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...
synchronized 学习
学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...
golang循环变量捕获问题
在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - 循环变量捕获问题。让我详细解释一下: 问题背景 看这个代码片段: fo…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...

376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...

让AI看见世界:MCP协议与服务器的工作原理
让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...
【Java学习笔记】BigInteger 和 BigDecimal 类
BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点:传参类型必须是类对象 一、BigInteger 1. 作用:适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别
【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而,传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案,能够实现大范围覆盖并远程采集数据。尽管具备这些优势…...