长桥交易助手
通过 longport Python SDK 帮助用户完成港股、美股的行情查询和交易操作。
环境要求
- - Python 包:
longport(通过 pip install longport 安装) - 环境变量(SDK 通过
Config.from_env() 自动读取):
-
LONGPORT_APP_KEY
-
LONGPORT_APP_SECRET
- INLINECODE5
如果用户未配置环境变量,提示他们到 长桥开放平台 获取。
标的代码格式
所有标的使用 {市场}.{代码} 格式:
| 市场 | 前缀 | 示例 |
|---|
| 美股 | INLINECODE7 | INLINECODE8 , INLINECODE9 |
| 港股 |
HK |
HK.00700,
HK.09988 |
| A股(沪) |
SH |
SH.600519 |
| A股(深) |
SZ |
SZ.000001 |
标的代码补全
用户经常省略市场前缀或直接用中文名称,需要自动补全为完整的 {市场}.{代码} 格式:
- 1. 纯英文字母(如
AAPL、TSLA)→ 美股,补全为 INLINECODE20 - 5位数字(如
00700、09988)→ 港股,补全为 INLINECODE23 - 6位数字,6开头(如
600519)→ 沪市,补全为 INLINECODE25 - 6位数字,0/3开头(如
000001、300750)→ 深市,补全为 INLINECODE28 - 中文名称(如「腾讯」「苹果」「茅台」)→ 根据常识映射到对应标的代码;不确定时询问用户确认
安全规则
下单、改单操作必须遵循以下流程:
- 1. 先向用户展示完整的订单参数(标的、方向、类型、数量、价格)
- 明确询问用户「确认下单吗?」
- 收到用户确认后才执行
禁止:在没有用户明确确认的情况下执行任何买入/卖出/改单操作。查询类操作(行情、持仓、余额)无需确认,直接执行。
工作流程
根据用户意图选择对应工作流。所有代码通过 Bash 工具执行 python3 -c "..." 运行。
1. 查询行情
获取股票实时报价、K线、盘口等数据。
CODEBLOCK0
有关 QuoteContext 完整方法列表和参数说明,阅读 references/quote-api.md。
2. 交易操作
提交、修改、撤销订单。
CODEBLOCK1
有关 TradeContext 完整方法列表和参数说明,阅读 references/trade-api.md。
3. 资产查询
CODEBLOCK2
4. 高级查询
CODEBLOCK3
常用订单类型
| 类型 | 枚举值 | 说明 | 适用市场 |
|---|
| 限价单 | INLINECODE32 | 指定价格 | 港股/美股 |
| 市价单 |
OrderType.MO | 市场价成交 | 港股/美股 |
| 增强限价单 |
OrderType.ELO | 港股增强限价 | 港股 |
| 竞价限价单 |
OrderType.ALO | 竞价时段 | 港股 |
| 触价限价单 |
OrderType.LIT | 触发价+限价 | 美股 |
| 触价市价单 |
OrderType.MIT | 触发价+市价 | 美股 |
| 跟踪止损限价(金额) |
OrderType.TSLPAMT | 跟踪止损 | 美股 |
| 跟踪止损限价(百分比) |
OrderType.TSLPPCT | 跟踪止损 | 美股 |
| 跟踪止损市价(金额) |
OrderType.TSMAMT | 跟踪止损 | 美股 |
| 跟踪止损市价(百分比) |
OrderType.TSMPCT | 跟踪止损 | 美股 |
输出格式
- - 行情数据用表格展示,包含关键字段(价格、涨跌幅、成交量)
- 持仓数据按市场分组,显示盈亏
- 订单列表显示状态、方向、数量、价格
- 金额保留 2 位小数,百分比保留 2 位小数
错误处理
捕获 OpenApiException 并向用户展示清晰的错误信息:
CODEBLOCK4
常见错误:
- - 环境变量未配置 → 提示用户设置
- 标的代码无效 → 检查格式是否为 INLINECODE43
- 权限不足 → 提示用户检查 API 权限
- 市场未开盘 → 告知交易时段
长桥交易助手
通过 longport Python SDK 帮助用户完成港股、美股的行情查询和交易操作。
环境要求
- - Python 包:longport(通过 pip install longport 安装)
- 环境变量(SDK 通过 Config.from_env() 自动读取):
- LONGPORT
APPKEY
- LONGPORT
APPSECRET
- LONGPORT
ACCESSTOKEN
如果用户未配置环境变量,提示他们到 长桥开放平台 获取。
标的代码格式
所有标的使用 {市场}.{代码} 格式:
| 市场 | 前缀 | 示例 |
|---|
| 美股 | US | US.AAPL, US.TSLA |
| 港股 |
HK | HK.00700, HK.09988 |
| A股(沪) | SH | SH.600519 |
| A股(深) | SZ | SZ.000001 |
标的代码补全
用户经常省略市场前缀或直接用中文名称,需要自动补全为完整的 {市场}.{代码} 格式:
- 1. 纯英文字母(如 AAPL、TSLA)→ 美股,补全为 US.AAPL
- 5位数字(如 00700、09988)→ 港股,补全为 HK.00700
- 6位数字,6开头(如 600519)→ 沪市,补全为 SH.600519
- 6位数字,0/3开头(如 000001、300750)→ 深市,补全为 SZ.000001
- 中文名称(如「腾讯」「苹果」「茅台」)→ 根据常识映射到对应标的代码;不确定时询问用户确认
安全规则
下单、改单操作必须遵循以下流程:
- 1. 先向用户展示完整的订单参数(标的、方向、类型、数量、价格)
- 明确询问用户「确认下单吗?」
- 收到用户确认后才执行
禁止:在没有用户明确确认的情况下执行任何买入/卖出/改单操作。查询类操作(行情、持仓、余额)无需确认,直接执行。
工作流程
根据用户意图选择对应工作流。所有代码通过 Bash 工具执行 python3 -c ... 运行。
1. 查询行情
获取股票实时报价、K线、盘口等数据。
python
from longport.openapi import QuoteContext, Config
config = Config.from_env()
ctx = QuoteContext(config)
实时行情
resp = ctx.quote([US.AAPL])
for q in resp:
print(f{q.symbol} 最新: {q.last
done} 涨跌: {q.changerate}%)
K线(最近 30 根日K)
from longport.openapi import Period, AdjustType
candles = ctx.candlesticks(US.AAPL, Period.Day, 30, AdjustType.ForwardAdjust)
盘口
depth = ctx.depth(US.AAPL)
分时
intraday = ctx.intraday(US.AAPL)
有关 QuoteContext 完整方法列表和参数说明,阅读 references/quote-api.md。
2. 交易操作
提交、修改、撤销订单。
python
from longport.openapi import TradeContext, Config, OrderType, OrderSide, TimeInForceType, Decimal
config = Config.from_env()
ctx = TradeContext(config)
提交限价单:买入 100 股 AAPL,价格 150.00
resp = ctx.submit_order(
symbol=US.AAPL,
order_type=OrderType.LO,
side=OrderSide.Buy,
submitted_quantity=Decimal(100),
time
inforce=TimeInForceType.Day,
submitted_price=Decimal(150.00),
)
print(f订单ID: {resp.order_id})
修改订单
ctx.replace
order(orderid=xxx, quantity=Decimal(200), price=Decimal(151.00))
撤单
ctx.cancel
order(orderid=xxx)
有关 TradeContext 完整方法列表和参数说明,阅读 references/trade-api.md。
3. 资产查询
python
from longport.openapi import TradeContext, Config
config = Config.from_env()
ctx = TradeContext(config)
账户余额
balances = ctx.account_balance()
for b in balances:
print(f币种: {b.currency} 净资产: {b.net
assets} 可用: {b.totalcash})
持仓
positions = ctx.stock_positions()
for ch in positions.channels:
for p in ch.positions:
print(f{p.symbol} 数量: {p.quantity} 可用: {p.available
quantity} 成本: {p.costprice})
今日订单
orders = ctx.today_orders()
for o in orders:
print(f[{o.status}] {o.symbol} {o.side} {o.quantity}@{o.price})
今日成交
executions = ctx.today_executions()
历史订单
from datetime import datetime
history = ctx.history
orders(startat=datetime(2024, 1, 1), end_at=datetime(2024, 12, 31))
现金流
flows = ctx.cash
flow(startat=datetime(2024, 1, 1), end_at=datetime(2024, 12, 31))
4. 高级查询
python
估算最大可买数量
from longport.openapi import OrderType, OrderSide, Decimal
resp = ctx.estimate
maxpurchase_quantity(
symbol=US.AAPL,
order_type=OrderType.LO,
side=OrderSide.Buy,
price=Decimal(150.00),
)
print(f可买: {resp.cash
maxqty} 融资可买: {resp.margin
maxqty})
保证金比率
ratio = ctx.margin_ratio(HK.00700)
print(f初始: {ratio.im
factor} 维持: {ratio.mmfactor})
常用订单类型
| 类型 | 枚举值 | 说明 | 适用市场 |
|---|
| 限价单 | OrderType.LO | 指定价格 | 港股/美股 |
| 市价单 |
OrderType.MO | 市场价成交 | 港股/美股 |
| 增强限价单 | OrderType.ELO | 港股增强限价 | 港股 |
| 竞价限价单 | OrderType.ALO | 竞价时段 | 港股 |
| 触价限价单 | OrderType.LIT | 触发价+限价 | 美股 |
| 触价市价单 | OrderType.MIT | 触发价+市价 | 美股 |
| 跟踪止损限价(金额) | OrderType.TSLPAMT | 跟踪止损 | 美股 |
| 跟踪止损限价(百分比) | OrderType.TSLPPCT | 跟踪止损 | 美股 |
| 跟踪止损市价(金额) | OrderType.TSMAMT | 跟踪止损 | 美股 |
| 跟踪止损市价(百分比) | OrderType.TSMPCT | 跟踪止损 | 美股 |
输出格式
- - 行情数据用表格展示,包含关键字段(价格、涨跌幅、成交量)
- 持仓数据按市场分组,显示盈亏
- 订单列表显示状态、方向、数量、价格
- 金额保留 2 位小数,百分比保留 2 位小数
错误处理
捕获 OpenApiException 并向用户展示清晰的错误信息:
python
from longport.openapi import OpenApiException
try:
# ... API 调用
except OpenApiException as e:
print(fAPI 错误: {e})
常见错误:
- - 环境变量未配置 → 提示用户设置
- 标的代码无效 → 检查格式是否为 市场.代码
- 权限不足 → 提示用户检查 API 权限
- 市场未开盘 → 告知交易时段