public-dot-com
Public.com 账户管理工具
免责声明:仅供说明和信息参考。不构成投资建议或推荐。
我们建议在尽可能独立的环境中运行此功能。如果可能,也请在一个新的 Public 账户上测试集成。
此功能允许用户与其 Public.com 经纪账户进行交互。
前提条件
- Python 3.8 或更高版本以及pip—— 在您的 OpenClaw 环境中是必需的。
- Public.com 账户—— 请在以下网址创建:https://public.com/signup
- Public.com API 密钥—— 请在以下网址获取:https://public.com/settings/v2/api
需要publicdotcom-pySDK。它将在首次运行时自动安装,或者您也可以手动安装:
pip install publicdotcom-py
配置
此技能使用两个环境变量:PUBLIC_COM_SECRET(必需)和PUBLIC_COM_ACCOUNT_ID(可选)。每个变量按以下顺序解析:
- 安全文件—
~/.openclaw/workspace/.secrets/public_com_secret.txt(或public_com_account.txt) - 环境变量—
PUBLIC_COM_SECRET/PUBLIC_COM_ACCOUNT_ID
通过openclaw config set设置值会自动写入安全文件位置。
API 密钥(必需)
如果PUBLIC_COM_SECRET未设置:
- 告诉用户:"我需要你的Public.com API密钥。你可以在Public.com开发者设置中找到它,网址是https://public.com/settings/v2/api。"
- 一旦提供,请保存它:
openclaw config set skills.publicdotcom.PUBLIC_COM_SECRET [VALUE]
默认账户ID(可选)
如果用户想为所有请求设置一个默认账户:
- 保存它:
openclaw config set skills.publicdotcom.PUBLIC_COM_ACCOUNT_ID [VALUE] - 这样可以避免在每次命令中指定
--account-id。
可用命令
获取账户
当用户要求"获取我的账户"、"列出账户"或"显示我的Public.com账户"时:
- 执行
python3 scripts/get_accounts.py - 将账户ID和类型报告给用户。
获取投资组合
当用户要求"获取我的投资组合"、"显示我的持仓"或"我的账户里有什么"时:
- 如果
PUBLIC_COM_ACCOUNT_ID已设置,则执行python3 scripts/get_portfolio.py(无需参数)。 - 如果未设置且您不知道用户的账户ID,请先运行
get_accounts.py以获取该ID。 - 执行
python3 scripts/get_portfolio.py --account-id [ACCOUNT_ID] - 向用户报告投资组合摘要(权益、购买力、持仓情况)。
获取订单
当用户要求"获取我的订单"、"显示我的订单"、"活跃订单"或"待处理订单"时:
- 如果
PUBLIC_COM_ACCOUNT_ID已设置,则执行python3 scripts/get_orders.py(无需参数)。 - 如果未设置且您不知道用户的账户ID,请先运行
get_accounts.py以获取账户信息。 - 执行
python3 scripts/get_orders.py --account-id [账户ID] - 将包含详细信息(代码、方向、类型、状态、数量、价格)的活跃订单报告给用户。
获取历史记录
当用户要求“获取我的历史记录”、“显示我的交易”、“交易历史”、“交易记录”或想查看过去的账户活动时:
可选参数:
--type:按交易类型过滤(交易、资金流动、仓位调整)--limit:限制返回的交易数量
示例:
获取所有交易历史:
python3 scripts/get_history.py
仅获取交易:
python3 scripts/get_history.py --type TRADE
仅获取资金流动(存款、取款、股息、费用):
python3 scripts/get_history.py --type MONEY_MOVEMENT
获取最后10笔交易:
python3 scripts/get_history.py --limit 10
使用明确的账户ID:
python3 scripts/get_history.py --account-id YOUR_ACCOUNT_ID
工作流程:
- 如果
PUBLIC_COM_ACCOUNT_ID未设置,且您不知道用户的账户ID,请先运行get_accounts.py来获取它。 - 执行:
python3 scripts/get_history.py [选项] - 按类型(交易、资金流动、头寸调整)分组报告交易历史。
- 包含相关细节,如代码、数量、净额、费用和时间戳。
交易类型:
- TRADE:股票、期权和加密货币的买入/卖出交易
- MONEY_MOVEMENT:存款、取款、股息、费用和现金调整
- POSITION_ADJUSTMENT:股票分割、合并和其他头寸变动
获取报价
当用户要求“获取报价”、“...的价格是多少”、“查看价格”或希望获取股票/加密货币价格时:
格式: 代码或SYMBOL:TYPE(TYPE默认为EQUITY)
示例:
单一股票行情查询(使用默认账户):
python3 scripts/get_quotes.py AAPL
多个股票行情查询:
python3 scripts/get_quotes.py AAPL GOOGL MSFT
混合金融工具类型查询:
python3 scripts/get_quotes.py AAPL:EQUITY BTC:CRYPTO
期权行情查询:
python3 scripts/get_quotes.py AAPL260320C00280000:OPTION
指定账户ID:
python3 scripts/get_quotes.py AAPL --account-id YOUR_ACCOUNT_ID
工作流程:
- 如果
PUBLIC_COM_ACCOUNT_ID未设置且您不知道用户的账户ID,请首先运行get_accounts.py来获取它。 - 解析用户请求中的交易代码和类型。
- 执行:
python3 scripts/get_quotes.py [SYMBOLS...] [--account-id ACCOUNT_ID] - 将行情信息(最新价、买价、卖价、成交量等)报告给用户。
获取可交易工具
当用户询问"列出可交易工具"、"我可以交易什么"、"显示可用股票"或希望查看可交易工具时:
可选参数:
--type:用于筛选的工具类型(EQUITY, OPTION, CRYPTO)。默认为EQUITY。--trading:交易状态筛选器(BUY_AND_SELL, BUY_ONLY, SELL_ONLY, NOT_TRADABLE)--search:通过代码或名称搜索--limit:限制结果数量
示例:
列出所有股票(默认):
python3 scripts/get_instruments.py
列出股票和加密货币:
python3 scripts/get_instruments.py --type EQUITY CRYPTO
仅列出可交易工具:
python3 scripts/get_instruments.py --type EQUITY --trading BUY_AND_SELL
搜索特定工具:
python3 scripts/get_instruments.py --search AAPL
限制结果数量:
python3 scripts/get_instruments.py --limit 50
工作流程:
- 解析用户请求中的任何筛选条件(类型、交易状态、搜索词)。
- 执行:
python3 scripts/get_instruments.py [选项] - 将可用的工具及其交易状态报告给用户。
获取工具
当用户要求"获取仪器详情"、"显示仪器信息"、"AAPL的详情是什么",或想查看特定仪器的详细信息时:
必需参数:
--symbol:代码符号(例如:AAPL, BTC)
可选参数:
--type:仪器类型(EQUITY, OPTION, CRYPTO)。默认为 EQUITY。
示例:
获取股票仪器详情:
python3 scripts/get_instrument.py --symbol AAPL
获取加密货币仪器详情:
python3 scripts/get_instrument.py --symbol BTC --type CRYPTO
工作流程:
- 解析用户的请求,获取符号和可选类型。
- 执行:
python3 scripts/get_instrument.py --symbol [SYMBOL] [--type TYPE] - 向用户报告仪器详情(交易状态、零股交易、期权交易)。
获取期权到期日
此功能可以列出任何符号的所有可用期权到期日期。
当用户要求"获取期权到期日"、"列出到期日"、"显示到期日期"、"期权何时到期",或者想知道某只股票有哪些期权到期日时:
- 执行
python3 scripts/get_option_expirations.py [股票代码] - 向用户报告可用的到期日期。
常见的用户表达方式:
- "获取苹果的期权到期日"
- "谷歌的期权到期日期有哪些"
- "特斯拉期权何时到期"
- "给我看看SPY期权的到期日期"
- "列出微软的可用到期日"
- "你能获取苹果的期权到期日吗"
- "英伟达有哪些可用的期权日期"
必需参数:
股票代码:基础标的股票代码(例如,AAPL、GOOGL、TSLA、SPY)。将公司名称转换为股票代码。
示例:
python3 scripts/get_option_expirations.py AAPL
python3 scripts/get_option_expirations.py GOOGL
python3 scripts/get_option_expirations.py TSLA
python3 scripts/get_option_expirations.py SPY
常见的公司名称与股票代码对应关系:
- 苹果 = AAPL
- 谷歌/ Alphabet = GOOGL
- 特斯拉 = TSLA
- 微软 = MSFT
- 亚马逊 = AMZN
- 英伟达 = NVDA
- Meta/Facebook = META
工作流程:
- 从用户请求中提取股票代码。将公司名称转换为股票代码。
- 执行:
python3 scripts/get_option_expirations.py [股票代码] - 向用户报告可用的到期日。
- 如果他们接下来想看期权链,请使用到期日配合
get_option_chain.py。
获取期权希腊值
当用户询问"期权希腊值"、"delta"、"gamma"、"theta"、"vega",或想要分析期权时:
所需参数:
- 一个或多个OSI期权代码(例如,AAPL260116C00270000)
OSI代码格式:
AAPL260116C00270000
^^^^------^--------
| | | Strike price ($270.00)
| | Call (C) or Put (P)
| Expiration (Jan 16, 2026 = 260116)
Underlying symbol
示例:
单个期权:
python3 scripts/get_option_greeks.py AAPL260116C00270000
多个期权(例如,同一行权价的看涨和看跌期权):
python3 scripts/get_option_greeks.py AAPL260116C00270000 AAPL260116P00270000
工作流程:
- 如果用户分别提供到期日、行权价和看涨/看跌期权类型,请协助构建OSI代码。
- 执行:
python3 scripts/get_option_greeks.py [OSI代码...] - 向用户报告希腊值(Delta、Gamma、Theta、Vega、Rho、IV),必要时提供解释。
获取期权链
当用户询问“期权链”、“AAPL的期权”、“显示看涨和看跌期权”或希望查看可用期权时:
必需参数:
标的代码:标的代码(例如,AAPL)
可选参数:
--expiration:到期日期(YYYY-MM-DD)。如果未提供,则使用最近的到期日。--list-expirations:列出可用到期日期,而不是获取期权链。
示例:
列出可用到期日期:
python3 scripts/get_option_chain.py AAPL --list-expirations
获取最近到期日的期权链:
python3 scripts/get_option_chain.py AAPL
获取特定到期日的期权链:
python3 scripts/get_option_chain.py AAPL --expiration 2026-03-20
工作流程:
- 如果用户未指定到期日,首先运行
--list-expirations以显示可用日期。 - 执行:
python3 scripts/get_option_chain.py [SYMBOL] [--expiration DATE] - 报告看涨和看跌期权的行权价、买入/卖出价、最后成交价、成交量和未平仓合约数。
设置默认账户
当用户要求“设置我的默认账户”或“使用账户X作为默认账户”时:
- 保存设置:
openclaw config set skills.publicdotcom.PUBLIC_COM_ACCOUNT_ID [ACCOUNT_ID] - 向用户确认,后续请求将默认使用此账户。
订单预检计算
当用户要求“估算订单成本”、“预检订单”、“购买需要多少成本”、“检查购买力影响”,或在提交订单前希望查看预估成本和账户影响时:
必需参数:
--symbol:股票代码(例如AAPL、BTC,或期权代码如NVDA260213P00177500)--type股票、期权,或加密货币--side: 买入或卖出--order-type: 限价、市价、止损,或止损限价--quantity或--amount: 股数/合约数 或 名义美元金额
条件参数:
--limit-price: 限价单和止损限价单必需--stop-price: 止损单和止损限价单必需--session: 股票订单的交易时段:CORE(默认)或 EXTENDED--open-close: 期权订单的开平仓:OPEN 或 CLOSE(OPEN 开立新头寸,CLOSE 平掉现有头寸)--time-in-force: 有效时间:DAY(默认)或 GTC(撤销前有效)
示例:
股票限价买入订单预检:
python3 scripts/preflight.py --symbol AAPL --type EQUITY --side BUY --order-type LIMIT --quantity 10 --limit-price 227.50
股票市场卖出前检查:
python3 scripts/preflight.py --symbol AAPL --type EQUITY --side SELL --order-type MARKET --quantity 10
加密货币按金额买入前检查:
python3 scripts/preflight.py --symbol BTC --type CRYPTO --side BUY --order-type MARKET --amount 100
期权合约买入前检查(开立新头寸):
python3 scripts/preflight.py --symbol NVDA260213P00177500 --type OPTION --side BUY --order-type LIMIT --quantity 1 --limit-price 4.00 --open-close OPEN
期权合约卖出前检查(平仓):
python3 scripts/preflight.py --symbol NVDA260213P00177500 --type OPTION --side SELL --order-type LIMIT --quantity 1 --limit-price 5.00 --open-close CLOSE
工作流程:
- 从用户处收集订单参数(代码、类型、方向、订单类型、数量/金额、需要时提供价格)。
- 执行:
python3 scripts/preflight.py [选项] - 向用户报告预估成本、购买力影响以及任何费用。
- 如果用户希望继续,请使用
place_order.py脚本并传入相同参数。
下单
当用户要求“买入”、“卖出”、“下单”或“交易”时:
必需参数:
--symbol:股票代码(例如,AAPL, BTC)--type:EQUITY、OPTION 或 CRYPTO--side买入或卖出--order-type: 限价单、市价单、止损单或止损限价单--quantity或--amount: 股票数量或名义美元金额
条件参数:
--limit-price: 限价单和止损限价单必需--stop-price: 止损单和止损限价单必需--session: 股票订单时段:常规(默认)或延长交易时段--open-close: 期权订单开平仓标识:开仓或平仓--time-in-force: 订单有效期:当日有效(默认)或撤销前有效
示例:
以限价227.50美元买入10股AAPL:
python3 scripts/place_order.py --symbol AAPL --type EQUITY --side BUY --order-type LIMIT --quantity 10 --limit-price 227.50
以市价卖出价值500美元的AAPL:
python3 scripts/place_order.py --symbol AAPL --type EQUITY --side SELL --order-type MARKET --amount 500
在延长交易时段买入加密货币:
python3 scripts/place_order.py --symbol BTC --type CRYPTO --side BUY --order-type MARKET --amount 100
使用"撤销前有效"(GTC)订单进行购买:
python3 scripts/place_order.py --symbol AAPL --type EQUITY --side BUY --order-type LIMIT --quantity 10 --limit-price 220.00 --time-in-force GTC
工作流程:
- 从用户处收集所有必需信息(代码、买卖方向、订单类型、数量/金额,如需价格则一并收集)。
- 在执行前向用户确认订单详情。
- 执行:
python3 scripts/place_order.py [选项] - 将订单ID和确认信息反馈给用户。
- 提醒用户订单提交是异步的——他们可以稍后查看状态。
取消订单
当用户要求"取消订单"、"取消我的订单",或想要取消特定订单时:
必需参数:
--order-id:要取消的订单ID
示例:
python3 scripts/cancel_order.py --order-id 345d3e58-5ba3-401a-ac89-1b756332cc94
使用明确的账户ID:
python3 scripts/cancel_order.py --order-id 345d3e58-5ba3-401a-ac89-1b756332cc94 --account-id YOUR_ACCOUNT_ID
工作流程:
- 如果用户未提供订单ID,首先运行
get_orders.py以显示他们的活跃订单。 - 向用户确认他们想要取消哪个订单。
- 执行:
python3 scripts/cancel_order.py --order-id [订单ID] - 告知用户取消操作是异步的——他们应检查订单状态以确认。
期权策略指导
当用户询问期权策略、如何自动化策略、针对特定场景使用哪种策略,或需要帮助构建多腿期权交易时:
- 请阅读文件
options-automation-library.md(位于与本技能相同的目录中)以获取详细的策略背景信息。 - 该库包含35种以上按类别组织的期权策略:
- 单腿策略:买入看涨期权、买入看跌期权、备兑看涨期权、现金担保看跌期权
- 垂直价差:牛市看涨价差、熊市看涨价差、牛市看跌价差、熊市看跌价差
- 日历与对角价差:买入日历价差、对角价差
- 跨式与宽跨式组合:买入/卖出跨式组合、买入/卖出宽跨式组合
- 复杂价差策略: 铁鹰式套利,铁蝶式套利,破翼蝶式套利,玉蜥蜴策略,圣诞树策略
- 合成头寸策略: 合成多头/空头,合成备兑看涨期权,转换/反转策略
- 收入策略: 轮动策略,穷人备兑看涨期权,比率价差
- 高级/量化策略: 盒式价差,风险逆转,对冲铁蝶式,波动率套利,日历跨式
- 事件驱动策略流程: 财报隐含波动率挤压,盘前隐含波动率扩张,财报后漂移,宏观/期权到期日伽马
- 每种策略均包含:描述、应用场景与事件示例、策略失效情形、API工作流步骤,以及使用Public.com SDK的代码示例。
- 构建代码示例时,请使用库中的共享SDK辅助工具(设置、市场数据、预检、多腿订单辅助工具)。
- 推荐策略时,务必包含“策略失效情形”说明,以便用户理解相关风险。
- 对于可执行交易,请将库中的代码模式映射到此技能中可用的实际脚本(例如,
get_option_chain.py,get_option_expirations.py,preflight.py,place_order.py).



微信扫一扫,打赏作者吧~