哪家券商有量化api接口?不会python编程可以使用量化软件交易吗?

Connor 欧意交易平台 2024-09-25 84 0

哪家券商有量化api接口?不会python编程可以使用量化软件交易吗?

after_trading_end(可选)

after_trading_end(context, data)

使用场景

该函数仅在回测、交易模块可用

接口说明

该函数会在每天交易结束之后调用,用于处理每天收盘后的操作,如无盘后处理需求,该函数可以在策略中不做定义。

注意事项:

哪家券商有量化api接口?不会python编程可以使用量化软件交易吗?

参数

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处理需求,该函数可以在策略中不做定义。

注意事项:

哪家券商有量化api接口?不会python编程可以使用量化软件交易吗?

哪家券商有量化api接口?不会python编程可以使用量化软件交易吗?

参数

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的使用和开通指南,感兴趣的投资者可以提前关注私信评论一起交流学习哦!

评论