python编写量化交易程序英语_量化交易系列——C程序设计基础知识

3e5874c941619c1ea22e84a938ebbdaf.png

上次提到了量化交易需要的一些工具和基础知识,其中主要给出了C这样一个程序语言作为一个切入点,虽然现在作为量化交易很多都是直接使用python这样一个编程语言作为主要的工具,因为python的优点很明显:易学,上手快,而且功能强大...(优点就不多敲了),然而如果想对量化交易有更加深入的理解,那么作为偏向底层的C程序是一个能够帮助量化交易者更好的理解自己开发的量化策略,以及对策略后期的维护和优化的语言。

C程序的优点也是十分明显的,作为偏向底层的语言,能够提升策略的运行速度,虽然python也能很快运行一些策略,但是当对于一些更复杂的策略python的运行速度无法满足的时候,只能使用C程序来解决,同时C语言能帮助量化交易者在算法逻辑和整个量化策略上都能提供一个比较清晰的思路。

接下来本人会分几个板块将C程序这个系列进行分享,这对以后的量化系列也会有很大的帮助。

首先来讲一下C程序设计的基础知识,分别包括算法的概念与描述工具、计算机语言及其发展、C语言的发展与特点、C语言程序结构、C程序的编译运行。

关于算法的概念:在用计算机处理各种问题时,首先要对问题进行分析,确定解决问题的方法和步骤,然后编写出计算机程序,让计算机执行这个程序,最后得出结果。所以,确定解决问题的方法和步骤是编程的前提。

一个程序应该包括以下两方面的内容:对数据的描述。在程序中要指定数据的类型和数据的组织形式,即数据结构(在以后的系列我也会整理一些C语言的数据结构);对操作的描述。即算法,是程序描述了为解决一个问题而采取的方法和步骤。

算法一般分为两大类:数值算法和非数值算法。数值算法主要用于求数值解的问题;非数值算法则主要用于解决需要用分析推理、逻辑推理才能解决的问题。目前数值算法比较成熟,对各类数值计算问题都有成熟的算法可供选用。

一个算法应该具有以下特点:

1)有穷性。算法包含的操作步骤是有限的。

2)确定性。算法中每一个步骤应是确定的,不能是含糊、模棱两可的。

3)有多个或者零个输入。即按算法执行过程中可以输入数据,也可以不输入。

4)有一个或多个输出。算法的目的是求出结果,而结果也就是输出。没有输出的算法是没有意义的。

5)有效性。算法中每一个步骤都应当能有效地执行,并得到确定的结果。

在设计程序时,通常使用专门的算法表达工具对算法进行描述,如自然语言、流程图等。

计算机语言及其发展有了算法后,如果用计算机来实现,必须要用某种计算机语言把它描述出来,变成计算机能识别的程序。为使计算机能按照人们的意志工作,则要用计算机能够理解和识别的语言,即计算机语言来描述。计算机语言的发展,经历了机器语言、汇编语言、高级语言这几个阶段。

机器语言:是用二进制编码表示的机器指令编写的语言,早期的计算机都只能执行机器指令程序,指令系统是计算机唯一能够直接识别和执行的语言,因此又称作机器语言。

机器语言编写程序主要存在下列几个问题:

1)冗长繁琐、难记、难写、难读。机器指令只能完成一些基本操作,程序的每个步骤往往被分解为若干条机器指令,因此进场为解决一个简单问题而编制出相当复杂的机器语言程序。

2)难以修改。在编程处理问题时,错漏总是难免的,往往要经过多次修改后才能完成程序的编制过程。

3)由于上述原因,用机器语言开发应用程序的周期很长。如果用于科研,即使当你的程序调试好了,这一科研课题也过时了。

4)依赖于机器,难以移植。由于指令系统是面向机器的,不同的CPU对应的指令系统之间往往相差很大,因此,机器语言程序的可移植性较差。

汇编语言:虽然机器语言编程有许多不便且对它有很高的要求,但程序的执行效率高,CPU严格按照程序中的指令序列去执行,没有多余的操作。在保留程序执行效率高的前提下,人们开始着手研究一种能改善程序可读性的编程工具。

用汇编指令编写的程序称为汇编语言程序,其可读性大大提高了,但失去了CPU能直接识别的特性,因此需要执行一个翻译程序,它能把汇编语言编写的源程序自动翻译成CPU能识别的机器指令序列,该翻译程序被称为汇编程序。

高级语言:在长期受到低级语言编程低效率的困扰后,人们逐渐意识到应设计一种这样的语言,它接近于数学语言或人的自然语言,但又不依赖于计算机硬件,编出的程序能在所有机器上通用。第一个完全脱离计算机硬件的高级语言——FORTRAN语言诞生于1954年,此后又出现了数百种高级语言,其中有重要意义的有几十种。

正如汇编程序支持用汇编指令编程一样,FORTRAN和C语言的较低版本的系统支持结构化程序设计。在支持面向对象的语言开发工具中,Visual Basic及Visual C++是广为人知的叫成功的代表作。

由于篇幅的问题C语言的程序结构和编译运行本人打算放到下次的内容中,本文最后讲讲C语言的发展与特点。

C语言是国际上最著名的高级程序设计语言之一,也是使用范围最广的计算机编程语言之一。它不仅可以编写如操作系统、数据库之类的系统软件,而且还可以用来编写各种应用软件。

第一个C语言是贝尔实验室的Dennis Ritchie于1972年在B语言的基础上开发的,起初C语言是作为UNIX操作系统的开发语言。在此后的近20年中,C语言得到了广泛的应用,导致了许多不同版本的C语言的产生。1990年,一种在发展中确定了的C语言版本被ISO组织批准为国际标准,成为ANSI C或标准C(以后简称C)。由于C集中了高级语言、低级语言的长处,所以它已迅速普及并成为当今最有发展前途的计算机高级语言之一。

C语言有以下的特点:

1)简洁紧凑、灵活方便。一共只有32个关键字、9种控制语句,程序书写自由。

2)运算符丰富。C的运算符包含的范围很广,共有34个运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理,从而使C得运算类型及其丰富,表达式类型多样化。

3)数据结构丰富。C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等,能用来实现各种复杂数据类型的运算。另外,C语言具有强大的图形功能,支持多种显示器和驱动器,且计算功能、逻辑判断功能强大。

4)C是结构式语言。结构式语言的显著特点是代码及数据的分隔,程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便与使用、维护以及调试。C语言是以函数形式提供给客户的,这些函数可方便地调用,并具有多种循环语句、条件语句来控制程序的流向,从而使程序完全结构化。

5)C语法限制不太严格,程序设计自由度大。一般的高级语言语法检查比较严格,能够检查出几乎所有的语法错误。而C语言允许程序编写者有较大的自由度。

6)C语言允许程序直接访问物理地址,可以直接对硬件进行操作,因此它兼有高级语言和低级语言的许多功能。C语言能够像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可以用来编写系统软件。

7)C语言程序生成代码质量高,程序执行效率高,一般只比汇编程序生成的目标代码效率低10%~20%。

8)C语言使用范围大,可移植性好。其突出的有点就是适合于多种操作系统,也适用于多种机型。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值