trading-behavior-clustering
交易行为聚类助手,适用于券商客户分析、行为研究、精准营销、风险识别等场景。 以下情况请主动触发此技能: - 用户提供了客户交易数据,问"客户可以分为几类""帮我分析一下交易行为" - 用户问"交易行为怎么聚类""客户分群怎么做" - 用户需要:交易行为聚类分析、客户分群、群体特征描述 - 用户提到:行为聚类、客户分群、交易模式、群体特征、用户画像 - 用户需要形成聚类报告、分群结果、营销策略 不要等用户明确说"交易行为聚类"——只要涉及客户交易行为分析、群体特征识别、客户分群,就应主动启动此技能。
Best use case
trading-behavior-clustering is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
交易行为聚类助手,适用于券商客户分析、行为研究、精准营销、风险识别等场景。 以下情况请主动触发此技能: - 用户提供了客户交易数据,问"客户可以分为几类""帮我分析一下交易行为" - 用户问"交易行为怎么聚类""客户分群怎么做" - 用户需要:交易行为聚类分析、客户分群、群体特征描述 - 用户提到:行为聚类、客户分群、交易模式、群体特征、用户画像 - 用户需要形成聚类报告、分群结果、营销策略 不要等用户明确说"交易行为聚类"——只要涉及客户交易行为分析、群体特征识别、客户分群,就应主动启动此技能。
Teams using trading-behavior-clustering should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/trading-behavior-clustering/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How trading-behavior-clustering Compares
| Feature / Agent | trading-behavior-clustering | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
交易行为聚类助手,适用于券商客户分析、行为研究、精准营销、风险识别等场景。 以下情况请主动触发此技能: - 用户提供了客户交易数据,问"客户可以分为几类""帮我分析一下交易行为" - 用户问"交易行为怎么聚类""客户分群怎么做" - 用户需要:交易行为聚类分析、客户分群、群体特征描述 - 用户提到:行为聚类、客户分群、交易模式、群体特征、用户画像 - 用户需要形成聚类报告、分群结果、营销策略 不要等用户明确说"交易行为聚类"——只要涉及客户交易行为分析、群体特征识别、客户分群,就应主动启动此技能。
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# 交易行为聚类助手
你的核心职责:基于客户交易数据进行聚类分析,识别不同交易行为群体,形成清晰的客户分群和特征描述,支持精准营销和风险管理。
---
## 第一步:识别输入类型,选择路径
收到用户请求后,先做两个判断:
**判断 1:是否有交易数据?**
- 用户提供了客户交易数据、行为指标 → 直接进入聚类分析
- 只有客户名/时间段 → 先说明需要的数据字段(见下方"数据需求")
- 只有简短描述(如"帮我分析客户行为") → 可基于描述给出分析框架,说明"需具体数据才能精准聚类"
**判断 2:用户需要哪种深度?**
| 用户意图 | 适用模板 |
|---------|---------|
| "分为几类""快速分群" | 模板 A:快速分群 |
| "详细分析""聚类报告" | 模板 B:标准报告 |
| "营销策略""应用建议" | 模板 C:应用版 |
| 未明确说明 | 默认模板 A,再提供"需要详细报告可继续" |
---
## 数据需求(理想字段)
**客户基本信息:**
- 客户标识、客户名称
- 客户类型(个人/机构)
- 年龄/成立时间
- 资产规模
**交易行为指标:**
- 交易频率(笔/月)
- 交易金额(万元/月)
- 持仓周期(天)
- 换手率
- 盈亏比例
**投资偏好指标:**
- 偏好证券类型(股票/基金/债券)
- 偏好行业
- 偏好市值(大盘/中小盘)
- 风险偏好(高/中/低)
**时间特征指标:**
- 活跃时段(开盘/盘中/收盘)
- 活跃日期(周一到周五)
- 交易持续性
---
## 核心分析框架
### 聚类特征选择
**1. 交易活跃度**
- 月均交易笔数
- 月均交易金额
- 交易天数占比
- 登录频率
**2. 交易风格**
- 平均持仓周期
- 换手率
- 短线交易占比
- 长线交易占比
**3. 风险偏好**
- 持仓波动率
- 持仓 Beta
- 创业板/科创板占比
- 融资融券使用
**4. 投资能力**
- 盈亏比例
- 胜率
- 平均盈利/亏损比
- 夏普比率
**5. 时间偏好**
- 开盘交易占比
- 收盘交易占比
- 周一/周五交易占比
### 聚类算法选择
**1. K-Means 聚类**
- 适用:大数据量、球形簇
- 优点:计算效率高
- 缺点:需预设 K 值、对异常值敏感
**2. 层次聚类**
- 适用:小数据量、需要树状结构
- 优点:无需预设 K 值、可可视化
- 缺点:计算复杂度高
**3. DBSCAN 聚类**
- 适用:任意形状簇、有噪声数据
- 优点:可识别异常点、无需预设 K 值
- 缺点:对参数敏感
**4. 高斯混合模型 (GMM)**
- 适用:重叠簇、概率分配
- 优点:软聚类、可处理不同形状
- 缺点:计算复杂度较高
### 典型客户群体
| 群体名称 | 特征描述 | 占比 | 营销建议 |
|---------|---------|------|---------|
| 高频交易者 | 交易频繁、持仓短、换手率高 | 10-15% | 低佣金、快速通道 |
| 价值投资者 | 持仓长、交易少、注重基本面 | 20-25% | 研报服务、长线产品 |
| 趋势跟踪者 | 追涨杀跌、技术交易、中等持仓 | 15-20% | 技术分析工具、止盈止损 |
| 稳健配置者 | 分散持仓、低风险、固定收益 | 20-25% | 理财产品、资产配置 |
| 新手投资者 | 交易少、金额小、学习需求高 | 15-20% | 投教内容、模拟交易 |
| 高风险偏好者 | 重仓单一、高波动、两融活跃 | 5-10% | 风险提示、风控工具 |
---
## 输出模板
### 模板 A:快速分群
> 适用:"分为几类""快速分群"
```
**交易行为聚类分析** | YYYY-MM-DD
**样本数量**:XX 个客户
**聚类数量**:X 类
**群体分布**:
| 群体 | 名称 | 客户数 | 占比 | 核心特征 |
|-----|------|-------|------|---------|
| 1 | 高频交易者 | XX | XX% | 交易频繁、持仓短 |
| 2 | 价值投资者 | XX | XX% | 持仓长、交易少 |
| 3 | 稳健配置者 | XX | XX% | 分散持仓、低风险 |
**建议关注**:群体 1(高贡献)、群体 6(高风险)
```
### 模板 B:标准报告
> 适用:"详细分析""聚类报告"
```
**交易行为聚类分析报告** | YYYY-MM-DD
## 一、分析概览
**分析样本**:XX 个客户
**特征维度**:X 个
**聚类算法**:XXX
**聚类数量**:X 类
## 二、群体特征
**群体 1:高频交易者**
- 客户数量:XX 个(XX%)
- 资产规模:XX 万(平均)
- 核心特征:
- 月均交易笔数:XX 笔
- 平均持仓周期:X 天
- 换手率:XX%
- 盈亏情况:胜率 XX%,平均盈利 X%
- 风险特征:持仓波动率 XX%
**群体 2:价值投资者**
- 客户数量:XX 个(XX%)
- ...
## 三、群体对比
| 特征 | 群体 1 | 群体 2 | 群体 3 | ... |
|-----|-------|-------|-------|-----|
| 交易频率 | XX | XX | XX | ... |
| 持仓周期 | XX | XX | XX | ... |
| 风险偏好 | XX | XX | XX | ... |
| 盈亏比例 | XX | XX | XX | ... |
## 四、群体价值
**贡献度分析**:
- 群体 1:贡献佣金 XX%,人均 XX 元
- 群体 2:贡献佣金 XX%,人均 XX 元
**风险暴露**:
- 群体 1:异常交易 XX 次,风险较高
- 群体 2:异常交易 XX 次,风险较低
## 五、聚类质量
**轮廓系数**:XX(越接近 1 越好)
**簇内距离**:XX(越小越好)
**簇间距离**:XX(越大越好)
```
### 模板 C:应用版
> 适用:"营销策略""应用建议"
```
**交易行为聚类应用方案** | YYYY-MM-DD
**核心结论**:识别 X 类客户群体,差异化策略建议如下
**群体策略矩阵**:
| 群体 | 名称 | 规模 | 价值 | 风险 | 核心策略 |
|-----|------|------|------|------|---------|
| 1 | 高频交易者 | XX | 高 | 中 | 保留 + 提效 |
| 2 | 价值投资者 | XX | 中 | 低 | 深耕 + 转化 |
| 3 | 稳健配置者 | XX | 中 | 低 | 维护 + 交叉 |
**分群营销策略**:
**群体 1(高频交易者)**:
- 产品推荐:低佣金套餐、快速交易通道
- 服务内容:实时行情、量化工具
- 触达方式:APP 推送、交易提醒
- 话术要点:"降低交易成本"、"提升交易效率"
**群体 2(价值投资者)**:
- 产品推荐:研报服务、长线理财产品
- 服务内容:深度研究、投资顾问
- 触达方式:邮件、一对一沟通
- 话术要点:"长期价值"、"稳健收益"
**风控应用建议**:
| 群体 | 风险类型 | 监控重点 | 预警阈值 |
|-----|---------|---------|---------|
| 1 | 异常交易 | 高频撤单、对倒 | 撤单率>50% |
| 6 | 过度风险 | 持仓集中、高杠杆 | 集中度>40% |
```
---
## 特殊情况处理
**数据稀疏**:如部分客户交易数据较少,说明"建议补充更多特征或单独处理低频客户"
**群体重叠**:如群体间特征重叠明显,说明"建议调整特征权重或增加聚类数量"
**异常值影响**:如存在极端交易客户,说明"建议先剔除异常值或采用鲁棒聚类算法"
**动态变化**:如客户行为随时间变化,说明"建议定期重新聚类,跟踪群体迁移"
---
## 语言要求
- 先给结论,再给支撑数据
- 群体特征描述要清晰、有区分度
- 明确区分:聚类结果 vs 特征分析 vs 应用建议
- 关键数字、群体名称、策略要点单独指出
- 应用建议要具体、可执行、可追踪
---
## Reference
**聚类算法:**
- K-Means 聚类算法
- 层次聚类(Hierarchical Clustering)
- DBSCAN 密度聚类
- 高斯混合模型(GMM)
**特征工程:**
- RFM 模型(Recency, Frequency, Monetary)
- 客户生命周期价值(CLV)
- 行为序列分析
**行业应用:**
- 证券客户分群实践
- 银行客户细分模型
- 电商用户画像构建
---
## Scripts
**Python 交易行为聚类示例:**
```python
import pandas as pd
import numpy as np
from sklearn.cluster import KMeans
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import silhouette_score
def prepare_features(trade_data, client_data):
"""
准备聚类特征
参数:
trade_data: 交易数据 DataFrame
client_data: 客户信息 DataFrame
返回:
特征 DataFrame
"""
# 聚合交易指标
features = trade_data.groupby('client_id').agg({
'trade_id': 'count', # 交易笔数
'amount': ['sum', 'mean'], # 交易金额
'hold_days': 'mean', # 持仓周期
'turnover_rate': 'mean', # 换手率
'pnl_ratio': 'mean', # 盈亏比例
}).reset_index()
# 扁平化列名
features.columns = ['client_id', 'trade_count', 'total_amount', 'avg_amount',
'avg_hold_days', 'avg_turnover', 'avg_pnl']
# 合并客户信息
features = features.merge(client_data[['client_id', 'asset_scale', 'risk_level']],
on='client_id', how='left')
return features
def cluster_trading_behavior(features, n_clusters=6):
"""
交易行为聚类
参数:
features: 特征 DataFrame
n_clusters: 聚类数量
返回:
聚类结果 DataFrame
"""
# 选择聚类特征
cluster_cols = ['trade_count', 'avg_amount', 'avg_hold_days',
'avg_turnover', 'avg_pnl', 'asset_scale']
# 数据标准化
scaler = StandardScaler()
X = scaler.fit_transform(features[cluster_cols].fillna(0))
# K-Means 聚类
kmeans = KMeans(n_clusters=n_clusters, random_state=42, n_init=10)
features['cluster'] = kmeans.fit_predict(X)
# 计算轮廓系数
silhouette = silhouette_score(X, features['cluster'])
return features, silhouette
def analyze_cluster_features(features, cluster_cols):
"""
分析群体特征
参数:
features: 聚类结果 DataFrame
cluster_cols: 特征列
返回:
群体特征 DataFrame
"""
cluster_summary = features.groupby('cluster')[cluster_cols].agg(['mean', 'median', 'std'])
cluster_summary['count'] = features.groupby('cluster').size()
cluster_summary['ratio'] = cluster_summary['count'] / len(features) * 100
return cluster_summary
def name_clusters(cluster_summary):
"""
根据特征为群体命名
参数:
cluster_summary: 群体特征 DataFrame
返回:
群体命名字典
"""
names = {}
for cluster_id in cluster_summary.index:
row = cluster_summary.loc[cluster_id]
# 简单命名规则(实际应更复杂)
if row[('trade_count', 'mean')] > row[('trade_count', 'mean')].mean() * 1.5:
names[cluster_id] = '高频交易者'
elif row[('avg_hold_days', 'mean')] > row[('avg_hold_days', 'mean')].mean() * 1.5:
names[cluster_id] = '价值投资者'
elif row[('avg_turnover', 'mean')] < row[('avg_turnover', 'mean')].mean() * 0.5:
names[cluster_id] = '稳健配置者'
else:
names[cluster_id] = f'群体{cluster_id + 1}'
return names
# 使用示例
if __name__ == '__main__':
# 假设数据
np.random.seed(42)
n_clients = 1000
data = {
'client_id': range(n_clients),
'trade_count': np.random.poisson(20, n_clients),
'avg_amount': np.random.exponential(100000, n_clients),
'avg_hold_days': np.random.exponential(10, n_clients),
'avg_turnover': np.random.beta(2, 5, n_clients),
'avg_pnl': np.random.normal(0.05, 0.2, n_clients),
'asset_scale': np.random.lognormal(13, 1, n_clients)
}
features = pd.DataFrame(data)
# 聚类
result, silhouette = cluster_trading_behavior(features, n_clusters=6)
print(f"轮廓系数:{silhouette:.3f}")
# 分析群体特征
cluster_cols = ['trade_count', 'avg_amount', 'avg_hold_days', 'avg_turnover', 'avg_pnl']
summary = analyze_cluster_features(result, cluster_cols)
print(summary)
```
**SQL 查询示例:**
```sql
-- 准备聚类特征数据
SELECT
t.client_id,
COUNT(*) as trade_count,
SUM(t.amount) as total_amount,
AVG(t.amount) as avg_amount,
AVG(t.hold_days) as avg_hold_days,
AVG(t.turnover_rate) as avg_turnover,
AVG(t.pnl_ratio) as avg_pnl,
c.asset_scale,
c.risk_level
FROM trade_detail t
JOIN client_info c ON t.client_id = c.client_id
WHERE t.trade_date >= DATE_SUB(CURDATE(), INTERVAL 90 DAY)
GROUP BY t.client_id, c.asset_scale, c.risk_level
HAVING trade_count >= 5; -- 至少 5 笔交易
```Related Skills
trading-event-summary
交易事件摘要助手,适用于券商研究、投资管理、交易复盘、决策支持等场景。 以下情况请主动触发此技能: - 用户提供了交易记录、市场事件列表,问"帮我总结一下""今天发生了什么""有什么重要事件" - 用户问"今天市场有什么大事""交易日历怎么看""近期有哪些重要事件" - 用户需要:交易事件整理、市场大事摘要、投资决策参考、复盘材料 - 用户提到:交易日历、重要事件、市场大事、事件摘要、复盘 - 用户需要形成日报、周报、月报、会议纪要、投资决策材料 不要等用户明确说"交易事件摘要"——只要涉及市场事件整理、交易日历分析、重要事项摘要,就应主动启动此技能。
risk-customer-behavior-change
分析高风险客户在交易、账户、渠道、产品等维度的行为变化趋势,辅助合规团队持续监测和风险评估
abnormal-trading-high-frequency-cancellation
异常交易识别助手(高频撤单版),适用于券商风控、合规监控、交易行为分析、监管报送等场景。 以下情况请主动触发此技能: - 用户提供了交易数据、撤单记录、委托流水,问"有没有异常""帮我看看""是否涉嫌高频撤单" - 用户问"高频撤单怎么识别""撤单率多少算异常""什么是虚假申报" - 用户需要:高频撤单监控规则、阈值设定、异常账户筛查、监管标准解读 - 用户提到:撤单率、申报频率、成交占比、虚假申报、幌骗交易、spoofing - 用户需要形成风控报告、合规核查意见、异常交易说明 不要等用户明确说"高频撤单识别"——只要涉及交易委托撤单行为分析、异常申报模式识别、交易合规性判断,就应主动启动此技能。
abnormal-trading-detection-assistant
异常交易检测助手。专注于识别账户异常交易行为,包括频繁交易、大额交易、关联交易、内幕交易风险等,帮助合规风控人员及时发现潜在风险。 **触发场景**: - 用户需要检测账户异常交易行为 - 用户说"异常交易"、"交易检测"、"风控筛查" - 需要识别频繁交易、大额交易、关联交易 - 需要内幕交易风险筛查、合规检查 **关键词**:"异常交易"、"交易检测"、"风控"、"合规"、"频繁交易"、"大额交易"、"关联交易"、"内幕交易"
abnormal-trading-account-correlation
异常交易识别助手(账户联动版),适用于券商风控、合规监控、交易行为分析、监管报送等场景。 以下情况请主动触发此技能: - 用户提供了多账户交易数据,问"这些账户是否联动""有没有关联关系""帮我看看" - 用户问"账户联动怎么识别""如何判断一致行动人""关联账户筛查方法" - 用户需要:账户关联识别规则、联动交易监控、一致行动人判定、监管标准解读 - 用户提到:关联账户、一致行动人、账户组、协同交易、对倒对敲 - 用户需要形成风控报告、合规核查意见、异常交易说明 不要等用户明确说"账户联动识别"——只要涉及多账户交易行为关联分析、一致行动人识别、协同交易模式识别,就应主动启动此技能。
abnormal-trading-abnormal-execution
异常交易识别助手(异常成交版),适用于券商风控、合规监控、交易行为分析、监管报送等场景。 以下情况请主动触发此技能: - 用户提供了成交数据、交易流水,问"成交是否异常""有没有对倒/对敲""帮我看看" - 用户问"异常成交怎么识别""什么是对倒交易""如何判断利益输送" - 用户需要:异常成交监控规则、阈值设定、可疑交易筛查、监管标准解读 - 用户提到:对倒、对敲、自买自卖、利益输送、拉抬打压、尾盘异动 - 用户需要形成风控报告、合规核查意见、异常交易说明 不要等用户明确说"异常成交识别"——只要涉及成交行为分析、可疑交易模式识别、交易合规性判断,就应主动启动此技能。
abnormal-investment-behavior-monitoring
面向基金合规与信息披露领域的异常监测任务Skill,围绕「异常投资行为监测助手」场景提供信息抽取、结构化分析与结果输出。
a-share-stock-clustering
A股股票聚类/相似股票发现。当用户说"聚类"、"clustering"、"相似股票"、"类似的股票"、"同类股票"、"走势相似"时触发。量化聚类分析股票相似性。支持formal和brief风格。
a-share-reinforcement-trading
A股强化学习交易策略。当用户说"强化学习"、"reinforcement learning"、"RL交易"、"RL策略"、"DQN交易"、"PPO策略"、"智能体交易"时触发。基于 cn-stock-data 获取数据,设计RL交易环境与策略。支持 formal/brief 两种输出风格。
a-share-pairs-trading
A股配对交易/统计套利分析。当用户说"配对交易"、"pairs trading"、"统计套利"、"价差交易"、"XX和YY能配对吗"、"协整"、"spread"、"套利"时触发。基于 cn-stock-data 获取双标的K线数据,进行协整检验、价差分析、交易信号生成。支持研报风格(formal)和快速分析风格(brief)。
a-share-margin-trading
A股融资融券/两融分析。当用户说"融资融券"、"两融"、"融资余额"、"融券"、"margin trading"、"杠杆资金"、"融资盘"、"XX的融资余额"、"两融风向"、"杠杆水平"时触发。基于 akshare 融资融券数据和 cn-stock-data 行情数据,分析全市场两融趋势、个股融资融券变化、杠杆资金方向判断。支持研报风格(formal)和快速解读风格(brief)。不适用于北向资金(用 a-share-northbound)或基金持仓(用 a-share-fund-holding)。
a-share-informed-trading
A股知情交易/PIN模型分析。当用户说"知情交易"、"PIN"、"informed trading"、"内幕交易"、"信息交易"、"知情交易概率"时触发。基于 cn-stock-data 获取数据,估算知情交易概率。支持 formal/brief 两种输出风格。