哪家券商有量化api接口?不会python编程可以使用量化软件交易吗?
after_trading_end(可选)
after_trading_end(context, data)
使用场景
该函数仅在回测、交易模块可用
接口说明
该函数会在每天交易结束之后调用,用于处理每天收盘后的操作,如无盘后处理需求,该函数可以在策略中不做定义。
注意事项:
参数
context: Context对象,存放有当前的账户及持仓信息;
展开全文
data:保留字段暂无数据;
返回
None
示例
def initialize(context):
#g为全局变量
g.security = '600570.SS'
set_universe(g.security)
def handle_data(context, data):
order('600570.SS',100)
def after_trading_end(context, data):
log.info(g.security)
tick_data(可选)
tick_data(context, data)
使用场景
该函数仅交易模块可用
接口说明
该函数可以用于处理tick级别策略的交易逻辑,每隔3秒执行一次,如无tick处理需求,该函数可以在策略中不做定义。
注意事项:
参数
context: Context对象,存放有当前的账户及持仓信息;
data: 一个字典(dict),key为对应的标的代码(如:'600570.SS'),value为一个字典(dict),包含order(逐笔委托)、tick(当前tick数据)、transcation(逐笔成交)三项
结构如下:
{'股票代码':
'order(最近一条逐笔委托)':DataFrame/None,
'tick(当前tick数据)':DataFrame,
'transcation(最近一条逐笔成交)':DataFrame/None,
每项具体介绍:
order - 逐笔委托对应DataFrame包含字段:
business_time:时间戳毫秒级
hq_px:价格
business_amount:委托量
order_no:委托编号
business_direction:委托方向
0 – 卖;
1 – 买;
2 – 借入;
3 – 出借;
trans_kind:委托类别
1-- 市价委托;
2 -- 限价委托;
3 -- 本方最优;
tick - tick数据对应DataFrame包含字段:
amount:持仓量
avg_px:均价
bid_grp:买档位,dict类型,内容如:{1:[42.71,200,0],2:[42.74,200,0],3:[42.75,700,...,以档位为Key,以list为Value,每个Value包含:委托价格、委托数量和委托笔数;
business_amount:成交数量;
business_amount_in:内盘成交量;
business_amount_out:外盘成交量
business_balance:成交金额;
business_count:成交笔数;
circulation_amount:流通股本;
close_px:今日收盘
current_amount:最近成交量(现手);
down_px:跌停价格;
end_trade_date:最后交易日
entrust_diff:委差;
entrust_rate:委比;
high_px:最高价;
hsTimeStamp:时间戳,格式为YYYYMMDDHHMISS,如20170711141612,表示2017年7月11日14时16分12秒的tick数据信息;
issue_date:上市日期
last_px:最新成交价;
low_px:最低价;
offer_grp:卖档位,dict类型,内容如:{1:[42.71,200,0],2:[42.74,200,0],3:[42.75,700,...,以档位为Key,以list为Value,每个Value包含:委托价格、委托数量和委托笔数;
open_px:今开盘价;
pb_rate:市净率;
pe_rate:动态市盈率;
preclose_px:昨收价;
prev_settlement:昨结算
px_change_rate: 涨跌幅
settlement:结算价
start_trade_date:首个交易日
tick_size:最小报价单位
total_bid_turnover: 委买金额
total_bidqty: 委买量
total_offer_turnover: 委卖金额
total_offerqty: 委卖量
trade_mins:交易时间,距离开盘已过交易时间,如100则表示每日240分钟交易时间中的第100分钟;
trade_status:交易状态;
START -- 市场启动(初始化之后,集合竞价前)
PRETR -- 盘前
OCALL -- 开始集合竞价
TRADE -- 交易(连续撮合)
HALT -- 暂停交易
SUSP -- 停盘
BREAK -- 休市
POSTR -- 盘后
ENDTR -- 交易结束
STOPT -- 长期停盘,停盘n天,n>=1
DELISTED -- 退市
POSMT -- 盘后交易
PCALL -- 盘后集合竞价
INIT -- 盘后固定价格启动前
ENDPT -- 盘后固定价格闭市阶段
POSSP -- 盘后固定价格停牌
turnover_ratio:换手率
up_px:涨停价格;
vol_ratio:量比;
wavg_px:加权平均价;
transcation - 逐笔成交对应DataFrame包含字段:
business_time:时间戳毫秒级;
hq_px:价格;
business_amount:成交量;
trade_index:成交编号;
business_direction:成交方向;
0 – 卖;
1 – 买;
buy_no: 叫买方编号;
sell_no: 叫卖方编号;
trans_flag: 成交标记;
0 – 普通成交;
1 – 撤单成交;
trans_identify_am: 盘后逐笔成交序号标识;
0 – 盘中;
1 – 盘后;
channel_num: 成交通道信息;
返回
None
示例
def initialize(context):
g.security = '600570.SS'
set_universe(g.security)
def tick_data(context,data):
# 获取买一价
security = g.security
current_price = eval(data[security]['tick']['bid_grp'][0])[1][0]
log.info(current_price)
# 获取买二价
# current_price = eval(data[security]['tick']['bid_grp'][0])[2][0]
# 获取买三量
# current_amount = eval(data[security]['tick']['bid_grp'][0])[3][1]
# 获取tick最高价
# current_high_price = data[security]['tick']['high_px'][0]
# 最近一笔逐笔成交的成交量
# transaction = data[security]["transcation"]
# business_amount = list(transaction["business_amount"])
# if len(business_amount) > 0:
# log.info("最近一笔逐笔成交的成交量:%s" % business_amount[0])
# 最近一笔逐笔委托的委托类别
# order = data[security]["order"]
# trans_kind = list(order["trans_kind"])
# if len(trans_kind) > 0:
# log.info("最近一笔逐笔委托的委托类别:%s" % trans_kind[0])
if current_price > 38.19:
# 按买一档价格下单
order_tick(security, 100, 1)
def handle_data(context, data):
pass
后续小编会持续更新关于量化ptrade的使用和开通指南,感兴趣的投资者可以提前关注私信评论一起交流学习哦!
评论