言程序:冠军团队—量化圈的“言承旭”

言程序:冠军团队—量化圈的“言承旭”,第1张

人物介绍:

台湾最大财经节目东森金钱爆受邀来宾、台湾各大财经媒体专栏作家,同时也是现为全球量化交易私募基金(PE)经理、期货日报专栏作家、央视CCTV期货时间大赛-策略供应者、第七届全国期货实盘赛量化基金经理大赛评审,七禾网期货中国程序化投资顾问。

言程序领导的交易团队横跨经济、统计、计算机工程及财务工程领域,运行全球量化投资,尤其擅长日内交易。参与沪深300股指期货的日内交易以来,保持良好的收益(2011年5月-2012年5月, *** 作的纯日内账户,最大回撤15%,以不断出金的非复利增长形势,获得70%的收益)。

第七届全国期货实盘交易大赛“程序化交易组”第一名,6个月净值由1至5.25,最大回撤率3.35% 。

东方智慧程序化交易实盘大赛第二季“程序化交易组”第一名,5个月单利142.89%,回撤3.13%。

2013央视CCTV期货时间程序交易大赛第一名,2013年单利78.58%,回撤13.8%

和大多数投资者或者期货界的业内人士一样,初次听到“言程序”这三个字,自然而然脑中浮雹猜毕现的是《流星花园》中“道明寺”的扮演者-“言承旭”,一个演艺界的明星。言程序则是期货界名副其实的明星。对于这个名字,言程序也有一番自己的解释。“程序,很明显就可以联想到程序化交易。言,我们希望通过演讲的方法,通过媒体传递来宣讲我们的理念。”虽然“言程序”是作为他个人的艺名,但是他觉得这代表着整个公司团队,而他只是作为团队的代表人物去阐述整个团队的中心思想。现在他以投顾的身份运作的几款产品,取得了稳定的盈利。例如七禾言程序交易团队零号基金,成立于2013年12月31日,总规模3490万,现在(2014年9月19日)净值为1.168。丹寅言起基金,成立于2014年2月14日,总源芹规模3000万,现在(2014年9月19日)净值为1.185。近期言程序仍以投顾身份,拟发一款名为马达言起3号的产品。

言程序选择金融市场,并非只是偶然,在他小的时候,他父亲就因为投资期货而破产,当时留给他最深刻的东西就是父亲的一句话:“儿子,千万不要碰期货跟股票,那是害人的东西。”但是言程序并没有因此而放弃,他反而觉得应该为在期货市场没有实现目标的父亲做一些有价值的事情。进入这个行业之后,言程序认识到父亲的失败是因为无法克服人性的弱点,所以他就找到了量化这条路。当程序化交易、量化交易在国内还未盛传的时候,言程序采用的也是主观交易,这也致使他再次经历破产。到2003年时,程序化交易传入台湾,言程序的第一反应就是:对了,我们就是要这个!然后他们根据技术分析、量化值或者是统计化之后出现的讯号去做交易,但是当时的程序化并没有现在的先进,它只能给出讯号,必须人为去执行,在这之中又掺杂了人性的弱点。经历了失败之后,他最终认为还是要交给计算机去执行,随着程序化交易的发展以及团队的不断开发、研究,终于实现了全自动的程序化交易,这也让言程序整个团队在2008年的金融海啸中获得了财富的增长。

为什么言程序包括他的整个团队都如此信任量化交易?第一,优秀的主观交易者有一套自己的能够稳定盈利的思路,是无法复制的。第二,言程序团队经过统计,从事量化交易的人,在市场中会活得更久。第三,随着资产管理时代的发展,作为投顾的言程序,管理产品的规模在逐渐扩大,而他坚定地认为量化交易是可以掌管大资金的一个行为模式。但同时,言程兆蚂序不管在期货中国网的专访、演讲或者其它媒体的访谈中,他都表示,不要把量化给神化了,量化是一个投资工具,同样90%的人亏钱,10%的人挣钱。想要作为这10%中的一员,还需要做好策略的开发、适度优化,以及资金的管控等。

据期货中国了解到,言程序团队研发的策略有日内、隔夜、价差套利策略。每一组都至少有3-6个以上的投资组合,这样组合起来大约会有20个以上的策略投资组合。而在备用策略库中,大概有50个以上的策略。“我们开发策略很快,简单的想法1、2天就能完成。”虽然策略开发对言程序而言并不是一件难的事情,但是他认为策略开发出来之后,别急着拿真钱下单,先至少观察3个月,如果绩效曲线往上了再用。毕竟一个策略的投入使用是需要一段时间来验证的。市场唯一确定的就是它的不确定性,那么也就不存在可以永远获利的策略,所以言程序觉得对策略做适度的优化是必要的。而在策略的使用上,不同的资金规模,言程序会配置不同的策略。针对100万的账户,他会做6手股指日内和1手股指隔夜。而针对1000万以上的账户,40%股指日内、10%股指隔夜、20%商品价差套利。尽可能纳入所有的策略,让整个收益曲线平滑。

当大行情来临的时候,有些人会主动选择加仓,从而获取更多的利润。但是从言程序的角度来看,加码只适用于高手,对于一般的普通投资者而言,只会垫高成本,加大风险度。这是一种加大风险、扩大杠杆的行为,假如行情反转,损失会惨重。但如果能做2手的时候,第2手单不做加码单,改做不同的策略。虽然是两个不同的策略,但在同样的大行情中,都会进场交易。而在小行情中,当一个策略其它而另外一个策略若为启动,则自然也会产生加码的效果。言程序最后还是强调了一点,如果没有十分的把握和信心,没有大波段的行情出现,不要麻木加仓。

“量化交易很容易入门,仅是一个技术,而资金控管却是一门艺术,因为再好的策略,如果你用全压重仓的心态去交易,总有一天你的一切会归零。没有资金控管,无论收益翻多少倍,明年只要亏损50%,你的资金就全部夭折了,这是很血淋淋的现象。”言程序还在某媒体上发表了一个观点:世界上最痛苦的是对自己所在乎的人、事、物无能为力,更痛苦的是发现,毁灭这一切的竟然是自己。所以严格的资金控管和纪律才能保证活着,团队把破产风险限制在接近0,千万不要躁进,不要逆天而行,因为活着比什么都要重要。重仓最大的风险在于即使你有90%的程序预测是正确的,也有10%产生重大的亏损。而这10%的概率,就有可能使你的财富重新归0。言程序在CCTV期货时间的兵器谱上展示的账户,每天都用100万的资金做,到2014年7月为止,排名第一位。而比赛刚开始的时候,排名在50左右,拿到第一名,并非瞬间而是经过了一年多的时间。“我的报酬率不高,每天赚1%、2%。我的策略永远是5成仓以下。”

编译程序 编译程序

compiler

把用高级程序设计语言书写的源程序,翻译成等价的计算机汇编语言或机器语言的目标程序的翻译程序。编译程序属于采用生成性实现途径实现的翻译程序。它以高级程序设计语言书写的源程序作为输行御入,而以汇编语言或机器语言表示的目标程序作为输出。编译出的目标程序通常还要经历运行阶段,以便在运行程序的支持下运行,加工初始数据,算出所需的计算结果。编译程序的实现算法较为复杂。这是因为它所翻译的语句与目标语言的指令不是一一对应关系,而是一多对应关系同时也因为它要处理递归调用、动态存储分配、多种数据类型,以及语句间的紧密依赖关系。但是,由于高级程序设计语言书写的程序具有易读、易移植和表达能力强等特点,编译程序广泛地用于翻译规模较大、复杂性较高、且需要高效运行的高级语言书写的源程序。

功能 编译程序的基本功能是把源程序翻译成目标程序。但是,作为一个具有实际应用价值的编译系统,除了基本功能之外,还应具备语法检查、调试措施、修档搜岩改手段、覆盖处理、目标程序优化、不同语言合用以及人-机联系等重要功能。①语法检查:检查源程序是否合乎语法。如果不符合语法,编译程序要指出语法错误的部位、性质和有关信息。编译程序应使用户一次上机,能够尽可能多地查出错误。②调试措施:检查源程序是否合乎设计者的意图。为此,要求编译程序在编译出的目标程序中安置一些输出指令,以便在目标程序运行时能输出程序动态执行情况的信息,如变量值的更改、程序执行时所经历的线路等。这些信息有助于用户核实和验证源程序是否表达了算法要求。③修改手段:为用户提供简便的修改源程序的手段。编译程序通常要提供批量修改手段(用于修改数量较大或临时不易修改的错误)和现场修改手段(用于运行时修改数量较少、临时易改的错误)。④覆盖处理:主要是为处理程序长、数据量大的大型问题程序而设置的。基本思想是让一些程序段和数据公用某些存储区,其中只存放当前要用的程序或数据其余暂时不用的程序和数据,先存放在磁盘等辅助存储器中,待需要时动态地调入。⑤目标程序优化:提高目标程序的质量,即占用的存储空间少,程序的运行时间短。依据优化目标的不同,编译程序可选择实现表达式优化、循环优化或程序全局优化。目标程序优化有的在源程序级上进行,有的在目标程序级上进行。⑥不同语言合用:其功能有助于用户利用多种程序设计语言编写应用程序或套用已有的不同语言书写的漏毕程序模块。最为常见的是高级语言和汇编语言的合用。这不但可以弥补高级语言难于表达某些非数值加工 *** 作或直接控制、访问外围设备和硬件寄存器之不足,而且还有利于用汇编语言编写核心部分程序,以提高运行效率。⑦人-机联系:确定编译程序实现方案时达到精心设计的功能。目的是便于用户在编译和运行阶段及时了解内部工作情况,有效地监督、控制系统的运行。

早期编译程序的实现方案,是把上述各项功能完全收纳在编译程序之中。然而,习惯做法是在 *** 作系统的支持下,配置调试程序、编辑程序和连接装配程序,用以协助实现程序的调试、修改、覆盖处理,以及不同语言合用功能。但在设计编译程序时,仍须精心考虑如何与这些子系统衔接等问题。

工作过程 编译程序必须分析源程序,然后综合成目标程序。首先,检查源程序的正确性,并把它分解成若干基本成分;其次,再根据这些基本成分建立相应等价的目标程序部分。为了完成这些工作,编译程序要在分析阶段建立一些表格,改造源程序为中间语言形式,以便在分析和综合时易于引用和加工(图1)。

数据结构 分析和综合时所用的主要数据结构,包括符号表、常数表和中间语言程序。符号表由源程序中所用的标识符连同它们的属性组成,其中属性包括种类(如变量、数组、结构、函数、过程等)、类型(如整型、实型、字符串、复型、标号等),以及目标程序所需的其他信息。常数表由源程序中用的常数组成,其中包括常数的机内表示,以及分配给它们的目标程序地址。中间语言程序是将源程序翻译为目标程序前引入的一种中间形式的程序,其表示形式的选择取决于编译程序以后如何使用和加工它。常用的中间语言形式有波兰表示、三元组、四元组以及间接三元组等。

分析部分 源程序的分析是经过词法分析、语法分析和语义分析三个步骤实现的。词法分析由词法分析程序(又称为扫描程序)完成,其任务是识别单词(即标识符、常数、保留字,以及各种运算符、标点符号等)、造符号表和常数表,以及将源程序换码为编译程序易于分析和加工的内部形式。语法分析程序是编译程序的核心部分,其主要任务是根据语言的语法规则,检查源程序是否合乎语法。如不合乎语法,则输出语法出错信息;如合乎语法,则分解源程序的语法结构,构造中间语言形式的内部程序。语法分析的目的是掌握单词是怎样组成语句的,以及语句又是如何组成程序的。语义分析程序是进一步检查合法程序结构的语义正确性,其目的是保证标识符和常数的正确使用,把必要的信息收集和保存到符号表或中间语言程序中,并进行相应的语义处理。

综合部分 综合阶段必须根据符号表和中间语言程序产生出目标程序,其主要工作包括代码优化、存储分配和代码生成。代码优化是通过重排和改变程序中的某些 *** 作,以产生更加有效的目标程序。存储分配的任务是为程序和数据分配运行时的存储单元。代码生成的主要任务是产生与中间语言程序符等价的目标程序,顺序加工中间语言程序,并利用符号表和常数表中的信息生成一系列的汇编语言或机器语言指令。

结构 编译过程分为分析和综合两个部分,并进一步划分为词法分析、语法分析、 语义分析、 代码优化、存储分配和代码生成等六个相继的逻辑步骤。这六个步骤只表示编译程序各部分之间的逻辑联系,而不是时间关系。编译过程既可以按照这六个逻辑步骤顺序地执行,也可以按照平行互锁方式去执行。在确定编译程序的具体结构时,常常分若干遍实现。对于源程序或中间语言程序,从头到尾扫视一次并实现所规定的工作称作一遍。每一遍可以完成一个或相连几个逻辑步骤的工作。例如,可以把词法分析作为第一遍;语法分析和语义分析作为第二遍;代码优化和存储分配作为第三遍;代码生成作为第四遍。反之,为了适应较小的存储空间或提高目标程序质量,也可以把一个逻辑步骤的工作分为几遍去执行。例如,代码优化可划分为代码优化准备工作和实际代码优化两遍进行。

一个编译程序是否分遍,以及如何分遍,根据具体情况而定。其判别标准可以是存储容量的大小、源语言的繁简、解题范围的宽窄,以及设计、编制人员的多少等。分遍的好处是各遍功能独立单纯、相互联系简单、逻辑结构清晰、优化准备工作充分。缺点是各遍之中不可避免地要有些重复的部分,而且遍和遍之间要有交接工作,因之增加了编译程序的长度和编译时间。

一遍编译程序是一种极端情况,整个编译程序同时驻留在内存,彼此之间采用调用转接方式连接在一起(图2)。当语法分析程序需要新符号时,它就调用词法分析程序;当它识别出某一语法结构时,它就调用语义分析程序。语义分析程序对识别出的结构进行语义检查,并调用“存储分配”和“代码生成”程序生成相应的目标语言指令。

随着程序设计语言在形式化、结构化、直观化和智能化等方面的发展,作为实现相应语言功能的编译程序,也正向自动程序设计的目标发展,以便提供理想的程序设计工具。

参考书目

陈火旺、钱家骅、孙永强编:《编译原理》,国防工业出版社,北京,1980。

A.V.Aho, Principles of Compiler Design,Addison Wes-ley, Reading, Massachusetts, 1977.

--------------------------------------------------------------------------------

编译程序 (compiler)

将用高级程序设计语言书写的源程序,翻译成等价的用计算机汇编语言、机器语言或某种中间语言表示的目标程序的翻译程序。用户利用编译程序实现数据处理任务时,先要经历编译阶段,再经历运行阶段。编译阶段以源程序作为输入,以目标程序作为输出,其主要任务是将源程序翻译成目标程序。运行阶段的任务是运行所编译出的目标程序,实现源程序中指定的数据处理任务,其工作通常包括:输入初始数据,对数据或文件进行数据加工,输出必要信息和加工结果等。编译程序的实现算法较为复杂。这是因为它所翻译的语句与目标语言的指令不是一一对应关系,而是一多对应关系;同时因为它要在编译阶段处理递归调用、动态存储分配、多种数据类型 实现 、 代码生成与代码优化等繁杂技术问题;还要在运行阶段提供良好、有效的运行环境。由于高级程序设计语言书写的程序具有易读、易移植和表达能力强等特点,所以编译程序广泛地用于翻译规模较大、复杂性较高、且需要高效运行的高级语言书写的源程序。

功能 编译程序的基本功能是把源程序翻译成目标程序。此外,还要具备语法检查、调试措施、修改手段、覆盖处理、目标程序优化、不同语言合用以及人机联系等具有实际应用价值的重要功能。①语法检查。检查源程序是否合乎语法 。②调试措施。检查源程序是否合乎用户的设计意图。③修改手段。为用户提供简便的修改源程序的手段。④覆盖处理。主要为处理程序较长、数据量较大的大型问题程序而设置。基本思想是让一些程序段和数据公用某些存储区,其中只存放当前要用的程序段或数据,其余暂时不用的程序段和数据均存放在磁盘等辅助存储器中,待需要时动态地调入存储区中运行。⑤目标程序优化。提高目标程序的质量,即使编译出的目标程序运行时间短、占用存储少。⑥不同语言合用 。便于用户利用多种程序设计语言编写应用程序或套用已有的不同语言书写的程序模块。最为常见的是高级语言和汇编语言的合用。⑦人机联系。便于用户在编译和运行阶段及时了解系统内部工作情况,有效地监督、控制系统的运行。

早期编译程序的实现方案,是把上述各项功能完全收纳在编译程序之中 。后来的习惯方法是在 *** 作系统的支持下,配置编辑程序、调试程序、连接装配程序等实用程序或工具软件,目的是创造一个良好的开发环境和运行环境,便于应用软件的编程、修改、调试、集成以及报表生成、界面设计等工作。但编译程序设计者设计编译方案时,仍需精心考虑上述各项功能,较好地解决目标程序与这些实用程序或软件工具之间的配合与衔接等问题。

工作过程 编译程序必须分析源程序,然后综合成目标程序。为达到这个目的,编译程序要在分析阶段建立一些表格,改造源程序为中间语言形式,以便在分析和综合时易于引用和加工。

数据结构 分析和综合时所用的主要数据结构,包括符号表、常数表和中间语言程序。符号表由源程序中所用的标识符连同它们的属性组成,其中属性包括种类(如变量、数组、结构、函数、过程等)、类型(如整型、实型、字符串、复型、标号等),以及目标程序所需的其他信息。常数表由源程序中用的常数组成,其中包括常数的机内表示以及分配给它们的目标程序地址。中间语言程序是将源程序翻译成目标程序前引入的一种中间形式的程序,其表示形式的选择取决于编译程序以后如何使用它和如何加工它。常用的中间语言形式有波兰表示、三元组、四元组以及间接三元组等。

分析部分 源程序的分析是经过词法分析、语法分析和语义分析三个步骤实现的。词法分析由词法分析程序(又称为扫描程序 )完成,其任务是识别单词(即标识符 、常数、保留字,以及各种运算符、标点符号等)、造符号表和常数表,以及将源程序换码为编译程序易于分析和加工的内部形式。语法分析程序是编译程序的核心部分,其主要任务是根据语言的语法规则,检查源程序是否合乎语法,并分解源程序。如果不合乎语法,则输出语法出错信息;如果合乎语法,则分解源程 序的语法结构, 构造中间语 言形式的内部程序。语法分析的目的是掌握单词是怎样组成语句的,以及语句又是如何组成程序的。语义分析程序进一步检查合法程序结构的语义正确性,其目的是保证标识符和常数的正确使用,把必要的信息收集和保存到符号表或中间语言程序中,并进行相应的语义处理。

综合部分 综合阶段根据符号表和中间语言程序产生出目标程序,其主要工作包括代码优化、存储分配和代码生成。代码优化是通过重排和改变程序中的某些 *** 作,以产生更加有效的目标程序。存储分配是为程序和数据分配运行时的存储单元。 代码生成是产 生与中间语 言程序等价的目标程序,亦即,顺序加工中间语言程序,利用符号表和常数表中的信息生成一系列的汇编语言或机器语言指令。

动态 20世纪80年代以后,程序设计语言在形式化、结构化、直观化和智能化等方面有了长足的进步和发展,主要表现在两个方面:①随着程序设计理论和方法的发展,相继推出了一系列新型程序设计语言,如结构化程序设计语言、并发程序设计语言、分布式程序设计语言、函数式程序设计语言、智能化程序设计语言、面向对象程序设计语言等;②基于语法、语义和语用方面的研究成果,从不同的角度和层次上深刻地揭示了程序设计语言的内在规律和外在表现形式。与此相应地,作为实现程序设计语言重要手段之一的编译程序,在体系结构、设计思想、实现技术和处理内容等方面均有不同程度的发展、变化和扩充。另外,编译程序已作为实现编程的重要软件工具,被纳入到软件支援环境的基本层软件工具之中。因此,规划编译程序实现方案时,应从所处的具体软件支援环境出发,既要遵循整个环境的全局性要求和规定,又要精心考虑与其他诸层软件 工具之间的相互支援、配合和衔接关系。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12425918.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存