首页 > 编程语言 >牛气冲天的量化交易,程序员的救星?

牛气冲天的量化交易,程序员的救星?

时间:2023-04-25 12:07:41浏览次数:45  
标签:策略 牛气 救星 我们 程序员 海龟 量化 交易者 交易

本文首发自「慕课网」,想了解更多IT干货内容,程序员圈内热闻,欢迎关注"慕课网"!

原作者:袁霄|慕课网讲师


近来“量化交易”这个词听得越来越频繁,多数人对量化交易的第一印象是“高大上的技术”、“可以躺着赚钱的工具”……可是,你是否真正思考过量化交易到底是什么,能帮助我们做些什么?笔者认为在开启量化交易系统的开发前,有必要先理解“量化交易”的理念,清楚“量化交易”能带给我们的是否是自己想要的。本文就从本质、发展、优势、过程等多个维度来剖析量化交易。

1. 量化交易能做什么

什么是量化交易?确切地说,量化交易属于人工智能的一个应用分支,它利用计算机的强大运算能力,用数学模型来模仿人的思维作出决策,通过数据建模、统计学分析、程序设计等工具,从股票、债券、期货的历史数据分析中得到大概率下获利的交易策略。这么说有些官方,读起来也有些绕口,其实简单地说就是如何管理输赢的概率,帮助我们作出准确的决策,就像玩德州(puke)那样,当你持有的牌胜算大时便跟进,否则盖牌,没胜算时选择不玩。玩牌时胜算的概率在我们的大脑中时刻不停地计算着,而在量化交易中利用的是计算机、数学建模、程序设计这些更高级的手段,目的是高效快速地获得胜算的概率,并据此作出决策。

2. 量化交易是怎样发展起来的

关于量化交易的发展,我们首先了解下国外的量化金融发展情况。其实在金融领域我们的目标一直是金融霸主美国,我们知道量化金融在美国的金融领域发展已经日趋成熟。这里我们不得不提到著名的交易大师理查德·丹尼斯和“量化交易之父”詹姆斯·西蒙斯这两位大佬。

理查德·丹尼斯是著名的“海龟交易试验”的发起者,也是《海龟交易法则》的创始人。为了弄清伟大的交易员是天生造就的还是后天培养的,他在1983 年招募了 13 个人,教授给他们期货交易的基本概念,以及他自己的交易方法和原则,学员们被称为“海龟”。在随后的 4 年中,海龟们取得了年均复利 80% 的收益,这就是著名的“海龟交易试验”。同学们可能会有疑问,为什么取这个名字?据说,丹尼斯有一次在新加坡时正聚精会神地观察着一个海龟农场,突然冲口说出了“我们要培养交易者,就像新加坡人养海龟一样”这句话,“海龟交易试验”正是取名于此。毋庸置疑,“海龟交易试验”是金融史上的著名实验,在实验中运用的《海龟交易法则》提供了一套完整的交易系统框架和精髓,非常适合应用于量化分析,以至于在最近几年的量化投资热浪中再一次成为热门模式。

詹姆斯·西蒙斯是量化交易的先行者,也是将量化交易带到这个时代的人。西蒙斯在 1988 年成立了文艺复兴科技公司,作为有史以来最成功的对冲基金,文艺复兴科技公司的旗舰基金——大奖章基金取得年平均 35% 左右的回报,收益远超巴菲特、索罗斯这些行业地位和他相近,但是正在使用传统交易的同行大佬们。这个数字有多牛,我们可以对比下,它比索罗斯同期的年均回报率要高出 10 个百分点,比同期标准普尔 500 指数的年均回报率要高出 20 多个百分点,巴菲特的同期水平已经高达 20%。

自 1988 年至今,量化交易在美国已经有 30 年的历史了,到目前来看程序化交易已经占到美国股票市场交易量的 85% 以上,可想而知量化交易在美国股票市场的发展到什么程度了。

我们都知道美国的金融市场成熟程度是远超中国的,美国的股市有近一百多年的历史,而中国股市成立至今还不到 30 年。回到国内来看,随着国家层面推动人工智能、大数据技术的发展,大量的量化基金产品和平台如雨后春笋一般兴起,量化交易在国内也掀起热潮。就像互联网技术改变着传统行业的模式一样,未来量化交易必定是国内金融市场的一个大的发展趋势。

3. 量化交易有什么好处

与传统的交易相比量化交易有哪些优势呢?传统的交易无论是技术面分析还是基本面分析都属于定性分析,定性分析通俗的说就是人的思维去做决策,这种高度抽象的模式在深度上会有绝对的优势。而量化交易是一种定量的分析,所谓定量分析就是刚才讲到的获得一个具体的获利概率,并依据概率选择交易的策略,因为利用了计算机的强大运算能力,所以在广度上占有绝对的优势。

我们可以把量化交易和传统的交易类比为西医和中医,传统的投资交易靠的是主观经验判断,无法给出具体的参数指标,量化交易像西医那样,靠的是仪器、设备、软件,把现象转换成参考数据为病人治疗提供依据。笔者的观点是把量化交易和传统的交易相结合,把人的思维模型抽象成为数学模型,作为交易策略运用到量化交易中,这样是最理想的情况,既不失分析深度,也能保证分析的广度,不能说是鱼和熊掌兼得,算是两者特点的互补吧。

量化交易另一个优势是可以给予我们足够的自信,帮助我们克服来自人性中的贪婪、恐惧、自负等弱点。举几个典型的交易者身上发生的例子来说明下。

比如一个交易者对市场分析后,决定第二天买入一支股票,但在开盘后却因为一个朋友告诉他小道消息而临时改变了决策,没有买入。

又比如一个交易者用一种策略执行了 5 次交易都以亏损告终,那么他在第 6 次交易信号到来时很可能会放弃这个策略。但量化交易可以确保交易策略的严格执行,因为交易者可以确信量化交易策略经过了回测和度量分析,是具有概率上的优势的,从而心态上并不会出现恐惧和犹豫的情况。

再比如说,很多人喜欢时刻盯盘,幻想在 K 线的最低点买入、最高点卖出,其实盘中的波动是随机的。通过量化交易系统可以事先编写策略,交易者实际上并不需要过多关注盘中的价格波动,以免影响心态变化。

4. 由表及里说说量化交易的本质

量化交易的本质可以用西蒙斯的这段话概括:

“不管多么复杂的模型,没有一个能长期不变地一直赚钱,因为市场在变化,信息在变化,我们不是机器的奴隶,只有通过不断学习,持续不断地更新自己的模型和策略,寻找市场上的规律,让我们的交易系统跟上变化本身,才能在交易市场中立于不败之地。”

既然市场在变化,信息在变化,那么过去并不代表未来,用历史数据作检验是否有意义?另外,为什么交易策略在实际交易中的表现远不如历史模拟的结果?

对于第一个问题的回答可以举个高考相关的例子。高考前学校都会定期组织模拟考来评估学生的能力,虽然最终的高考题跟模拟考不一样,但学生在模拟考中发挥的水平基本和在高考中发挥的水平相差不会太大。因此用历史数据作检验是把过去的经验作为一种参考指南,通过对过去的解读发掘出蕴藏盈利机会的重复性模式。

对于第二个问题,历史测试结果和实际结果的差异主要是由这几个因素引起的:

  • 交易者效应:其他交易者注意到了这个策略方法并开始模仿它,导致这种方法效果下降
  • 随机效应:历史测试的结果可能是一种随机性的现象
  • 最优化矛盾:选择特定的参数降低了事后测试的价值
  • 过度拟合:与历史数据的吻合度太高,市场行为轻微的变化造成效果的恶化

总体来说“随时调整,合理应变”非常重要,但是除此之外我们还需要谨记以下四点,以在交易市场中立于不败之地。

  1. 掌握优势:找到一个期望值为正的交易策略,从长期看,它能创造正的回报
  2. 管理风险:控制风险、守住阵地,否则你可能等不到创造成果的那一天
  3. 坚定不移:唯有坚定不移地执行你的策略,你才能真正获得系统的成效
  4. 简单明了:从长久看,简单的系统比复杂的系统更有生命力

5. 量化交易的过程

关于量化交易的过程,如下图所示:

牛气冲天的量化交易,程序员的救星?_人工智能


首先是把历史行情、基本面信息、新闻资讯等数据进行初步清洗和处理,而后输入到量化模型中,量化模型包括了上文讲到的通过数学建模、程序设计等工具所形成的交易策略,通过分析这些数据最终产生出交易的信号,比如买什么股、什么时候买、买多少、什么时候卖这些信息。当然实际上这个过程并没有流程图显示的那么简单,这里只是让大家有个整体的概念。

6. 写在结尾

我们不惜篇幅地从量化交易本质、发展、优势、过程等各个维度剖析了量化交易概念,目的是想让大家能够正确理解量化交易。但不能过于神话它,也不能因为不了解而排斥它,就像工业革命以机器取代人力那样,量化交易本质上是一种帮助我们高效快速地管理交易胜算的工具,是人工智能的一个应用分支。它并没有那么高深莫测,最关键的仍然是交易人的思想,也就是量化交易系统的策略模型,对于能够保持长期赚钱的主观交易大神,量化交易可以帮助他赚更多的钱,而一个主观交易不能赚钱的人,使用量化交易也并不能有所起色。因此我们在掌握工具的同时,也别忘记修炼自己的交易思想。


欢迎关注「慕课网」帐号,我们会一直坚持内容原创,提供IT圈优质内容,分享干货知识,大家一起共同成长吧!

本文原创发布于慕课网 ,转载请注明出处,谢谢合作

标签:策略,牛气,救星,我们,程序员,海龟,量化,交易者,交易
From: https://blog.51cto.com/u_15771948/6223697

相关文章

  • 程序员自我学习修养
    1,十步学习法第一阶段:(1)了解全局(2)确定范围(3)定义目标(4)寻找资源(5)创建学习计划 (6)筛选资源  第二阶段:开始学习,浅尝辄止动手操作,边玩边学全面掌握,学以致用乐为人师,融会贯通 其中,第一阶段只做一次,第二阶段反复  2.整体性能学习方法1.获取2.理解3.扩展4.纠......
  • 雷军自述:我十年的程序员生涯
    前言原文链接:雷军自述:我十年的程序员生涯有的人学习编程技术,是把高级程序员做为追求的目标,甚至是终身的奋斗目标。后来参与了真正的商品化软件开发后,反而困惑了,茫然了。一个人只要有韧性和灵性,有机会接触并学习电脑的编程技术,就会成为一个不错的程序员。刚开始写程序,这时候学......
  • #yyds干货盘点# LeetCode程序员面试金典:搜索插入位置
    题目:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为O(logn)的算法。 示例1:输入:nums=[1,3,5,6],target=5输出:2示例 2:输入:nums=[1,3,5,6],target=2输出:1示......
  • 程序员面试金典---15
    八皇后直接上代码:/***@param{number}n*@return{string[][]}*/varsolveNQueens=function(n){//创建一个长度为n的一维数组,其元素值为'.',然后再利用map()方法将其转化成一个n*n的二维数组board。我们可以把它看成nxn的棋盘,初始化所有位置都是没有皇......
  • 程序员如何提升沟通能力
    作为程序员,除了技术能力外,良好的人际交往能力也非常重要。以下是一些提升为人处事能力和技巧的建议:1.建立良好的沟通和协作能力:与同事和客户进行有效的沟通和协作是成功的关键。练习主动倾听和表达自己的想法,以及接受和给予反馈。2.学会合作:在团队中合作是至关重要的,因此学会......
  • 程序员职业发展参考
    工程师的五个级别苏联物理学家朗道,给出了自认为物理学家的五个等级,并被称为朗道等级。朗道等级最核心的思想是:人和人的差距,能力和能力的差距,是数量级(通常是10的N次方)的差别,而不是通常人们想象的差一点点。仿照朗道的方法,吴军老师给出了工程师的五个级别的划分:第五级:能独立解决......
  • c#程序员必学清单补充
    作为C#程序员,除了上述经典书籍和开源框架外,还需要掌握以下技术:1..NETCore和ASP.NETCore:了解并熟练掌握.NETCore和ASP.NETCore框架,这将使您能够开发跨平台的Web应用程序和服务。2.EntityFrameworkCore:深入学习并掌握EntityFrameworkCore,这是一款功能强大的......
  • 程序员面试金典---14
    颜色填充思路:使用深搜就可解决对坐标点(sr,sc)进行填充。然后在此处进行扩散。代码:functionfill(image,sr,sc,newColor){//记录初始颜色值constoldColor=image[sr][sc];//如果新颜色与初始颜色相同则无需填充if(newColor===oldColor){......
  • 程序员修炼之道(2)
    看到这个书名的时候,会不自觉的想起周星驰在《喜剧之王》中的经典桥段,手拿一本《演员的自我修养》激励着很多懵懂青年。就像这本书的自序所讲的,这是一本包含有许多朴素的经验,写给注重实效的程序员的一本“演员的自我修养”。刚刚步入编程队伍的我,正需要这样一本书给予我经验,也因为......
  • #yyds干货盘点# LeetCode程序员面试金典:在排序数组中查找元素的第一个和最后一个位置
    题目:给你一个按照非递减顺序排列的整数数组nums,和一个目标值target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值target,返回 [-1,-1]。你必须设计并实现时间复杂度为 O(logn) 的算法解决此问题。 示例1:输入:nums=[5,7,7,8,8,10],target=......