ptrade如何获取逐笔成交?L2可以免费用吗?
还有疑问,立即追问>

炒股入口

ptrade如何获取逐笔成交?L2可以免费用吗?

叩富问财 浏览:71 人 分享分享

1个回答
咨询TA
首发回答

ptrade获取逐笔成交主要是开通实盘量化交易的权限,获取数据通过相关API接口调取,以下提供具体的获取代码,供参考,另外,大部分券商L2是不支持免费用,需要单独付费,但仔细寻找,还是有券商能免费提供,详询可以添加右上角微信,一对一解决你的问题。

get_individual_transaction - 获取逐笔成交行情
get_individual_transaction(stocks=None, data_count=50, start_pos=0, search_direction=1, is_dict=False)
使用场景
该函数在交易模块可用

接口说明
该接口用于获取当日逐笔成交行情数据。

注意事项:

沪深市场都有逐笔成交数据。
逐笔委托,逐笔成交数据需开通level2行情才能获取到数据,否则无数据返回。
当策略入参is_dict为True时返回的数据类型为dict,返回dict类型数据的速度比(python3.11版本支持)DataFrame,(python3.5版本支持)Panel类型数据有大幅提升。
参数
stocks: 默认为当前股票池中代码列表(list[str]);

data_count: 数据条数,默认为50,最大为200(int);

start_pos: 起始位置,默认为0(int);

search_direction: 搜索方向(1向前,2向后),默认为1(int);

is_dict: 返回类型(False-(python3.11版本支持)DataFrame,(python3.5版本支持)Panel; True-dict),默认为False;

返回
dict类型
正常返回dict类型数据,异常时返回None(NoneType)。

返回的数据格式如下:

{股票代码(str): [[时间戳毫秒级(int), 价格(float), 成交数量(int), 成交编号(int), 成交方向(int), 叫买方编号(int), 叫卖方编号(int), 成交标记(int), 盘后逐笔成交序号标识(int), 成交通道信息(int)], ...], "fields": ["business_time", "hq_px", "business_amount", "trade_index", "business_direction", "buy_no", "sell_no", "trans_flag", 'trans_identify_am", "channel_num"]}

{"600570.SS": [[20220913111141472, 36.47, 100, 3286989, 1, 5807243, 5804930, 0, 0, 2], ...], "fields": ["business_time", "hq_px", "business_amount", "trade_index", "business_direction", "buy_no", "sell_no", "trans_flag", 'trans_identify_am", "channel_num"]}

非dict类型
默认返回(python3.11版本支持)DataFrame,(python3.5版本支持)Panel类型,入参is_dict为True时返回dict类型。

1.(仅python3.11版本支持)DataFrame类型类型,异常时返回None(NoneType)
输出字段如下所示:

code: 代码(str);
business_time: 时间戳毫秒级(int);
hq_px: 价格(float);
business_amount: 成交数量(int);
trade_index: 成交编号(int);
business_direction: 成交方向(int);
buy_no: 叫买方编号(int);
sell_no: 叫卖方编号(int);
trans_flag: 成交标记(int);
trans_identify_am: 盘后逐笔成交序号标识(int);
channel_num: 成交通道信息(int);
2.(仅python3.5版本支持)正常返回Pandas.panel对象,异常时返回None(NoneType)
Items axis: 股票代码列表(str);

Major_axis axis: 数据索引为自然数列(DataFrame);

Minor_axis axis: 包含以下信息:

business_time: 时间戳毫秒级(str:numpy.int64);
hq_px: 价格(str:numpy.float64);
business_amount: 成交数量(str:numpy.int64);
trade_index: 成交编号(str:numpy.int64);
business_direction: 成交方向(str:numpy.int64);
buy_no: 叫买方编号(str:numpy.int64);
sell_no: 叫卖方编号(str:numpy.int64);
trans_flag: 成交标记(str:numpy.int64);
trans_identify_am: 盘后逐笔成交序号标识(str:numpy.int64);
channel_num: 成交通道信息(str:numpy.int64);
示例
def initialize(context):
g.security = "000001.SZ"
set_universe(g.security)

def before_trading_start(context, data):
g.flag = False

def handle_data(context, data):
if not g.flag:
# 获取当前股票池逐笔成交数据
transaction = get_individual_transaction()
log.info(transaction)
# 获取指定股票列表逐笔成交数据
transaction = get_individual_transaction(["000002.SZ", "000032.SZ"])
log.info(transaction)
# 获取成交量
if transaction is not None:
business_amount = transaction.query('code in ["000002.SZ"]')["business_amount"]
log.info("逐笔数据的成交量为:%s" % business_amount)

# 返回字典类型数据
transaction = get_individual_transaction([g.security], is_dict=True)
log.info("逐笔成交数据为:%s" % transaction)
g.flag = True

发布于2025-5-20 20:24 西安

当前我在线 直接联系我
收藏 分享 追问
举报
问题没解决?向金牌答主提问, 最快30秒获得解答! 立即提问
同城推荐 更多>
  • 咨询

    好评 271 浏览量 1102万+

  • 咨询

    好评 235 浏览量 68万+

  • 咨询

    好评 2.8万+ 浏览量 116万+

相关文章
回到顶部