vn.py量化社区
By Traders, For Traders.
Member
avatar
加入于:
帖子: 213
声望: 49

K线的种类可以这样划分:

按K线周期长度:

  • 1 常规周期K线
  • 2 自定义K周期线

按K线参考起始时间划分:

  • 1 等自然时长K线
  • 2 等交易时长K线
    • 1)参考交易日起点的等交易时长K线
    • 2)参考日盘起点和夜盘起点的等交易时长K线
    • 3)参考合约上市日起点的等交易时长K线

一、按照K线周期划分

  • 1 常规周期K线:如1,5,10,15,20,30分钟K线,1,2,4小时K线,日K线,周K线、月K线,年K线等。它们通常在常见的金融终端的GUI界面都会出现。因为是常规周期K线,为了加快软件的加载、显示和速度,常常把它们直接在服务器的数据库中做存储。这样做的好处是K线数据的处理和加载简单,显示速度快,缺点是需要为每个用户可能用到的周都准备一个表。
  • 2 自定义周期K线:在常规周期之外,用户自定义时间周期的K线,如7,19分钟周期K线。

VNPY对常规周期K线和自定义周期K线的处理是一视同仁的,统一使用BarGenerator()就可以了,它只使用1分钟K线数据,根据需要产生N分钟K线,至于产生出来是常规周期K线,还是自定义周期K线,主要看N是多少了。这样做的好处是自由!缺点是处理复杂些、速度慢些(不过反正不用手工处理,让计算机做,无所谓)。

二、按K线起始时间的参考起点划分

1 等自然时长K线

它是按照自然时间来计算一根K线是否结束的。如对于30分钟K线,rb2010合约在每个交易日都会产生这样的一组K线:
起止时间 交易时长
21:00-21:30——30分钟
21:30-22:00——30分钟
22:00-22:30——30分钟
22:30-23:00——30分钟
23:00-23:30——30分钟
09:00-09:30——30分钟
09:30-10:00——30分钟
10:00-10:30——15分钟(?)
10:30-11:00——30分钟
11:00-11:30——30分钟
13:30-14:00——30分钟
14:00-14:30——30分钟
14:30-15:00——30分钟
目前vnpy的BarGenerator()就是这种K线参考机制。优点点是实现简单,无需考虑交易时段;缺点是明天都会有特别30分钟K是个另类:10:00-10:30的K线,其实只交易了15分钟!

2 等交易时长K线

熟悉文华财经8.3的应该熟悉下图的设置:
description

1)参考交易日起点

以合约的日交易时间的起点为参考,然后以等交易时间宽度产生K线。如文华财经的常规周期K线划分中的 “交易时间机制”就是这种情况。
如RB2010交易时间段:'21:00-23:00,09:00-10:15,10:30-11:30,13:30-15:00'。以交易日起点方式的30分钟K线分别是
起止时间 交易时长
21:00-21:30——30分钟
21:30-22:00——30分钟
22:00-22:30——30分钟
22:30-23:00——30分钟
23:00-23:30——30分钟
09:00-09:30——30分钟
09:30-10:00——30分钟
10:00-10:45——30分钟
10:45-11:15——30分钟
11:15-11:45——30分钟
13:45-14:15——30分钟
14:15-14:45——30分钟
14:45-15:00——15分钟(?)

这种K线时间参考机制的优点是不会模糊每日开市时的跳空行情,缺点是每日都可能产生一根交易时间不足30分钟的K线。

2)参考日盘起点和夜盘起点

分别以合约的日盘交易时间起点和夜盘交易时间起点为参考,然后以等交易时间宽度产生K线。如文华财经的常规周期K线划分中的 “交易时间机制改进型”就是这种情况。
如RB2010交易时间段:夜盘:'21:00-02:30, 日盘:09:00-10:15,10:30-11:30,13:30-15:00'。以交易日起点方式的60分钟K线分别是
夜盘K线:
起止时间 交易时长
21:00-22:00——60分钟
22:00-23:00——60分钟
23:00-00:00——60分钟
00:00-01:00——60分钟
01:00-02:00——60分钟
02:00-02:30——30分钟(?)
日盘K线:
起止时间 交易时长
09:00-10:00——60分钟
10:00-11:15——60分钟
11:15-11:15——60分钟
11:15-14:15——60分钟
14:15-15:00——45分钟(?)
这种K线时间参考机制的优点是不会模糊各种日盘和夜盘开市时的跳空行情,缺点是每日都可能产生交易时长不足60分钟的K线。

3)参考合约上市日起点

以合约上市日的交易时间起点为参考,取出节假日,考虑交易时段,然后以等交易时间宽度产生K线。如FixedBarGenerator对N分钟K线的处理就是这种情况。FixedBarGenerator的原理参见具体实现代码参见在前面的帖子里面已经描述得比较清楚了,这里不再重复。

参考合约上市日起点、等交易时间的好处是:所有的K线的交易时长都是想等的,它们的成交量是可类比的。因为交易时长不等的K线产生的所谓“地量”或者“天量”,有多大意义是可想而知的。这种K线产生机制的缺点是:可能产生跨交易日,跨日盘和夜盘的K线,这样可能造成观察不到交易日开盘跳空,日盘和夜盘开市时的跳空现象,因为可能那根K线还没有结束。

对声称“三行代码搞定国内期货10:15-10:30的K线“的看法:

总有人声称“三行代码搞定国内期货10:15-10:30的K线“,并且上了精华版。三行代码可以搞定?那只是按下葫芦起了瓢的解决方法。
同样是国内期货,IF就没有这样的休市时间段,难倒你都要有这么做?自定义周期7分钟,19分钟K线你有怎么办?还有 再说了,就是改也最好是对BarGenerator扩展定制一个新的K线生成器,二不能直接修改BarGenerator的代码,修改它会导致在不同的合约、某些周期长度上出错,而你却浑然不知!
举例下面这些合约,都是没有10:15-10:30休市时间段的

合约代码:IC2008 名称:中证500指数2008 交易时间段:09:31-11:30,13:01-15:00
合约代码:IC888 名称:中证主力连续价差平滑 交易时间段:09:31-11:30,13:01-15:00
合约代码:IC99 名称:中证指数连续 交易时间段:09:31-11:30,13:01-15:00
合约代码:IC2009 名称:中证500指数2009 交易时间段:09:31-11:30,13:01-15:00
合约代码:IC2103 名称:中证500指数2103 交易时间段:09:31-11:30,13:01-15:00
合约代码:IC88A3 名称:中证次次主力连续 交易时间段:09:31-11:30,13:01-15:00
合约代码:IC88 名称:中证主力连续 交易时间段:09:31-11:30,13:01-15:00
合约代码:IC889 名称:中证主力连续价差平滑(后复权) 交易时间段:09:31-11:30,13:01-15:00
合约代码:IC2012 名称:中证500指数2012 交易时间段:09:31-11:30,13:01-15:00
合约代码:IC88A2 名称:中证次主力连续 交易时间段:09:31-11:30,13:01-15:00
合约代码:IF888 名称:沪深主力连续价差平滑 交易时间段:09:31-11:30,13:01-15:00
合约代码:IF2009 名称:IF2009 交易时间段:09:31-11:30,13:01-15:00
合约代码:IF2103 名称:IF2103 交易时间段:09:31-11:30,13:01-15:00
合约代码:IF2012 名称:IF2012 交易时间段:09:31-11:30,13:01-15:00
合约代码:IF889 名称:沪深主力连续价差平滑(后复权) 交易时间段:09:31-11:30,13:01-15:00
合约代码:IF2008 名称:IF2008 交易时间段:09:31-11:30,13:01-15:00
合约代码:IF88A2 名称:沪深次主力连续 交易时间段:09:31-11:30,13:01-15:00
合约代码:IF88 名称:沪深主力连续 交易时间段:09:31-11:30,13:01-15:00
合约代码:IF88A3 名称:沪深次次主力连续 交易时间段:09:31-11:30,13:01-15:00
合约代码:IF99 名称:沪深指数连续 交易时间段:09:31-11:30,13:01-15:00
合约代码:IH2103 名称:上证50指数2103 交易时间段:09:31-11:30,13:01-15:00
合约代码:IH88 名称:上证主力连续 交易时间段:09:31-11:30,13:01-15:00
合约代码:IH888 名称:上证主力连续价差平滑 交易时间段:09:31-11:30,13:01-15:00
合约代码:IH2012 名称:上证50指数2012 交易时间段:09:31-11:30,13:01-15:00
合约代码:IH2009 名称:上证50指数2009 交易时间段:09:31-11:30,13:01-15:00
合约代码:IH2008 名称:上证50指数2008 交易时间段:09:31-11:30,13:01-15:00
合约代码:IH88A3 名称:上证次次主力连续 交易时间段:09:31-11:30,13:01-15:00
合约代码:IH88A2 名称:上证次主力连续 交易时间段:09:31-11:30,13:01-15:00
合约代码:IH889 名称:上证主力连续价差平滑(后复权) 交易时间段:09:31-11:30,13:01-15:00
合约代码:IH99 名称:上证指数连续 交易时间段:09:31-11:30,13:01-15:00
合约代码:T2009 名称:10年期国债2009 交易时间段:09:31-11:30,13:01-15:15
合约代码:T888 名称:年期国债主力连续价差平滑 交易时间段:09:31-11:30,13:01-15:15
合约代码:T889 名称:年期国债主力连续价差平滑(后复权) 交易时间段:09:31-11:30,13:01-15:15
合约代码:T99 名称:年期国债指数连续 交易时间段:09:31-11:30,13:01-15:15
合约代码:T88 名称:年期国债主力连续 交易时间段:09:31-11:30,13:01-15:15
合约代码:T2012 名称:10年期国债2012 交易时间段:09:31-11:30,13:01-15:15
合约代码:T2103 名称:10年期国债2103 交易时间段:09:31-11:30,13:01-15:15
合约代码:TF2009 名称:5年期国债2009 交易时间段:09:31-11:30,13:01-15:15
合约代码:TF2012 名称:5年期国债2012 交易时间段:09:31-11:30,13:01-15:15
合约代码:TF88 名称:年期国债主力连续 交易时间段:09:31-11:30,13:01-15:15
合约代码:TS888 名称:年期国债主力连续价差平滑 交易时间段:09:31-11:30,13:01-15:15
合约代码:TF889 名称:年期国债主力连续价差平滑(后复权) 交易时间段:09:31-11:30,13:01-15:15
合约代码:TF99 名称:年期国债指数连续 交易时间段:09:31-11:30,13:01-15:15
合约代码:TF888 名称:年期国债主力连续价差平滑 交易时间段:09:31-11:30,13:01-15:15
合约代码:TF2103 名称:5年期国债2103 交易时间段:09:31-11:30,13:01-15:15
合约代码:TS2012 名称:2年期国债2012 交易时间段:09:31-11:30,13:01-15:15
合约代码:TS889 名称:年期国债主力连续价差平滑(后复权) 交易时间段:09:31-11:30,13:01-15:15
合约代码:TS99 名称:年期国债指数连续 交易时间段:09:31-11:30,13:01-15:15
合约代码:TS88 名称:年期国债主力连续 交易时间段:09:31-11:30,13:01-15:15
合约代码:TS2009 名称:2年期国债2009 交易时间段:09:31-11:30,13:01-15:15
合约代码:TS2103 名称:2年期国债2103 交易时间段:09:31-11:30,13:01-15:15

总结:

鱼和熊掌不可兼得,每种K线产生机制都有优点和缺点,至于您选择哪一种来产生你的K线,就看你的取舍了。明白与不明白个中的道理却是大相径庭的,所谓胸有成竹,才能够临危不乱。谨以本贴分享本人的一点浅薄之见,希望能够帮助到您!

Administrator
avatar
加入于:
帖子: 4661
声望: 266

给你加个精华

Member
avatar
加入于:
帖子: 33
声望: 0

请问CTA策略代码里 月线是不是只能用周线合成呀?

Member
avatar
加入于:
帖子: 213
声望: 49

Emrys图南 wrote:

请问CTA策略代码里 月线是不是只能用周线合成呀?
请参考这个帖子:
https://www.vnpy.com/forum/topic/4318-ye-xu-ni-bu-hui-shi-yong-bargeneratorchuang-jian-ri-kxian-zhou-kxian-yue-kxian

Member
avatar
加入于:
帖子: 4
声望: 0

学习了,面对那个三行解决办法我也是挺无语

Member
avatar
加入于:
帖子: 22
声望: 2

学习了,大佬,有没有一个上海、大连、郑州三家商品期货交易所K线的解决方案?

© 2015-2019 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号-3

沪公网安备 31011502017034号