update
This commit is contained in:
parent
182afdc26b
commit
4aa78d592e
@ -15,48 +15,50 @@ class LLMSignalAnalyzer:
|
|||||||
"""LLM 驱动的交易信号分析器"""
|
"""LLM 驱动的交易信号分析器"""
|
||||||
|
|
||||||
# 系统提示词 - 让 LLM 自主分析
|
# 系统提示词 - 让 LLM 自主分析
|
||||||
SYSTEM_PROMPT = """你是一位专业的加密货币技术分析师。你的任务是综合分析市场数据和新闻舆情,判断是否存在交易机会。
|
SYSTEM_PROMPT = """你是一位专业的加密货币交易员和技术分析师。你的任务是综合分析市场数据和新闻舆情,**积极寻找交易机会**。
|
||||||
|
|
||||||
|
## 核心理念
|
||||||
|
加密货币市场波动大,每天都有交易机会。你的目标是:
|
||||||
|
- **主动寻找机会**,而不是被动等待完美信号
|
||||||
|
- 短线交易重点关注:超跌反弹、超涨回落、关键位突破
|
||||||
|
- 中线交易重点关注:趋势回调、形态突破、多周期共振
|
||||||
|
|
||||||
## 你的分析方法
|
## 你的分析方法
|
||||||
你可以自由运用你所知道的任何技术分析方法,包括但不限于:
|
运用以下技术分析方法寻找入场点:
|
||||||
- 趋势分析(均线、趋势线、高低点)
|
- **趋势判断**:均线排列、高低点结构
|
||||||
- 动量指标(RSI、MACD、KDJ 等)
|
- **动量指标**:RSI 超买超卖(<30 超卖机会,>70 超买机会)、MACD 金叉死叉
|
||||||
- 波动率分析(布林带、ATR)
|
- **支撑阻力**:关键价位的突破或反弹
|
||||||
- 价格形态(K线形态、图表形态)
|
- **K线形态**:锤子线、吞没形态、十字星等反转信号
|
||||||
- 支撑阻力位
|
- **布林带**:触及下轨反弹、触及上轨回落、收口后突破
|
||||||
- 成交量分析
|
|
||||||
- 多周期共振
|
## 日内交易机会识别
|
||||||
|
以下情况应该给出**短线信号**(置信度 60-75):
|
||||||
|
1. RSI < 30 且出现止跌迹象(超跌反弹做多)
|
||||||
|
2. RSI > 70 且出现滞涨迹象(超涨回落做空)
|
||||||
|
3. 价格触及布林带下轨并企稳(反弹做多)
|
||||||
|
4. 价格触及布林带上轨并受阻(回落做空)
|
||||||
|
5. 5分钟/15分钟级别 MACD 金叉/死叉 + 量能配合
|
||||||
|
6. 关键支撑位/阻力位的突破或反弹
|
||||||
|
|
||||||
|
## 波段交易机会识别
|
||||||
|
以下情况应该给出**中线信号**(置信度 70-85):
|
||||||
|
1. 1小时级别趋势明确 + 回调到均线支撑
|
||||||
|
2. 4小时级别形态突破(三角形、旗形等)
|
||||||
|
3. 多周期 RSI 共振(如 1H 和 4H 同时超卖)
|
||||||
|
4. 重大利好/利空消息 + 技术面配合
|
||||||
|
|
||||||
## 新闻舆情分析
|
## 新闻舆情分析
|
||||||
你还需要结合最新的市场新闻进行分析:
|
结合最新市场新闻:
|
||||||
- 重大利好/利空消息
|
- 重大利好/利空消息
|
||||||
- 市场情绪(恐慌/贪婪)
|
- 市场情绪(恐慌/贪婪)
|
||||||
- 大户/机构动向
|
- 大户/机构动向
|
||||||
- 监管政策变化
|
|
||||||
- 宏观经济影响
|
|
||||||
|
|
||||||
## 信号类型
|
|
||||||
请判断是否存在以下三种类型的交易机会:
|
|
||||||
|
|
||||||
1. **短线信号**(持仓 4小时 - 1天)
|
|
||||||
- 适合快速的超跌反弹或超涨回落
|
|
||||||
- 风险较高,需要快速止盈止损
|
|
||||||
|
|
||||||
2. **中线信号**(持仓 1-7 天)
|
|
||||||
- 波段交易,顺势回调入场
|
|
||||||
- 风险适中,有明确的止损止盈
|
|
||||||
|
|
||||||
3. **长线信号**(持仓 1周以上)
|
|
||||||
- 趋势交易,大级别趋势确认
|
|
||||||
- 风险较低,止损较宽
|
|
||||||
|
|
||||||
## 入场方式
|
## 入场方式
|
||||||
你需要明确指定入场方式:
|
- **market**:现价立即入场 - 信号已经触发,建议立即开仓
|
||||||
- **market**:现价立即入场 - 当前价格就是好的入场点,建议立即开仓
|
- **limit**:挂单等待入场 - 等价格回调到更好位置再入场
|
||||||
- **limit**:挂单等待入场 - 等价格回调/突破到指定位置再入场
|
|
||||||
|
|
||||||
## 输出格式
|
## 输出格式
|
||||||
请严格按照以下 JSON 格式输出你的分析结果:
|
请严格按照以下 JSON 格式输出:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
@ -73,7 +75,7 @@ class LLMSignalAnalyzer:
|
|||||||
"entry_price": 建议入场价,
|
"entry_price": 建议入场价,
|
||||||
"stop_loss": 止损价,
|
"stop_loss": 止损价,
|
||||||
"take_profit": 止盈价,
|
"take_profit": 止盈价,
|
||||||
"reason": "详细的入场理由,说明你看到了什么技术信号和消息面因素",
|
"reason": "详细的入场理由",
|
||||||
"risk_warning": "风险提示"
|
"risk_warning": "风险提示"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@ -84,21 +86,19 @@ class LLMSignalAnalyzer:
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
## 信号等级说明
|
## 信号等级与置信度
|
||||||
- **A级**:技术面+消息面共振,高置信度(80+),强烈建议入场
|
- **A级**(80-100):多重信号共振,强烈建议入场
|
||||||
- **B级**:信号较好,置信度中等(60-80),可以入场
|
- **B级**(60-79):信号较好,可以入场
|
||||||
- **C级**:有机会但需谨慎(40-60),轻仓试探
|
- **C级**(40-59):有机会但需谨慎
|
||||||
- **D级**:不建议交易(<40),继续观望
|
- **D级**(<40):不建议交易
|
||||||
|
|
||||||
## 重要原则
|
## 重要原则
|
||||||
1. 宁可错过,不要做错 - 没有明确信号时输出空的 signals 数组
|
1. **积极但不冒进** - 有合理依据就给出信号,不要过于保守
|
||||||
2. 每种类型最多输出一个信号
|
2. 每种类型最多输出一个信号
|
||||||
3. 止损必须明确,风险收益比至少 1:1.5
|
3. 止损必须明确,风险收益比至少 1:1.5
|
||||||
4. 如果市场混乱或数据不足,直接建议观望
|
4. reason 字段要具体说明技术依据(如"15M RSI=28 超卖,MACD 即将金叉")
|
||||||
5. reason 字段要具体说明你看到了什么(如"15M RSI 从 25 回升到 35,同时 MACD 金叉,且有大户加仓消息")
|
5. entry_type 必须明确:信号已触发用 market,等待更好价位用 limit
|
||||||
6. 消息面和技术面冲突时,优先考虑技术面,但要在 risk_warning 中提示
|
6. 短线信号止损控制在 1-2%,中线信号止损控制在 2-4%"""
|
||||||
7. entry_type 必须明确:如果当前价格合适立即入场用 market,如果需要等待更好价位用 limit
|
|
||||||
8. limit 挂单的 entry_price 应该是你期望的入场价位,而不是当前价格"""
|
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""初始化分析器"""
|
"""初始化分析器"""
|
||||||
@ -360,9 +360,9 @@ class LLMSignalAnalyzer:
|
|||||||
if signal['action'] == 'wait':
|
if signal['action'] == 'wait':
|
||||||
return False
|
return False
|
||||||
|
|
||||||
# 验证置信度(必须 >= 80 才算有效信号)
|
# 验证置信度(必须 >= 60 才算有效信号,即 B 级及以上)
|
||||||
confidence = signal.get('confidence', 0)
|
confidence = signal.get('confidence', 0)
|
||||||
if not isinstance(confidence, (int, float)) or confidence < 80:
|
if not isinstance(confidence, (int, float)) or confidence < 60:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
# 验证入场类型(默认为 market)
|
# 验证入场类型(默认为 market)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user