关于掘金平台

什么是掘金量化平台?

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

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

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

掘金量化平台由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
港交所, 市场代码 HKSE
纽约商品交易所, 市场代码 CMX (GLN, SLN)
伦敦国际石油交易所, 市场代码 IPE (OIL, GAL)
纽约商业交易所, 市场代码 NYM (CON, HON)
芝加哥商品期货交易所,市场代码 CBT (SOC, SBC, SMC, CRC)
纽约期货交易所,市场代码 NYB (SGN)
  • 推送数据:
上交所、深交所: Tick, 30秒/1分/5分/15分/30分/60分 Bar数据
国内期货: Tick, 15秒/30秒/1分/5分/15分/30分/60分 Bar数据
港交所和外盘期货: Tick
历史行情数据
  • 股票行情
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对比分析。