关于掘金平台

什么是掘金量化平台?

掘金是为专业量化机构和宽客打造的一套全栈式量化交易解决方案。掘金的核心目标:

  • 覆盖量化交易完整生命周期,支持策略研发、策略回测、仿真交易、实盘交易与盘后分析优化全过程。
  • 覆盖所有主流开发语言,掘金者可以使用自己最熟悉、最趁手的语言快速转化自己的策略思想,进入实战交易。
  • 覆盖全球主要市场,让掘金者的思想、策略、积累能够在最广阔的舞台--全球市场自由施展。

掘金包含哪些产品和服务?

掘金量化平台由3部分组成:掘金量化云,掘金SDK,掘金终端。量化云是幕后英雄,在后台默默地提供数据和基础服务,通常您感觉不到它的存在;API是您编写策略的好帮手,访问数据、交易下单、回测仿真等等,调用它就好了;终端用来监控、管理策略,策略的状态实时的展现在您面前,一切尽在掌握。

掘金量化云

量化云提供稳定、可靠、高性能的数据服务和回测、仿真等基础服务。云服务7*24小时可用,您可以随时随地接入云服务,全天候进行策略开发、调试、回验和仿真交易,不受交易时段的限制,从而以最高的效率保证策略快速上线实盘。

掘金API

掘金SDK标准化了数据和交易接口,并以易用、开放、高性能为设计目标针对量化交易进行优化。SDK支持所有主流的编程开发语言,如C, C++, C#, Python,Matlab,R等语言,最大程度地保证了平台的开放性。

掘金终端

掘金提供强大的可视化终端,为策略开发、研究、管理、运行监控、风险控制、信号分析提供一体化的的操作界面 。

掘金能为我带来什么?

  • 统一的量化交易接口,接入各大市场的数据和交易通道,完全屏蔽各交易所接入差异和复杂性,避免高昂的技术与人力成本。
  • 一致的策略事件模型,将实时数据/模拟数据/回放数据/交易数据,整合到复杂事件处理引擎(CEP),以通用的事件模式驱动。策略可以灵活的切换数据源而不用修改代码,策略在研究/回验/仿真/实盘各阶段真正做到无缝迁移。
  • 完善的风险控制机制,可构建基于策略的资金、持仓、绩效指标,以及可交易市场与代码的丰富风控规则;可指定从提醒、警告、限制交易到自动强平的风控行为。
  • 完整的策略生命周期管理,从策略思想到策略实盘上线的全过程,都可以通过掘金平台进行管理;每一个环节,都可以得到掘金团队的专业服务支持。

我想试试,怎么开始?

这里下载掘金平台和您熟悉语言的API;跟随快速开始,enjoy!

掘金为什么提供落地量化平台,会有线上服务吗?

quantopian可能是做线上量化应用的鼻祖了,并开源了后台的一些核心库如zipline,质量很高,对行业是有所促进的,国内近期也出现了一些类似的线上平台。基于web的应用在使用上的确能带来一些便利,打开浏览器就能用,但考虑到国内量化交易的特点和要求,至少在现阶段,线上服务还存在比较大的一些局限,难于投入实用。比如在功能上,目前线上的应用基本上就做到提取数据、回测这一步,除此之外,最明显的一些局限如下:

策略安全问题

策略是策略师的核心资产。对于线上系统,策略的开发、存储、运行和管理都在线上。大部分非编译型语言编写的策略,还原为源程序是很容易的,有些语言本来就是源码方式运行;这个时候,安全性保证就只能依赖运营公司的道德(对内安全)和能力(对外安全)了。如果在线上实盘,交易的资金账号和密码也需要交给线上系统管理。

开发工具受限

线上系统能提供基于web的在线开发环境,功能和是使用体验上与专业IDE开发环境的功能相去甚远。如果想用自己熟悉的IDE或工具链如Visual Studio、PyCharm、Matlab vim等那是不行的,开发效率大打折扣。

开发语言受限

线上系统通常只支持一种语言,比如quantopian只支持Python语言。如果你不熟悉Python,那你只好从头学起了。当然Python很有趣,但学习并能熟练应用一门编程语言不是一个容易的过程,需要投入大量的时间和精力。想象你本来很精通matlab,对语言、常用的库、算法、惯用法都了如指掌,策略思路很容易就能用matlab实现,现在你发现这些都没用了,需要新学习一门语言才能用这个平台,其中沮丧可想而知。

可用资源受限

典型如数据,访问线上系统预设的数据是方便的,但如果想接入第三方数据或自定义数据,就会非常麻烦甚至不可能,难于整合现有资源。

可用库受限

同样,线上系统会提供常见的开发库,但如果你想用的库不在系统提供范围,你希望用某个高性能的库(比如内部用c/fortran/java实现的库),如果需要的库还需要编译,不说不可能也是巨麻烦。

运行环境受限

策略必须适应线上的运行环境,比如操作系统、语言、库的环境,比如机器、网络环境等。比如你关注计算性能,关注网络延迟,希望尽可能避免策略访问数据、访问交易带来的延迟;比如策略需要复杂计算能力,你希望增强CPU、使用优化版解释器提升策略运行效率,这些都难于做到。

综合这些因素,线上的形式目前无法支持掘金的设计目标。终端形式的平台拥有线上系统的全部功能,而且没有线上系统的限制。

尽管线上系统有这些不足,但适当地使用线上系统还是能带来一定的便利性,比如做策略原型开发和回测,快速验证思路,线上的好处是随处能用。取决于实际需求,掘金未来可能在线上开放这部分功能。

掘金是免费的吗?

掘金提供永久免费版本,免费版主要面向学生和量化学习研究者。免费版开放了平台的绝大部分功能,包括国内及外盘实时行情,历史行情,云回测服务,以及仿真交易等。

针对专业量化机构和宽客,掘金提供付费的专业版和机构版,以及支持服务。详细的版本与功能请参见产品

掘金性能怎么样?

掘金面向高频交易设计,在性能指标上有严苛的要求。设计上,将计算密集和高延迟的任务从交易关键路径分离,实现上,核心模块采用c开发,保证平台内部最低的延迟、最好的性能和最高的吞吐。实盘时,还可以将掘金托管到交易所附近机房,从而避免数据和委托的网络延迟,网络延迟通常是策略执行性能中的最大开销。

我可以做高频策略吗?

可以。支持高频策略是掘金的设计目标之一。

我可以做套利策略吗?

可以。掘金标准化了行情和交易通道接口,一个策略可以轻松地同时交易多个市场,完美支持套利策略。

我可以用什么语言开发策略?

掘金目前正式发布的SDK支持:C, C++, C#, Matlab, Python, R 语言。

我的策略放在哪里?安全吗?

您的策略的编写、运行、存储都在您自己的机器上,我们相信这是最安全的方式。

策略下单会经过掘金服务器吗?

不会。策略委托根据交易通道的配置,直接发送到对应的券商/期货柜台。

掘金提供什么数据?

掘金目前主要提供交易需要的相关数据,包括实时行情、历史行情、交易代码表等。行情数据目前支持国内6个股票和期货市场,以及部分外盘市场数据,详细如下:

实时行情数据
  • 支持市场:
上交所,市场代码 SHSE
深交所,市场代码 SZSE
中金所,市场代码 CFFEX
上期所,市场代码 SHFE
大商所,市场代码 DCE
郑商所,市场代码 CZCE
  • 推送数据:
上交所、深交所: Tick, 30秒/1分/5分/15分/30分/60分 Bar数据
国内期货: Tick, 15秒/30秒/1分/5分/15分/30分/60分 Bar数据
历史行情数据
  • 股票行情
A股日线数据:              2005年1月1日起至今
1分钟线数据:              2015年1月1日起至今
Tick数据:                 最近2个月
大于1分钟任何频度Bar:       2015年1月1日起至今
小于1分钟任何频度Bar:       最近2个月

  • 期货行情
日线数据:              全部原始合约的完整数据;全部主力合约和连续合约完整数据 
1分钟线数据:           2015年6月1日起至今
Tick数据:              最近2个月
大于1分钟任何频度Bar:    2015年6月1日起至今
小于1分钟任何频度Bar:    最近2个月
基础数据
代码基本信息:              当前最新
指数成分股:                当前最新
财务指标:                 2005年1月1日起至今,每季度1条记录
市场指标:                 2014年10月1日至今
股本指标:                 2014年10月1日至今
复权因子:                 2005年1月1日起至今
交易日历:                  2015年1月1日起至今
分红送股明细:              2005年1月1日起至今

什么是行情模式?

行情的模式有以下4种(对应mode=1/2/3/4),适用不同的策略场景。行情模式需要在初始化sdk时指定,每种模式的含义和一般的使用场景如下:

  1. 不订阅行情(mode 1): 不订阅行情服务器推送的行情,这样on_tick/bar等事件不会触发。这种模式适用于只需要查询数据的场景,比如做研究提取数据。显然运行策略时是不会使用mode 1的。

  2. 订阅实时行情(mode 2):订阅行情服务器推送的实时行情,也就是交易所的实时行情,只有交易时段有。适用的场景是策略仿真交易和实盘交易阶段。

  3. 订阅模拟行情(mode 3):订阅行情服务器推送的模拟行情,模拟行情是近期的历史行情,行情服务器将7*24小时不间断循环推送,推送频率近似实时行情。适用的场景是策略开发阶段,主要就是能方便随时随地都能有数据,能开发/调试策略,不受交易时段的限制。

  4. 订阅回放行情(mode 4):订阅指定时段、指定交易代码、指定数据类型的行情,行情服务器将按指定条件全速回放对应的行情数据。适用的场景是策略回测阶段,快速验证策略的绩效是否符合预期。

什么是交易通道?

掘金支持订单自动路由,策略可以指定关联不同的交易通道,策略发出的委托将根据相应的交易通道设置,自动路由到对应交易通道。

  1. 模拟交易通道:此通道7*24小时可用。进入本交易通道的策略委托采用见价撮合机制;对限价单,按委托价成交,对市价单,按最新价成交。

  2. 仿真交易通道:此通道仅交易时段可用。进入本交易通道的策略委托将与实时行情撮合,撮合规则与交易所规则相同。成交结果高度接近于实盘时交易所的成交结果。

  3. 真实交易通道:此通道仅交易时段可用。进入本交易通道的策略委托被路由到配置的真实券商/期货商交易柜台,并进入交易所撮合成交。

掘金支持哪些市场?

掘金目前已经支持实盘交易的市场包括:上交所,深交所,中金所,上期所,大商所,郑商所。未来将逐步支持全球主要市场。

Tick数据多长时间推送一次?

不同市场Tick数据的推送频率不同,掘金云服务目前推送的Tick数据如下:

上交所:5秒
深交所:3秒
中金所:0.5秒
上期所:0.5秒
大商所:平均约0.5秒
郑商所:平均约0.5秒

注: 大商所和郑商所非均匀推送

我想要自定义频度的bar怎么办?

目前云服务推送的行情bar的周期时:1分,15分,30分,60分。自定义频度的bar云服务可以配置支持。机构客户可以落地计算服务,bar频度可以自行按需配置。

我的策略想监控全市行情,能支持吗?

免费云服务目前不支持订阅全市场实时行情,数据量太大,占用带宽过高,会影响其他用户的使用。机构用户没有限制。变通的实现方法是,可以通过查询全市场行情快照的方式来达到目的,掘金对查询快照有高效的实现。

提取数据量有限制吗,一次性最多可以提取多少数据?

单次提取上限是33000笔数据,略大于一个期货合约全天的tick数据量。如果超出这个量,后面的数据会被忽略。如果提取的数据周期比较长,可以逐天循环提取。

停牌或交易不活跃代码为什么没有bar数据?

停牌的股票代码不会生成日线和bar数据;交易不活跃的代码,在没交易的期间,也不会生成bar数据。对于需要用缺省数据填充该时段的的场景,需要自行处理。各语言的time series计算库都有这样的基本功能(比如,python中的pandas库可以轻松完成这样的需求),用最后一笔数据填充空缺的是时段。数据供应服务之所以不作这样处理,原因举个简单的例子,某代码停牌3个月,我们不会把一模一样的tick,bar,dailybar数据复制3个月存起来,这样既浪费又没意义。再者这样的缺省行为也没办法统一,有些场景希望拉齐数据,有些场景不希望。因此放到策略应用程序中处理起来是最灵活的。

为什么掘金的bar和通达信、大智慧等行情软件不太一样?

首先,bar不是交易所提供的,都是各数据商通过逐笔行情(Tick)计算所得。 各数据商在采集交易所level1行情的开始时间,采集频率等各异,接入协议也各不相同,如fast, dbf数据库等,因此会导致所计算所得的bar有所偏差。 一般说来,不同level1行情源头计算所得的Bar, 基本上都会不一样。

掘金如何支持策略开发、回测、仿真和实盘几个阶段的?

策略的生命周期一般可以分为4个阶段:开发,回测,仿真,实盘。不同的阶段,我们可能使用不同的行情模式和交易通道,以满足不同的目的。

开发阶段,交易时段我们可以用实时行情(mode 2)开发调试,但收盘了我们还想工作,就切换到模拟行情(mode 3),这样随时有数据;策略的交易通道我们选择 模拟交易通道,这样随时都可以成交。开发的时候,你肯定不会把交易通道切换到实盘交易通道,对吧?我可不希望策略产生的垃圾委托被发到真实柜台去了。

回测阶段,我们只能用回放行情(mode 4),这个行情模式就是干这个用的。策略回测时无需配置交易通道,因为回测服务有自己的撮合、清算、绩效计算机制。

仿真阶段,策略开发ok了, 回测的绩效牛x到暴,直接开始拿真金白银实盘吧?心里还是有点打鼓。这个时候,就该仿真交易通道上场了。策略由实时行情驱动(mode 2),交易通道选择仿真交易通道。策略开始运行,运行结果和实盘结果高度吻合,除了不是真钱在跑,其他都和实盘一样。所以仿真交易通道的价值就在这里:一个符合交易所规则的高仿真交易系统,对策略的paper trading阶段至关重要,可以避免您拿真钱去试错,并且大大提高策略验证效率,让您的策略上线时成竹在胸。

实盘阶段,恩,前面阶段的结果都很好了,把交易通道切换到真实交易通道,真刀真枪交易起来。至于行情模式,当然是实时行情式(mode 2)。

安装掘金时,360为什么报告病毒?

经过我们与360沟通处理,当前版本已经提交360备案,解决了360的误报问题。为保证您的电脑不受恶意软件影响,请大家一定要从我们的官方网站下载使用掘金产品,避免从其他来源安装。如果确信是从我们的网站原始下载的,可以忽略360, 或者是用其他杀毒软件检测下。

策略ID有什么用,如何产生?

策略ID是策略的唯一标示,相当于策略的身份证号。策略需要配置策略ID,这样策略在启动时,掘金才知道是哪个策略连接上来了,才能针对执行对应的监控、风控、清算等行为。在策略向导中创建策略时,会自动生成策略ID,终端界面上可以复制策略ID。

如何购买?

支付方式

银行汇款注意事项:

专业版购买请将付款底单拍照,邮件发送到至:support@myquant.cn
邮件中请注明:付款人姓名、申请的掘金用户ID、购买期限、联系电话。

机构版和学术版的购买请先咨询:

电话:0755-86962125
手机:13510932510

个人汇款均是立即到帐,企业帐号1-3天内到帐。汇款到账后,工作人员会开通付费用户功能,并回复邮件。

付款信息
开户行:建设银行深圳福田支行
用户名:深圳红树科技有限公司
账号:4420 1503 5000 5253 3459

开始策略开发

为什么说掘金是最开放的量化平台?

掘金在设计时始终将平台开放性放在高优先级考虑,我们期望掘金是一个能有最大程度适应性和弹性,能与现有环境共生的平台,而不是一个封闭的平台。在开放性方面,我们做了一下工作:

  • 支持7种语言、共计12个不同版本的SDK
  • 支持windows, linux操作系统
  • 支持不同的交易通道,可以自由扩展
  • 支持接入自有数据源

我可以用什么工具开发策略?对IDE使用有限制吗?

您可以用任何您喜欢的开发工具,比如matlab, visual studio, pycharm, eclipse, vim, emacs, what ever... 掘金对此没有任何限制。

使用第三方开发库有限制吗?

没有限制,可以自由集成其他第三方开发库。

使用第三方数据有限制吗?

没有限制,可以使用掘金的云数据,也可以自由接入第三方数据。

使用第三方交易通道有限制吗?

没有限制,如果交易通道不在掘金现有的支持列表中,掘金可以提供扩展支持。

怎样快速创建一个策略

最简单的方式,通过掘金终端的策略构建向导,选择希望的策略模板、开发语言和其他策略参数,很快就可以生成一个可以工作的策略。另外,在SDK的目录有也有策略示例程序可以参考。

收盘没数据了,我想调试策略怎么办?

掘金云服务提供7*24小时的模拟行情供开发和测试策略,只需要将策略的行情模式调整为模拟行情即可(mode=3)。

开发调试策略时,用什么交易通道?

模拟交易通道,7*24小时可以下单成交。

开始策略回测

支持什么粒度的回测,可以做tick级别回测吗?

掘金支持tick, minute, daily不同频度行情回测,并且不同频度数据可以混合回测。

支持什么品种回测?

目前支持股票,期货回测。

我想做跨市场对冲策略回测,支持股票、期货等混合回测吗?

支持。

可以做参数优化吗?

现在还没直接支持,但可以通过修改参数反复回测来达到参数优化目的,这得益于掘金的开放性。

有哪些回测参数可以设置?

目前可以调整下面这些回测参数,可以在策略配置中设置,也可以直接在策略代码中设置。

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;策略回测参数配置
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[backtest]
;历史数据回放开始时间
start_time=2015-04-15 09:00:00

;历史数据回放结束时间
end_time=2015-05-15 15:00:00

;策略初始资金
initial_cash=1000000

;委托量成交比率,默认=1(每个委托100%成交)
transaction_ratio=1

;手续费率,默认=0(不计算手续费)
commission_ratio=0

;滑点比率,默认=0(无滑点)
slippage_ratio=0

;行情复权模式,0=不复权,1=前复权
price_type=1

掘金回测性能怎么样,有多快?

10年日线数据,首次回测秒级完成,后续回测毫秒级完成。掘金设计了本地高速缓存,首次回测的历史数据会被缓存起来,后续回测使用缓存数据,可以达到每秒百万笔数据的速度。

可以导出回测报告数据吗?

可以。在终端的回测报告中,可以导出策略报告的全部数据,比如回测参数、绩效指标和策略全部委托。

回测股票策略时如何处理复权、拆分、分红等变化?

在回测股票策略时,历史数据需要作前复权处理以使价格平滑,避免出现跳空,否则策略的绩效结果会失去意义。好消息是掘金已经在后台处理好了所有这些复杂细节。通过指定回测参数price_type,掘金会自动调整股票的价格为复权或不复权价,回测过程中清算、撮合、绩效计算等同时自动调整模式。编写策略完全不用考虑这些细节。price_type的设置如下:

price_type = 0 # 不复权
price_type = 1 # 前复权

回测时复权价格是如何计算得来的?

在回测模式下,当设置为参数 price_type = 1 时,掘金推送的情行价格采用定点前复权,即以回测结束时间为基点,向前做复权。假设回测中t时间点的真实价格为P[t], 复权因子为 A[t], 回测结束时间点的复权因子为A[end],那么 t时刻复权后价格:

P[t]_adj = P[t] * A[t] / A[end]

如果用户需要后复权价格,可以自行根据复权因子计算:

P[t]_adj = P[t] * A[t]

回测时复权价格为何和行情软件有差别?

因为掘金采用的是定点前复权,以设置的回测结束时间点为基点,而行情软件中一般以最新交易日为基点的,所以复权后的价格有差别。

如何模拟滑点,手续费等?

回测参数中提供滑点比率和手续费比率参数,滑点比率会影响实际交易价格,回测过程中的手续费按照手续费比率扣除。

滑点设置多少合适?

需要根据具体情况考虑,滑点跟交易品种,行情特征甚至是突发事件等相关。上交所一篇论文给出的数据是0.246%,供参考,不过需要指出的是这是2004年发表的论文。

开始仿真交易

什么是仿真交易,有什么用处?

一个符合交易所规则的高仿真交易系统,对策略的paper trading阶段至关重要,可以避免您拿真钱去试错,并且大大提高策略验证效率,让您的策略上线时成竹在胸。掘金仿真交易系统的优势:

  • 时间优先,价格优先的撮合机制
  • 委托的价格、量、时间区间等规则验证
  • 与真实行情实时撮合
  • 高度吻合实盘交易记录

仿真和实盘的结果差别大吗?

在正常交易量,忽略市场冲击的情况下,仿真交易的结果是非常接近实盘结果的。

仿真后我想实盘怎么办,要修改策略吗?

不用修改策略。仿真切换到实盘非常简单,在终端中修改策略的交易通道为实盘账号就好了。

如何接入期货商的模拟账号?可以用SimNow吗?

可以用期货商提供的模拟账号,也可以用SimNow。在交易账号中新增一个账号,配置好模拟账号或SimNow提供的地址和柜台账户信息就可以使用了。

为什么用模拟行情的最新价委托时,平台报告委托价不合法?

仿真交易都有委托价的合法性验证,其中包括委托价合法(涨跌停价区间)。模拟行情是历史行情回放,用于非交易时段调试程序为目的,历史行情的价格自然不一定符合当前委托价合法验证。

开始实盘交易

哪些市场可以实盘?

掘金目前已经支持实盘交易的市场包括:上交所,深交所,中金所,上期所,大商所,郑商所。未来将逐步支持全球主要市场。

外盘可以实盘了吗?

目前还不可以。外盘我们目前已经提供了实时行情接入,交易接通已经在进行中。

我已经有账户了,怎么开始实盘呢?

实盘账号中添加您的账户,然后配置策略关联改账户就可以了。

掘金支持子账号吗?可以多个策略交易一个账户吗?

掘金完美支持子账户。每一个策略对应一个子账户,子账户的资金、持仓和绩效都是独立核算。多个策略可以交易一个实盘柜台账户,这样可以非常方便的分配资金到多个策略。

策略账号与柜台账户的资金有误差,怎么办?

策略子账户的资金和持仓有误差,或用户希望手动调整策略的资金和持仓时,可以使用终端的持仓调整出入金功能,轻松调整策略的数据;另外,终端还提供了强大的一键同步功能,自动检测策略账户和柜台账户的差异并同步数据。

可以限制策略子账户使用的资金量吗?

可以。策略的子账户可以单独出入金,策略使用资金量如果超出设定的上限,尝试开仓时会自动被拒绝。

启动风险控制

掘金支持什么风控功能?

完备的风控是交易安全的基础,掘金机构版提供了强大的实时风控功能,支持基于指标、交易市场与标的、仓位的3大类风控规则,并自动限仓、自动强平、实时告警。支持事后分析风控日志。

风控性能怎么样?比如触发强平规则时多久能响应?

掘金高度优化了风控规则的判断引擎,一组规则几个微秒就可以完成判断,我们有的用户的使用场景需要同时监控近200+账户,掘金仍然流畅响应。触发强平规则时,系统在毫秒级自动强平仓位。

风控会影响下单效率吗?

不会,风控对下单的效率影响基本可以忽略不计。

策略信号分析

是什么信号分析?

掘金提供策略信号分析功能,通过策略信号与分时线/K线对比,以图形化的方式,方便地判断策略逻辑是否符合预期,买卖点是否准确,从而优化策略。

可以在分时线上实时监控策略信号吗?

可以。掘金支持实时信号监控,策略的买卖点显示在当前行情的分时线上,并可以叠加多个代码的行情作对比分析。

可以在K线上回溯历史交易信号吗?

可以。

信号分析时,可以叠加其代码或指数的行情吗?

可以。支持叠加其它代码或指数作为benchmark对比分析。