One - One Code All

Blog Content

Q语言

智能投研   2013-05-28 22:40:54

Q是一个数据语言,目前被限定为一个数据定义语言(DDL)。Q采用JSON/XML模式,其配备了一个专用的用于定义数据的类型系统,和一个称为“信息合约”的理论,用于程序和数据交换语言之间的互操作。Q语言是专为量化投资和程序化交易开发的动态编程语言,兼具C++语言的灵活性和EasyLanguage语言的易用性,支持证券、期货、上海黄金交易所、渤海商品交易所所有指。标的历史数据、实时行情、程序化交易;支持恒生、金仕达、顶点、金证、易盛、CTP、国外FIX等几乎所有的交易接口;同时还支持C++,C#、JAVA、MATLAB、R等多种语言的调用。

Q语言特点
面向对象,可以自定义类;
区分大小写;
以一行代表一条完整的语句;
以Tab缩进实现结构化控制,使得程序可读性更强;
是弱数据类型的编程语言,能够实现变量、参数类型的智能化处理。

一个完整的Q语言策略程序由两个可选择使用模块三个必需模块构成:
1.两个可选择使用的模块
“引用”模块:在此模块可以声明想要引用的外部函数或类。
“外部参数”模块:在此模块中可定义全局性的静态变量,一般把策略的参数定义在此模块中。
2.三个必需的模块
Init()模块:仅在策略准备时运行一次。在该模块中,用户可定义全局变量,并对其进行赋初值。
Start()模块:由实时行情或后验数据流驱动循环调用,引擎每接受到一个新的数据就运行一次。策略编写者的策略思想主要在该模块中实现。每次执行完成后,在Start()模块中定义的局部变量会被释放,但在Init()模块中定义的全局变量以及在“外部参数”模块中定义的参数会保留,进入下一次Start()循环。
UnInit()模块:为程序全部执行完成结束后调用,为系统默认调用,一般地用户不需要在此模块中编写代码。
在Q语言中,变量可分为一般编程语言通用的“常规变量”和程序化交易专用的“特殊变量”。


上一篇:清除redis的特定前缀的key
下一篇:flask中的g、add_url_rule、send_from_directory、static_url_path、static_folder的用法

The minute you think of giving up, think of the reason why you held on so long.