金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 769|回复: 6

如何在python的api接口中,获取k线位置/编号的信息

[复制链接]

3976

主题

4045

帖子

4070

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2024-5-6 13:45 | 显示全部楼层 |阅读模式
请教:如何在python的api接口中,获取k线位置/编号的信息
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2024-5-6 13:54 | 显示全部楼层
没有现成的,需要自己实现逻辑的。

如果是当日的序号:
一般是这样,用history_bars_date  函数获取当天的数据,直接看下当前数据长度即可.获取数据时候 注意设置 include_now=True.    而且还有拼凑一个当日的开始和结束日期和时间,这个可以按照下面这样处理:

    #获取基准合约最新行情日期
    context.current_date = datetime.strptime(str(int(get_dynainf(context.run_info.base_book_id,229)+19000000)), "%Y%m%d")
    begin_time = time(0, 0, 0)
    end_time = time(19, 0, 0)
    context.current_begin_date = context.current_date.replace(hour=begin_time.hour, minute=begin_time.minute, second=begin_time.second)   
    context.current_end_date = context.current_date.replace(hour=end_time.hour, minute=end_time.minute, second=end_time.second)


用上面获取的开始和结束时间 来执行 history_bars_date   从而获取仅当日的数据.



  
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

13

主题

84

帖子

84

积分

Rank: 4

等级: 专业版

注册:
2024-4-29
曾用名:
发表于 2024-5-6 14:08 | 显示全部楼层
这还只是获取当日的序号,如果是获取全部历史数据的第一个k线呢?我看pel语言里有个BARPOS,但是在纯python策略中就无法使用了。建议在history_bars或者history_bars_date中增加这个数据字段,这个字段是经常用的。目前我的实盘策略在初始化的时候就需要这个数据
回复

使用道具 举报

34

主题

9006

帖子

5万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2024-5-6 15:55 | 显示全部楼层
最是人间留不住 发表于 2024-5-6 14:08
这还只是获取当日的序号,如果是获取全部历史数据的第一个k线呢?我看pel语言里有个BARPOS,但是在纯python ...

python是自己控制获取数据量的,其数据位置本身就是其下标。

python的用途主要是借助第三方库实现一些算法层面上的处理。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

13

主题

84

帖子

84

积分

Rank: 4

等级: 专业版

注册:
2024-4-29
曾用名:
发表于 2024-5-6 17:01 | 显示全部楼层
为了效率和速度,一般不会把历史数据全都放到一个列表里,而是会直接取最近n个k线来计算,例如算10日均线,bar_count就取10,但是可能总体数据有10万个k线,这时候读取k线位置就很有必要了
截图202405061657293022.png
回复

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2024-5-7 08:57 | 显示全部楼层
按照你这个思路 我们几乎需要把所有周期的所有历史数据都重新做一次, 这几乎是不可能做的事情。

目前不会考虑这样做,需求面极小.
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

13

主题

84

帖子

84

积分

Rank: 4

等级: 专业版

注册:
2024-4-29
曾用名:
发表于 2024-5-7 16:04 | 显示全部楼层
ok,原以为只是多增加一个传给python的字段,没想到这么复杂,那我用变量count一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2024-11-16 04:41 , Processed in 0.251866 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表