news 2026/5/26 8:38:47

3 天从 0 入门 SQL:交易所 Market Surveillance 实战速成(Wash Trading / Spoofing / Pump Dump)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
3 天从 0 入门 SQL:交易所 Market Surveillance 实战速成(Wash Trading / Spoofing / Pump Dump)

Day 1:记住 6 大核心语法(2 小时顶一辈子)

大多数人学 SQL 最大的痛苦是:记不住。

但 Market Surveillance 的 SQL 永远只用这 6 个语法。

Market Surveillance 永远用这 6 个关键词

语法 用途 用在哪些风控逻辑里?

SELECT 取哪些列 交易次数、成交量、涨幅

FROM 从哪张表 trades / orders / positions

WHERE 过滤行 按 symbol、时间、用户过滤

GROUP BY 分组统计 按 user_id、symbol 等汇总行为

HAVING 过滤分组后的结果 “交易 ≥ 20 次的用户”“净成交量 ≤ 10”

ORDER BY 排序 按可疑程度排序

LIMIT 只看前几名 Top 10 可疑账户

额外再记 4 个聚合函数(统计函数):

COUNT(*) → 统计行数(交易次数)

SUM(列) → 求和(成交量)

AVG(列) → 平均值(平均价格)

MAX(列)/MIN(列) → 最大/最小

背口诀(以后所有查询都按这个顺序写)

“先 FROM 哪张表 → WHERE 过滤行 → GROUP BY 分组 → HAVING 过滤组 → SELECT 要什么 → ORDER BY 排序 → LIMIT 取几个”

看例子(交易所风控最常见的结构):

SELECT user_id, COUNT(*) AS trade_count

FROM trades

WHERE symbol = 'BTCUSDT'

GROUP BY user_id

HAVING COUNT(*) >= 100

ORDER BY trade_count DESC

LIMIT 10;

含义:找出交易 BTCUSDT 超过 100 次的用户,排序后取前 10 名。

📝 Day 1 作业(30 分钟)

把上面的查询改成:

改成 DOGEUSDT

改成今天的数据(WHERE trade_time >= '2025-11-27')

改成交易次数 ≥ 50 次 自己敲 5 遍,直到不看也能写出来。

自己敲 5 遍 做到不看答案也能写。

🟩 Day 2:学会 4 个精华语法 = 能写 90% 的复杂查询

今天你将掌握 Market Surveillance 用得最多的 4 项技能。

① AS 重命名(让内容可读)

COUNT(*) AS trade_count -- 原来叫 COUNT(*),现在叫 trade_count

② CASE WHEN 条件判断(超关键)

-- 把 BUY 变成 +volume,SELL 变成 -volume

SUM(CASE WHEN side='BUY' THEN volume

WHEN side='SELL' THEN -volume

ELSE 0 END) AS net_volume

这是 所有“净成交量、净方向、净资金流”类风控逻辑的核心语句。

③ 时间处理(交易所有大量按小时/天过滤)

WHERE trade_time >= '2025-11-27' -- 某一天

WHERE trade_time >= NOW() - INTERVAL '1 day' -- 最近 1 天

WHERE DATE(trade_time) = '2025-11-27' -- 按自然日

④ WITH CTE(写复杂风控查询的神器)

WITH today_trades AS (

SELECT * FROM trades WHERE DATE(trade_time) = '2025-11-27'

)

SELECT user_id, COUNT(*) FROM today_trades GROUP BY user_id;

📝 Day 2 终极作业(40 分钟)

写出下面这个检测 wash trading 的 SQL:

“找出今天 DOGEUSDT 上,净成交量 ≈ 0(≤ 50),且交易次数 ≥ 30 的用户”

答案(自己写完再看):

SELECT

user_id,

COUNT(*) AS trade_count,

ABS(SUM(CASE WHEN side = 'BUY' THEN volume

WHEN side = 'SELL' THEN -volume

ELSE 0 END)) AS net_volume

FROM trades

WHERE symbol = 'DOGEUSDT'

AND DATE(trade_time) = '2025-11-27'

GROUP BY user_id

HAVING COUNT(*) >= 30

AND ABS(SUM(CASE WHEN side = 'BUY' THEN volume

WHEN side = 'SELL' THEN -volume ELSE 0 END)) <= 50

ORDER BY trade_count DESC;

这就是 wash trading 检测基础版。

🟥 Day 3:交易所真实面试题(手把手拆解)

今天直接实战 3 个 Market Surveillance 经典题型,现在就把前面给你的 3 个复杂查询拆成最简单的话,一句一句教你写。

✔ 真题 1:Wash Trading 检测(最常见)

SELECT

user_id,

symbol,

COUNT(*) AS trade_count, -- 交易次数

MIN(price) AS min_price, -- 最低价

MAX(price) AS max_price, -- 最高价

ABS(SUM(CASE WHEN side='BUY' THEN volume ELSE -volume END)) AS net_volume -- 净成交量

FROM trades

WHERE trade_time >= '2025-11-27'

GROUP BY user_id, symbol

HAVING

COUNT(*) >= 20

AND (MAX(price) - MIN(price)) <= MIN(price) * 0.001 -- 价格波动 ≤0.1%

AND ABS(SUM(CASE WHEN side='BUY' THEN volume ELSE -volume END)) <= 10

LIMIT 20;

🎯 逻辑解释(你在面试要能说出来)

交易很多次

但价格几乎不动(横盘)

买卖量互相抵消(净成交量≈0)

→ 典型洗量(制造虚假活跃)。

✔ 真题 2:Spoofing(大量下单→撤单)

SELECT

user_id,

COUNT(*) FILTER (WHERE status = 'CANCELED') AS cancel_count, -- 撤单次数

AVG(quantity) FILTER (WHERE status = 'CANCELED') AS avg_cancel_qty -- 平均撤单量

FROM orders

WHERE created_at >= NOW() - INTERVAL '1 hour'

GROUP BY user_id

HAVING cancel_count >= 50

ORDER BY cancel_count DESC

LIMIT 10;

🎯 逻辑解释

1 小时内撤单 ≥ 50 次

说明可能反复挂单→撤单扰动价格(spoofing 行为)

✔ 真题 3:Pump & Dump 快速监测

SELECT

symbol,

MAX(price)/MIN(price) - 1 AS max_rise

FROM trades

WHERE trade_time >= NOW() - INTERVAL '4 hours'

GROUP BY symbol

HAVING max_rise >= 0.5 -- 4小时内涨幅 ≥50%

ORDER BY max_rise DESC -- 最大涨幅

LIMIT 10;

🎯 逻辑解释

在短期内暴涨 ≥ 50%

是 pump & dump 的潜在目标

3 天完整学习任务表

Day 1(今天):

背会 6 个基本语法 + 4 个聚合函数

敲 10 遍最基础的“统计每个用户交易次数”查询

完成 Day1 作业(改 3 次)

Day 2(明天):

学会 CASE WHEN 和时间处理

独立写出“净成交量几乎为 0”的查询

敲 5 遍

Day 3(后天):

跟着我一句一句敲完上面 3 个真题

自己遮住再手写一遍

把 3 个查询背下来,随时能 3 分钟写完

完成后,你即可在简历写:

熟练使用 SQL 进行 wash trading、spoofing、pump&dump 等市场操纵行为检测,能够独立编写复杂多条件查询。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/26 4:49:54

AI 智能体 RAG 入门教程

正在寻找⼀种可靠的⽅法来构建智能知识客服或强⼤的知识库&#xff1f;检索增强生成 (RAG) 技术正是您实现这些⽬标的理想选择。 RAG&#xff0c;全称为 Retrieval-Augmented Generation&#xff0c;中⽂译为检索增强⽣成。这项技术的核⼼在于整合两⼤关键功能&#xff1a; 检索…

作者头像 李华
网站建设 2026/5/25 12:16:12

源代码加密软件怎么选?应该考虑哪些关键技术要点

在源代码开发场景中&#xff0c;加密软件的选型需同时兼顾安全防护与开发效率&#xff0c;传统文件透明加密易被绕过、存在文件损坏风险&#xff0c;云桌面则成本高、依赖网络。深信达SDC 沙箱以全磁盘加密、代码级安全防护为核心&#xff0c;适配本机原生开发模式&#xff0c;…

作者头像 李华
网站建设 2026/5/25 13:39:43

LeetCode 3573.买卖股票的最佳时机 V:深度优先搜索

【LetMeFly】3573.买卖股票的最佳时机 V&#xff1a;深度优先搜索 / 动态规划&#xff1a;通俗讲解 力扣题目链接&#xff1a;https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-v/ 给你一个整数数组 prices&#xff0c;其中 prices[i] 是第 i 天股票的价格&…

作者头像 李华
网站建设 2026/5/26 8:15:53

从零构建智能四足机器人:Mini Pupper开发全流程解析

在机器人技术快速发展的今天&#xff0c;拥有一款能够自主导航、执行复杂动作的四足机器人不再是遥不可及的梦想。Mini Pupper作为一款开源ROS机器人狗套件&#xff0c;为机器人爱好者提供了从硬件组装到软件编程的完整解决方案&#xff0c;让每个人都能亲手打造属于自己的智能…

作者头像 李华
网站建设 2026/5/25 14:27:13

别再用 PHP 动态方法调用了!三个坑让你代码难以维护

可能在项目代码里见过这样的写法&#xff1a;$this->{methodName}() 或者 $this->{$variable}()。这就是动态方法调用&#xff0c;在运行时才确定要调用哪个方法。看起来很灵活对吧&#xff1f;但用多了你就会发现&#xff0c;这玩意儿会给代码维护带来不少麻烦。IDE 找不…

作者头像 李华