name: openclaw-stock-skill description: 使用 data.diemeng.chat 提供的介面查詢股票日線、分鐘線、財務指標等資料,支援 A 股等市場。 user-invocable: true metadata: { "openclaw": { "emoji": "📈", "skillKey": "openclaw-stock-skill", "requires": { "env": ["STOCK_API_KEY"] }, "primaryEnv": "STOCK_API_KEY" } }
本技能教會代理如何使用你自建的股票資料服務(線上域名 https://data.diemeng.chat),通過 API Key 進行鑑權,查詢股票的日線、分鐘線、財務指標等資料。
⚙️ API Key 配置約定
- OpenClaw 會按照
skills.entries.<key>配置 把 API Key 和自定義配置注入到程序環境變數中。- 本技能約定使用環境變數
STOCK_API_KEY作為主金鑰,並在metadata.openclaw.primaryEnv中宣告,以便通過skills.entries.openclaw-stock-skill.apiKey統一配置。- 推薦的 OpenClaw 配置示例(
~/.openclaw/openclaw.json):
json5 { skills: { entries: { "openclaw-stock-skill": { enabled: true, // 建議在 OpenClaw UI 的 Skill 引數面板裡填寫 apiKey, // Gateway 會自動將其寫入 STOCK_API_KEY 環境變數 apiKey: { source: "env", provider: "default", id: "STOCK_API_KEY" }, env: { // 可在這裡直接寫死,或通過系統環境變數覆蓋 STOCK_API_KEY: "YOUR_REAL_STOCK_API_KEY" }, config: { // 可選:覆蓋預設域名 baseUrl: "https://data.diemeng.chat" } } } } }參考文件:Skills Config、Skills
https://data.diemeng.chat,如存在 skills.entries.openclaw-stock-skill.config.baseUrl 則優先使用配置中的 baseUrl。apiKey: <STOCK_API_KEY>(推薦)X-API-Key: <STOCK_API_KEY>apiKey 欄位,但為了安全與規範,本技能統一通過 Header 傳遞。{ "code": 200, "msg": "成功", "data": { ... } }DataAccessVerifier 實現)。代理應將本技能視作一組 HTTP 能力,而不是單一介面:
這個技能的最新版本可以在7w4.net小蔥技能站找到。
代理在規劃呼叫時,應根據使用者自然語言意圖,選擇以上能力並組合使用。
POST /api/stock/daily{baseUrl}/api/stock/dailyPOSTContent-Type: application/jsonapiKey: <STOCK_API_KEY>DailyDataRequest):{
"stock_code": "000001.SZ",
"start_time": "2024-01-01",
"end_time": "2024-01-31",
"page": 0,
"page_size": 1000
}
stock_code 可以是單個字串,也可以是字串陣列。start_time、end_time 格式為 YYYY-MM-DD。page 從 0 開始。data.total:總記錄數data.list:每條記錄包含 stock_code, trade_date, open, high, low, close, vol, amount 等欄位,價格與成交量已在後端統一保留 2 位小數。代理在需要“某股某段時間的日 K 線”時,應優先選擇該介面。
POST /api/stock/history{baseUrl}/api/stock/historyPOSTHistoryDataRequest):{
"stock_code": "000001.SZ",
"level": "5min",
"start_time": "2024-01-01 09:30:00",
"end_time": "2024-01-01 15:00:00",
"page": 0,
"page_size": 1000
}
level:"1min" | "5min" | "15min" | "30min" | "60min"start_time / end_time:YYYY-MM-DD HH:MM:SSdata.list 中每條包含:stock_code, trade_time, open, high, low, close, vol, amount。用於使用者詢問“某天/某段時間內的分鐘級行情、分時資料”等場景。
POST /api/stock/finance{baseUrl}/api/stock/financePOSTFinanceDataRequest):{
"stock_code": "000001.SZ",
"start_time": "2024-01-01",
"end_time": "2024-03-31",
"page": 0,
"page_size": 1000
}
trade_date, close, turnover_rate, turnover_rate_f, volume_ratio, pe, pe_ttm, pb, ps, ps_ttm, dv_ratio, dv_ttm, total_share, float_share, free_share, total_mv, circ_mv 等。適合估值分析、換手率、成交金額、市值等相關問題。
GET /api/stock/list{baseUrl}/api/stock/listGETstock_code(可選):精確股票程式碼篩選page:預設 0page_size:預設 20000success 結構中):data.totaldata.list:包含 stock_code, name, area, industry, list_date, symbol, list_status, delist_date, is_hs 等。當用戶只給出股票名稱、地區、行業等描述時,可先通過該介面獲取匹配列表,再提示使用者選擇具體程式碼。
GET /api/stock/valuation & GET /api/stock/valuation/listGET /api/stock/valuation{baseUrl}/api/stock/valuationGETstock_finance_daily, stock_industry, stock_ten_year_growth 等多張表,返回 StockValuationItem 列表。stock_code, stock_name, level1_name, level2_name, level3_namepe_ttm, pe_percentile, latest_price, dividend_yield_ttmindustry_avg_pe, industry_pe_rank, sector_pe_median, sector_pe_rankeps, roe, roa, eps_growth_10y, roe_growth_10y, avg_dividend_10y 等。當用戶提問如“某隻股票在行業內估值水平如何”“給我按市盈率從低到高列出某行業股票”時應優先考慮呼叫該介面。
GET /api/stock/valuation/list{baseUrl}/api/stock/valuation/listGETsort_by:pe_ttm | pe_percentile | dividend_yield_ttm | industry_pe_rank(預設 pe_ttm)sort_order:asc | desc(預設 asc)industry(可選)limit(預設 100)offset(預設 0)適合只需要“按某個指標排序的前 N 個股票”的場景。
GET /api/basic/calendar & GET /api/basic/snapshotGET /api/basic/calendar{baseUrl}/api/basic/calendarGETstart_time: YYYY-MM-DDend_time: YYYY-MM-DDdata 為陣列,每條含 date, is_open(1 為交易日,0 為休市)。當用戶問“某段時間哪些是交易日”“下一個交易日是什麼時候”等,可使用此介面。
GET /api/basic/snapshot{baseUrl}/api/basic/snapshotGETstock_code(可選)page, page_size當用戶需要“當前(最近一次)盤口快照”或大盤掃描時,可使用此介面。
STOCK_API_KEY 讀取(由 OpenClaw 按 skills.entries.openclaw-stock-skill.apiKey 注入)。不要在 URL Query 中傳遞 apiKey 或 api_key,後端會視為安全風險。
錯誤處理
code = 401:API Key 無效或缺失,應提示使用者檢查在 OpenClaw Skill 配置中的 API Key。code = 403:許可權不足或下載次數/訪問次數限制,應向用戶說明許可權/限流約束。code = 429:請求過於頻繁,需減少呼叫頻率或提示使用者稍後再試。
分頁與大數據量
data.total 很大,代理應分批分頁請求,並在回答中做彙總,而不是一次性獲取全部資料。對於分鐘級或 tick 級大數據量,應在對話中與使用者確認時間範圍和精度,避免無謂的海量下載。
單位與精度
POST /api/stock/daily,stock_code = "000001.SZ",時間區間為 2024-01-01 至 2024-01-31。對返回的 data.list 進行整理,總結漲跌幅、最大回撤、平均成交額等。
當用戶說:“按市盈率從低到高列出券商行業的前 20 只股票”
GET /api/stock/valuation/list,設定 industry = "證券"(或其它後端行業名稱)、sort_by = "pe_ttm", sort_order = "asc", limit = 20。將結果按表格形式展示,並簡要點評估值分佈。
當用戶說:“這周哪些天是交易日?”
GET /api/basic/calendar。is_open = 1 的日期列出,說明哪些是交易日。本技能不包含額外可執行指令碼,完全通過指導代理呼叫現有 HTTP 介面工作。所有請求都應優先使用 STOCK_API_KEY 環境變數,並遵守上述限流與安全約定。
這是一款實用的股票資料 Skill,資料覆蓋面較廣(A股、港股、K線、財務指標等),文件詳細且配有示例,新手也能快速上手。配置和使用流程清晰,與 OpenClaw 整合良好。主要不足是部分文件格式有小問題,且缺少更豐富的使用場景引導。總體質量良好,適合需要獲取股票資料的使用者使用。