Replace "insider trading" terminology with "information asymmetry"
Neutral language reduces legal risk for open-source distribution. All prompts, comments, and UI text updated. Database migration code and field names (insider_evidence) preserved for compatibility. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
76f22eec8b
commit
134ac61884
+2
-2
@@ -156,7 +156,7 @@ class WhaleWatcher:
|
||||
logger.separator()
|
||||
|
||||
def _send_alert_email(self, whale_trade: WhaleTrade, report: str, likelihood: float):
|
||||
"""Send real-time email alert for high insider trading likelihood signals."""
|
||||
"""Send real-time email alert for high information asymmetry signals."""
|
||||
settings = get_settings()
|
||||
if not settings.email_enabled or not settings.email_sender or not settings.email_password:
|
||||
return
|
||||
@@ -166,7 +166,7 @@ class WhaleWatcher:
|
||||
|
||||
try:
|
||||
subject = (
|
||||
f"内幕交易警报 ({likelihood:.0%}) — "
|
||||
f"异常交易警报 ({likelihood:.0%}) — "
|
||||
f"BUY {trade.outcome} @ {trade.price:.4f} "
|
||||
f"${trade.usdc_size:,.0f} — {whale_trade.market_question[:50]}"
|
||||
)
|
||||
|
||||
+1
-1
@@ -234,7 +234,7 @@ class WhaleTrade(BaseModel):
|
||||
### 分析要点
|
||||
1. 这笔大额交易 (${self.trade.usdc_size:,.2f}) 的方向为 **BUY {self.trade.outcome} Token**,{'表明交易者看多,认为事件会发生' if self.trade.outcome == 'Yes' else '表明交易者看空,认为事件不会发生'}
|
||||
2. 买入价格 {self.trade.price:.4f},赔率约 {1/self.trade.price:.1f}x
|
||||
3. **交易者排名和历史交易是判断内幕交易可信度的重要参考**
|
||||
3. **交易者排名和历史交易是判断信息不对称可信度的重要参考**
|
||||
4. **注意分析该鲸鱼在同一事件下的其他持仓** — 如果持有反向仓位可能是对冲策略
|
||||
5. **参考该市场 Top 多空持仓者的阵营** — 精英交易者集中在哪一方
|
||||
"""
|
||||
|
||||
@@ -11,13 +11,13 @@ class WhaleAnalyzerPrompts:
|
||||
"""System prompt for whale trade analysis with tool-use."""
|
||||
current_utc = datetime.now(timezone.utc).strftime('%Y-%m-%d %H:%M:%S UTC')
|
||||
|
||||
return f"""你是一位专业的预测市场分析师和内幕交易识别专家,专门分析 Polymarket 上的大额异常交易。
|
||||
return f"""你是一位专业的预测市场分析师和信息不对称识别专家,专门分析 Polymarket 上的大额异常交易。
|
||||
|
||||
**当前真实时间**:{current_utc}
|
||||
|
||||
## 你的核心任务
|
||||
|
||||
验证一笔"疑似异常交易"是否真的是"内幕交易"(即交易者掌握了市场尚未反映的信息)。
|
||||
验证一笔"疑似异常交易"是否存在信息不对称(即交易者可能掌握了市场尚未反映的信息优势)。
|
||||
|
||||
## 你会收到的数据
|
||||
|
||||
@@ -60,7 +60,7 @@ class WhaleAnalyzerPrompts:
|
||||
- 根据市场类型和交易特征,自行判断需要调用哪些工具
|
||||
- 可以调用一个、多个或零个工具
|
||||
- 可以用不同的关键词多次调用同一工具
|
||||
- 如果交易金额特别大或内幕嫌疑高,应更积极地搜索验证
|
||||
- 如果交易金额特别大或信息不对称嫌疑高,应更积极地搜索验证
|
||||
|
||||
**工具协作与交叉验证(重要)**:
|
||||
- 不同工具获取到的信息必须**交叉验证**,不要仅凭单一信息源下结论。例如:网页搜索发现某政策传闻,应再用 Twitter 搜索验证舆论反应,用经济数据佐证影响
|
||||
@@ -89,9 +89,9 @@ class WhaleAnalyzerPrompts:
|
||||
- **活跃市场**:近期参与的市场类型反映交易者的专长领域,与当前市场主题是否匹配
|
||||
- **近期交易记录**:具体的买卖方向、金额和价格,帮助判断交易者的策略模式
|
||||
|
||||
### 内幕交易可信度判断标准(必须严格遵守)
|
||||
### 信息不对称可信度判断标准(必须严格遵守)
|
||||
|
||||
**"内幕交易"的定义非常严格**:交易者必须掌握了市场尚未反映的、非公开的、具体的信息(如未公布的政策决定、未发布的数据、私下谈判结果等)。仅仅是"聪明的分析"、"经验丰富"或"排名高"都**不构成**内幕交易。
|
||||
**"信息不对称"的定义非常严格**:交易者必须掌握了市场尚未反映的、非公开的、具体的信息(如未公布的政策决定、未发布的数据、私下谈判结果等)。仅仅是"聪明的分析"、"经验丰富"或"排名高"都**不构成**信息不对称。
|
||||
|
||||
**评分校准基准(大多数交易应落在 0.2-0.5 之间)**:
|
||||
|
||||
@@ -102,7 +102,7 @@ class WhaleAnalyzerPrompts:
|
||||
- **0.0-0.2(极低)**: 未上榜交易者的常规交易,无任何异常信号。
|
||||
|
||||
**常见的错误高估场景(必须避免)**:
|
||||
- ❌ 仅因为交易者排名高就给 0.7+(高排名交易者每天做很多交易,绝大多数不是内幕交易)
|
||||
- ❌ 仅因为交易者排名高就给 0.7+(高排名交易者每天做很多交易,绝大多数不存在信息不对称)
|
||||
- ❌ 仅因为交易金额大就给 0.6+(大额交易是鲸鱼的常规操作)
|
||||
- ❌ 短期价格预测市场(如"Bitcoin Up or Down 5分钟")给高分(这类市场几乎不可能有内幕信息)
|
||||
- ❌ 临近到期的市场、价格接近 0 或 1 的交易给高分(这通常是市场共识的正常体现)
|
||||
@@ -118,9 +118,9 @@ class WhaleAnalyzerPrompts:
|
||||
## 事件关联持仓分析
|
||||
|
||||
交易数据中会包含鲸鱼在同一事件(Event)下其他市场的持仓情况。你需要综合分析:
|
||||
- **对冲识别**:如果鲸鱼在同一事件的不同市场持有反向仓位,可能是对冲策略而非单方向押注,应降低内幕可信度
|
||||
- **对冲识别**:如果鲸鱼在同一事件的不同市场持有反向仓位,可能是对冲策略而非单方向押注,应降低信息不对称评分
|
||||
- **关联押注**:如果鲸鱼在同一事件的多个市场持有同向仓位(如同时看多多个相关市场),这增强了信号强度
|
||||
- **套利行为**:同一事件下价格不一致时,鲸鱼可能在做套利,这不是内幕交易信号
|
||||
- **套利行为**:同一事件下价格不一致时,鲸鱼可能在做套利,这不是信息不对称信号
|
||||
|
||||
## 市场多空力量分析
|
||||
|
||||
@@ -201,7 +201,7 @@ class WhaleAnalyzerPrompts:
|
||||
|
||||
### 3. 事件关联持仓分析
|
||||
- 该鲸鱼在同一事件的其他市场是否有持仓?
|
||||
- 如果有反向持仓(如同时持有 Yes 和 No,或在相关市场对冲),可能是对冲/套利策略,应降低内幕可信度
|
||||
- 如果有反向持仓(如同时持有 Yes 和 No,或在相关市场对冲),可能是对冲/套利策略,应降低信息不对称评分
|
||||
- 如果同方向押注多个关联市场,则信号增强
|
||||
|
||||
### 4. 市场多空力量分析
|
||||
|
||||
@@ -350,5 +350,5 @@ class AnomalyDetector:
|
||||
4. **注意分析该鲸鱼在同一事件下的其他持仓** — 如果持有反向仓位可能是对冲策略
|
||||
5. **参考该市场 Top 多空持仓者的阵营** — 高排名交易者集中在哪一方
|
||||
|
||||
请分析这笔交易的内幕交易可能性。
|
||||
请分析这笔交易的信息不对称可能性。
|
||||
"""
|
||||
|
||||
@@ -17,7 +17,7 @@ class AnomalyHistoryService:
|
||||
Only signals with likelihood >= 0.4 are used as historical context for LLM.
|
||||
"""
|
||||
|
||||
# Minimum insider trading likelihood to use as historical context for LLM
|
||||
# Minimum information asymmetry score to use as historical context for LLM
|
||||
MIN_CONTEXT_LIKELIHOOD = 0.4
|
||||
|
||||
def __init__(self, db_path: str = "data/signals.db"):
|
||||
@@ -91,7 +91,7 @@ class AnomalyHistoryService:
|
||||
context = f"""
|
||||
### 历史异常交易信号 (共 {signal_count} 笔)
|
||||
|
||||
**重要**: 该市场之前已经检测到 {signal_count} 笔异常交易。请将这些历史信号与当前最新信号一起进行综合分析,统一评估内幕交易可能性。
|
||||
**重要**: 该市场之前已经检测到 {signal_count} 笔异常交易。请将这些历史信号与当前最新信号一起进行综合分析,统一评估信息不对称可能性。
|
||||
|
||||
"""
|
||||
for i, signal in enumerate(signals, 1):
|
||||
@@ -106,7 +106,7 @@ class AnomalyHistoryService:
|
||||
**综合分析要点**:
|
||||
1. 对比所有信号(历史+当前)的交易方向,分析是否有一致趋势
|
||||
2. 对比不同交易者的排名和历史记录,判断"聪明钱"的流向
|
||||
3. 如果多个高排名交易者都指向同一方向,内幕交易可能性显著提高
|
||||
3. 如果多个高排名交易者都指向同一方向,信息不对称可能性显著提高
|
||||
4. 如果信号方向相反,需要分析原因(时间变化、新信息、不同判断)
|
||||
5. 考虑时间因素:越近期的信号越有参考价值
|
||||
6. 观察交易金额的变化趋势:金额是否在增加?
|
||||
|
||||
@@ -23,7 +23,7 @@ class DailyBriefingGenerator:
|
||||
Generates daily briefings summarizing high-value signals.
|
||||
|
||||
Includes:
|
||||
- Insider trading signals with likelihood >= 60%
|
||||
- Smart money signals with information asymmetry score >= 60%
|
||||
- Price volatility alerts
|
||||
- Historical signal performance stats
|
||||
"""
|
||||
@@ -56,7 +56,7 @@ class DailyBriefingGenerator:
|
||||
|
||||
def _load_insider_signals(self, date: datetime) -> tuple:
|
||||
"""
|
||||
Load insider trading signals for a specific date from the database.
|
||||
Load smart money signals for a specific date from the database.
|
||||
|
||||
First tries to find signals with likelihood >= 60%.
|
||||
If none found, falls back to the top 5 by likelihood.
|
||||
@@ -180,7 +180,7 @@ class DailyBriefingGenerator:
|
||||
if is_fallback:
|
||||
summary_line = f"- 今日无可信度 ≥ 60% 的内幕信号,以下为可信度最高的 **{len(insider_signals)}** 条"
|
||||
else:
|
||||
summary_line = f"- 高可信度内幕交易信号: **{len(insider_signals)}** 个 (可信度 ≥ 60%)"
|
||||
summary_line = f"- 高可信度信息不对称信号: **{len(insider_signals)}** 个 (可信度 ≥ 60%)"
|
||||
|
||||
lines.extend([
|
||||
"## 今日概览",
|
||||
@@ -194,7 +194,7 @@ class DailyBriefingGenerator:
|
||||
if is_fallback:
|
||||
section_title = "## 今日可信度最高的异常交易"
|
||||
else:
|
||||
section_title = "## 高可信度内幕交易信号"
|
||||
section_title = "## 高可信度信息不对称信号"
|
||||
|
||||
lines.extend([
|
||||
"---",
|
||||
|
||||
@@ -14,7 +14,7 @@ logger = logging.getLogger(__name__)
|
||||
class MarketFetcher:
|
||||
"""Fetches and manages trending markets from Polymarket Gamma API."""
|
||||
|
||||
# Short-term price prediction markets to filter out (no insider trading value)
|
||||
# Short-term price prediction markets to filter out (no signal value)
|
||||
# Matches patterns like "Bitcoin Up or Down - March 27, 2:00AM-2:15AM ET"
|
||||
SHORT_TERM_PRICE_KEYWORDS = [
|
||||
"up or down", # "Bitcoin Up or Down - March 27, 2:00AM"
|
||||
@@ -24,7 +24,7 @@ class MarketFetcher:
|
||||
"green or red", # daily candle color
|
||||
]
|
||||
|
||||
# Temperature/weather markets (no insider trading value)
|
||||
# Temperature/weather markets (no signal value)
|
||||
WEATHER_KEYWORDS = [
|
||||
"highest temperature",
|
||||
"lowest temperature",
|
||||
|
||||
Reference in New Issue
Block a user