问题描述
/
解决方案
在 ptrade 量化交易平台中,调用 get_snapshot 接口获取实时行情快照时,返回的数据字典中包含了 business_amount_in(内盘成交量)和 business_amount_out(外盘成交量)两个重要字段。这两个概念源于传统的股票盘口分析,主要用于衡量市场的主动买卖力量:\n\n### 1. business_amount_in:内盘成交量\n* 定义:内盘是指以买入价(买方报价)成交的交易数量。\n* 含义:当成交价为买入价时,说明卖方急于脱手,愿意以买方较低的报价直接成交。这被称为“主动性卖出”。\n* 市场信号:内盘成交量大,通常意味着市场抛压较重,卖方力量占据主导。\n\n### 2. business_amount_out:外盘成交量\n* 定义:外盘是指以卖出价(卖方报价)成交的交易数量。\n* 含义:当成交价为卖出价时,说明买方急于买入,愿意以卖方较高的报价直接成交。这被称为“主动性买入”。\n* 市场信号:外盘成交量大,通常意味着市场买盘积极,买方力量占据主导。\n\n### 在量化策略中的应用\n通过对比内盘和外盘的大小,量化策略可以判断当前股票的多空力量对比:\n* 外盘 > 内盘:主动买入多于主动卖出,股价看涨情绪较浓。\n* 内盘 > 外盘:主动卖出多于主动买入,股价看跌情绪较浓。\n\n### 代码示例\n在 ptrade 中,你可以通过以下方式获取并打印这两个字段:\n\npython\ndef initialize(context):\n g.security = '600570.SS'\n set_universe(g.security)\n\ndef handle_data(context, data):\n # 获取行情快照\n snapshot = get_snapshot(g.security)\n if snapshot and g.security in snapshot:\n info = snapshot[g.security]\n amount_in = info.get('business_amount_in', 0)\n amount_out = info.get('business_amount_out', 0)\n \n log.info(f'内盘成交量(主动卖出): {amount_in}')\n log.info(f'外盘成交量(主动买入): {amount_out}')\n \n if amount_out > amount_in:\n log.info('当前买方力量较强')\n else:\n log.info('当前卖方力量较强')\n\n\n注意:这两个字段的数据类型为 int,代表的是成交的股数(或手数,具体视交易所和接口底层返回而定,通常为股数)。