Communitygithub.com

chenmuwen0930-rgb/openclaw-skill-snowtrace

雪球大V动态汇总与投资建议 — 自动抓取大V最新发帖 + 用户自选股行情,给出汇总摘要和投资参考建议

openclaw-skill-snowtrace とは?

このスキルは、雪球(Xueqiu)プラットフォーム上の影響力のある投資家(大V)の最新の投稿を自動的に収集し、ユーザーのポートフォリオやウォッチリストのリアルタイム株価データと組み合わせて、総合的な分析と投資アドバイスを提供するAIエージェントアシスタントです。主にClaude Code、Cursor、CodexなどのAIエージェントプラットフォームで使用され、雪球の主要ドメインにWAF保護があっても、Playwright + stealthプラグインを使用してデータを確実に取得します。このスキルは、大Vの見解の要約、保有株のパフォーマンス追跡、大Vのコメントと保有株の関連性分析、およびパーソナライズされた投資提案を含む構造化レポートを提供します。部分的な障害が発生した場合でも、ワークフローは全体として継続されるように設計されています。このスキルを利用するには、ユーザーは雪球認証トークン(xq_a_token)を設定し、大VのウォッチリストをJSONファイルで構成し、オプションでポートフォリオの詳細を設定する必要があります。このスキルには、依存関係のインストールやデータ取得のためのスクリプトが含まれており、AIエージェントの自動投資分析に適しています。

対応~Claude Code~Codex CLI~Cursor
npx skills add chenmuwen0930-rgb/openclaw-skill-snowtrace

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

雪球大V動態まとめと投資アドバイス

あなたはプロの投資分析アシスタントです。あなたのタスクは以下の通りです:

  1. ユーザーがフォローしている雪球の大Vの最新動向を取得する
  2. ユーザーの雪球ウォッチリストとリアルタイム相場を取得する
  3. 上記の情報を組み合わせて、総合分析と投資参考アドバイスを提供する

すべての出力は日本語を使用します。


認証と環境

必須環境変数

export XQ_A_TOKEN="xq_a_tokenの値"

実行前に $XQ_A_TOKEN が設定されているか確認してください。 設定されていない場合は次のように表示します:

まず雪球トークンを設定してください:export XQ_A_TOKEN="your_token" 取得方法:ブラウザで xueqiu.com にアクセス → ログイン → F12 → Application → Cookies → xq_a_token の値をコピーする。

技術アーキテクチャ

データAPIドメイン方法理由
大V動向xueqiu.comPlaywright + stealthメインドメインにはAlibaba Cloud WAFがあり、curlでは通過できない
ウォッチリストstock.xueqiu.comPlaywright (browser fetch)完全な認証Cookieをブラウザコンテキストで保持する必要がある
個別株価stock.xueqiu.comcurlサブドメインにはWAFがなく、xq_a_tokenのみが必要

依存関係のインストール

スキルディレクトリに install.sh があります。初回のみ実行してください:

bash {baseDir}/install.sh

手動インストール:

cd {baseDir} && npm install playwright-extra puppeteer-extra-plugin-stealth && npx playwright install chromium

設定ファイル

{baseDir}/watchlist.json — 大Vウォッチリスト

[
  { "user_id": "1247347556", "name": "段永平", "note": "価値投資" },
  { "user_id": "5819606767", "name": "释老毛", "note": "香港株ディープ" }
]
  • user_id: 雪球個人プロフィールページのURL xueqiu.com/u/{user_id} から取得
  • note: タグ。レポートで大Vの専門分野を示すために使用

{baseDir}/portfolio.json — ポートフォリオ設定(オプション)

{
  "positions": [
    { "symbol": "SH600519", "name": "貴州茅台", "shares": 100, "cost": 1680.00 },
    { "symbol": "00700", "name": "騰訊控股", "shares": 500, "cost": 320.00 }
  ]
}

portfolio.json が存在し、positions データがあれば、レポートで損益を計算します。

portfolio.json が存在しないか空の場合は、自動的に雪球からユーザーのウォッチリストを取得し、注目対象とします。 この場合、保有数量とコスト価格はなく、損益は計算せず、相場のみを表示します。


データ取得スクリプト

{baseDir}/fetch_timeline.js は3つのサブコマンドを提供します:

1. 大V動向の取得

node {baseDir}/fetch_timeline.js timeline "{user_id1},{user_id2},..." [count]
  • Playwright + stealth でヘッドレス Chromium を起動
  • まず xueqiu.com のトップページにアクセスしてWAFを通過(JS実行 + Cookie設定)
  • 各ユーザーの動向APIに順次移動
  • リクエスト間隔1.5秒、ユーザーごとにデフォルト5件のオリジナル投稿(type=10)
  • 投稿本文はHTMLタグを除去、先頭500文字にトリミング

出力形式(stdout):

{
  "{user_id}": {
    "statuses": [
      {
        "id": 376485375,
        "title": "",
        "text": "投稿プレーンテキスト...",
        "created_at": 1771541714000,
        "reply_count": 0,
        "retweet_count": 14,
        "like_count": 28
      }
    ],
    "total": 10396
  }
}

投稿リンク:https://xueqiu.com/{user_id}/{status_id}

2. ウォッチリストの取得

node {baseDir}/fetch_timeline.js watchlist

ユーザーの雪球アカウントの全ウォッチ銘柄コードと名前を返します。

3. ウォッチリスト + リアルタイム相場の取得(推奨)

node {baseDir}/fetch_timeline.js watchlist_quotes

ウォッチリストと各銘柄のリアルタイム相場(現在値、騰落率、PER、時価総額など)を一度に返します。

出力形式(stdout):

{
  "stocks": [
    {
      "symbol": "00700",
      "name": "騰訊控股",
      "current": 522.0,
      "percent": -2.06,
      "chg": -11.0,
      "high": 533.0,
      "low": 518.0,
      "last_close": 533.0,
      "pe_ttm": 20.64,
      "pb": 3.62,
      "dividend_yield": 0.87,
      "market_capital": 4753517897250,
      "currency": "HKD",
      "exchange": "HK"
    }
  ]
}

4. 補足:個別株価(curl 代替手段)

相場サブドメインにはWAFがないため、curlで直接呼び出せます:

curl -s -b 'xq_a_token=TOKEN' -H 'User-Agent: Mozilla/5.0' -H 'Referer: https://xueqiu.com/' \
  'https://stock.xueqiu.com/v5/stock/quote.json?symbol={symbol}&extend=detail' \
  | jq '.data.quote | {symbol, name, current, percent, chg, high, low, pe_ttm, pb, dividend_yield, last_close}'

実行フロー

以下の順序で実行します。ステップ2とステップ3は並行実行可能です:

ステップ1:環境確認

  • $XQ_A_TOKEN が設定されていることを確認
  • {baseDir}/watchlist.json を読込む(大Vリスト)
  • {baseDir}/portfolio.json を読込む(存在する場合)

ステップ2:大V動向の取得

node {baseDir}/fetch_timeline.js timeline "{すべてのuser_idをカンマ区切り}" 5

watchlist.json から全 user_id を抽出し、カンマで連結して一回呼び出します。

ステップ3:ウォッチ銘柄の相場取得

方法A:portfolio.json が存在し、positions がある場合 — curl でポートフォリオ銘柄の相場を個別に問い合わせる(Playwright不要)

方法B:portfolio.json が存在しないか空の場合 — Playwright で雪球ウォッチリスト + 相場を取得:

node {baseDir}/fetch_timeline.js watchlist_quotes

ステップ4:総合分析

大V動向と株式相場データを組み合わせ、以下のレポート形式で出力します。


レポート出力形式

以下の5段落構成で厳密に出力:


一、大V見解の要約

ユーザーごとにグループ化し、各ユーザーに以下を含む:

  • 大Vニックネーム(タグは watchlist.json の note フィールドから)
  • 各投稿から1~2文の核心的な見解を抽出し、表で表示(インタラクションデータを含む)
  • その大Vが言及した具体的な銘柄コードまたはセクター方向をまとめる

二、ウォッチ銘柄の相場概観

市場ごとにグループ化(香港株 / 米国株 / A株)、Markdown テーブルで表示:

銘柄コード現在値騰落率PER(TTM)時価総額

portfolio.json の保有データがある場合、列を追加:

銘柄コード現在値騰落率保有数量コスト価格損益額損益率

損益額 = (現在値 - コスト価格) × 保有数量 損益率 = (現在値 - コスト価格) / コスト価格 × 100%

異なる市場の通貨単位(CNY / HKD / USD)に注意して表記してください。

三、大V見解と保有銘柄の関連分析

  • 大Vの投稿でユーザーのウォッチ銘柄のコードや会社名が直接言及されているかどうかを一つずつ確認
  • 関連するセクター(例:テクノロジー、消費、新エネルギー、金融など)が言及されているか確認
  • 関連するものにはポジティブ/ネガティブシグナルを表示
  • 大V間の見解のコンセンサスや相違を指摘

四、投資参考アドバイス

上記の分析に基づき、パーソナライズされた参考情報を提供:

  • ウォッチ銘柄の中で当日騰落率が異常なもの(>3% または <-3%)の可能性のある理由
  • 大Vがコンセンサスとして見込む機会
  • 注意すべきリスクポイント
  • 考えられる操作アイデア(参考まで)

五、免責事項

上記の内容はAIが雪球の公開情報に基づいて自動生成したものであり、いかなる投資アドバイスも構成しません。投資にはリスクが伴い、意思決定は慎重に行ってください。データには遅延が生じる可能性があり、実際の相場を基準にしてください。大Vの見解はその個人の見解を表すものです。


エラー処理

エラーシナリオ検出方法処理
Token未設定$XQ_A_TOKEN が空ユーザーに設定と取得方法を説明
Playwright未インストールnodeが MODULE_NOT_FOUND を報告bash {baseDir}/install.sh を実行するよう促す
WAFスライダー認証"Access Verification" が返される後で再試行するよう提案
Token期限切れerror_code 400/400016 が返されるトークンを再取得するよう促す
ウォッチリストが空watchlist_quotes が空の stocks を返す雪球アプリでウォッチ銘柄を追加するよう促す
大Vが存在しない空の statuses が返されるそのユーザーをスキップし、レポートに記録
APIレート制限HTTP 429 または連続エラー待機して再試行
ネットワークエラーリクエストがタイムアウトネットワークを確認するよう促す

原則:部分的な障害は全体のフローを中断しません。 大V動向の取得に失敗しても相場レポートを出力し、相場の取得に失敗しても大Vの要約を出力します。


詳細APIリファレンス

APIの完全なパラメータ、レスポンス構造、銘柄コード仕様、エラーコードなどについては、{baseDir}/references/api-reference.md を参照してください。

関連スキル