聚宽量化笔记一

1. 一些重点说明

1).  panel类型数据(目前能用,官网说以后升级pandes2.5后要废除panel=True):

pa=get_price(['000001.XSHE','000002.XSHE','000004.XSHE'],start_date='2016-02-01',
end_date='2016-02-04',fields=['open','high','low','close'],panel=True)

tanel=True(默认): 三维数据 1.字段open等;2.日期;3.代码

pa[ : , : , '000001.XSHE' ] :000001的字段与日期二维。其它类推。【字段,日期,代码】

pa【'字段'】【‘代码’】【日期】:注意:与上面不一样的取数方法。?

2. 一些常用语法:

stocks = [x for x in list_a if x in list_b]      #[list_a有、且 list_b也有]
stocks = [x for x in list_a if x not in list_b]  #[list_a有、   list_b没有]
stocks = [x for x in a if  x in b  and x in c]   #[a,b,c都有的]
stocks = [x for x in a if (x in b) if  x in c]   #[a,b,c都有的]

date_now=(context.current_dt+timedelta(days=-1)).strftime("%Y-%m-%d") #获取昨天日期 &&&

3. 一些重要函数:

#获取二日期之间交易日期(数组array类型)
trade_date = get_trade_days(start_date=开始日期, end_date=结束日期, count=None前N日)

#获取回测当时的时间
1).time_bs = context.current_dt.strftime('%H:%M:%S')  #str类型
time_bs = context.current_dt.time()                   #元组类型
#获取回测当时的前一交易日日期
pre_d = context.previous_date  
#获取PC系统日期 时间
time_sys = datetime.datetime.now().strftime('%y-%m-%d %H:%M:%S')
#str--> 时间格式
2).aday_one = datetime.datetime.strptime('09:40:00', '%H:%M:%S').strftime('%H:%M:%S')  
只有1)与2)可是时间比较大小,与字符串如‘09:30:00’比较会出错

hour = context.current_dt.hour        #回测当时的小时 int
minute = context.current_dt.minute    #回测溝的分钟 int

4. 事件触发函数

#开盘前9:00运行一次
run_daily(before_market_open_all, time='before_open', reference_security='000300.XSHG')
# 每个bar开盘第一秒运行一次
run_daily(market_open, time='every_bar', reference_security='000300.XSHG')
#收盘后15.30运行一次
run_daily(after_market_close, time='after_close', reference_security='000300.XSHG')

4. 用户需要实现的函数:

initialize:             初始函数,整个程序初始函数只调用一次,初始函数用来定义一直股票等。

handle_data:      每个单位时间调用一次,由事件触发,交易条件就放在handle_data中。

before_trading_start:每天交易前调用一次。

after_trading_end:    每天结束交易后调用一次。

process_initialize:     回测进程重启时执行(initialize之后)

after_code_change:  若代码发生改变,则会执行这个函数(模拟盘)

获取数据函数:

get_price:                获取历史数据

history:                    获取历史数据

attribute_history:     获取历史数据

get_current_data:   获取当前时间

get_extras:             获取基金净值/期货估算结算价

get_fundamentals: 查询财务数据

gta.run_query:      更多财务及宏观数据

get_index_stocks:获取指数股份

get_industry_stocks:获取概念成分

get_concept_stocks:获取所有标的信息,取平台支持的所有股票、基金、指数、期货信息

get_security_info:    获取单个标的信息

新增了 jqdata 模块用来提供更多数据, 如果要使用下面的 API 请先导入 jqdata 模块,

jqdata.all_trade_days:获取所有交易日,  返回一个包含所有交易日的 numpy.ndarray, 每个元素为一个 datetime.date 类型.

jqdata.get_trade_days:获取指定日期范围内的所有交易日, 返回 numpy.ndarray

?jqdata.get_trade_days:获取资金流信息

下单函数:

order('000001.XSHE', 100)                 按股数下单:  买入100。-100为卖出

order_target('000001.XSHE', 0)         目标股数下单: 最终持仓0股

order_value('000001.XSHE', 500)      按市值下单:  买入500元。-500为卖出

order_target('000001.XSHE', 500)     目标市值下单: 最终市值500元

cancel_order:        撤单

get_open_orders: 获取未完成订单

get_orders:           获取订单信息

get_trades:           获取成交信息

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值