繁簡切換您正在訪問的是FX168財經網,本網站所提供的內容及信息均遵守中華人民共和國香港特別行政區當地法律法規。

FX168财经网>人物频道>帖子

handle_data函数移植中的注意事项:data对象

作者/44444 2019-08-25 20:00 0 来源: FX168财经网人物频道

在目前新版的聚宽教程中,推荐使用run_daily(自定义函数,频率)来替代原来的handle_data(context,data)函数
推荐的示例如下:

def initialize(context):
    run_daily(period,time='every_bar')
    g.security = '000001.XSHE'

def period(context):
    order(g.security, 100)

我们在参考社区里面的老的策略代码的时候,还有一些策略使用的是老的框架结构。如果想借用原来handle_data中的逻辑,放到自己定义的函数中,就会碰到对data对象引用的问题。

def period(context,data):在编译运行时会碰到下面的报错:
TypeError: period() missing 1 required positional argument: 'data'

考虑到data对象的属性在get_price()返回的对象中都有,几个基本的属性和get_current_data()得到的对象属性类似,可以采取下列办法

def period(context):
    current_data = get_current_data()   #用get_current_data()或者get_price()的返回对象来替代data对象
    # 得到当前价格
    #price = data[security].price    #data对象中的当前价用的是price
    price = current_data[security].last_price    #get_current_data()返回的对象中,当前价用的是last_price
    ......
    order(g.security, 100)

就是用get_current_data()或者get_price()的返回对象来替代data对象,注意两种对象的引用方式和属性名称不完全一致,因此要对相关的语句做适当的修改。

get_current_data() 详见API中的get_current_data
返回值是一个dict, 其中 key 是股票代码, value 是拥有如下属性的对象
last_price : 最新价
high_limit: 涨停价
low_limit: 跌停价
paused: 是否停止或者暂停了交易, 当停牌、未上市或者退市后返回 True
is_st: 是否是 ST(包括ST, ST),是则返回 True,否则返回 False
day_open: 当天开盘价
name: 股票现在的名称, 可以用这个来判断股票当天是否是 ST,
ST, 是否快要退市
industry_code: 股票现在所属行业代码

get_price()用起来相对复杂一些,参数比较多,返回信息也多。详细情况见API中的get_price:
get_price(security, start_date=None, end_date=None, frequency='daily', fields=None, skip_paused=False, fq='pre', count=None)

返回值支持SecurityUnitData里面的所有基本属性,,包含:['open', 'close', 'low', 'high', 'volume', 'money', 'factor', 'high_limit','low_limit', 'avg', 'pre_close', 'paused'],其中paused为1表示停牌。

API中对于data对象的说明见API中的SecurityUnitData:
SecurityUnitData data对象

不知道大家有什么更好的办法?

分享到:
举报财经168客户端下载

全部回复

0/140

投稿 您想发表你的观点和看法?

更多人气分析师

  • 张亦巧

    人气2144文章4145粉丝45

    暂无个人简介信息

  • 梁孟梵

    人气2152文章3177粉丝39

    qq:2294906466 了解群指导添加微信mfmacd

  • 指导老师

    人气1856文章4423粉丝52

    暂无个人简介信息

  • 李冉晴

    人气2296文章3821粉丝34

    李冉晴,专业现贷实盘分析师。

  • 刘钥钥1

    人气2016文章3119粉丝34

    专业从事现货黄金、现货白银模似实盘操作分析指导

  • 张迎妤

    人气1896文章3305粉丝34

    个人专注于行情技术分析,消息面解读剖析,给予您第一时间方向...

  • 金泰铬J

    人气2320文章3925粉丝51

    投资问答解咨询金泰铬V/信tgtg67即可获取每日的实时资讯、行情...

  • 金算盘

    人气2696文章7761粉丝125

    高级分析师,混过名校,厮杀于股市和期货、证券市场多年,专注...

  • 金帝财神

    人气4728文章8329粉丝118

    本文由资深分析师金帝财神微信:934295330,指导黄金,白银,...