feat: Enhance market message with detailed prediction analysis, lock status, volume, and refined direction display.
This commit is contained in:
+55
-11
@@ -103,7 +103,7 @@ def start_bot():
|
|||||||
# 构建消息
|
# 构建消息
|
||||||
msg_lines = [
|
msg_lines = [
|
||||||
f"🎯 <b>即将结算市场 ({earliest_date})</b>\n",
|
f"🎯 <b>即将结算市场 ({earliest_date})</b>\n",
|
||||||
f"共发现 {len(earliest_markets)} 个活跃选项,以下为最值得关注的:\n"
|
f"共 {len(earliest_markets)} 个活跃选项\n"
|
||||||
]
|
]
|
||||||
|
|
||||||
for i, s in enumerate(top_markets, 1):
|
for i, s in enumerate(top_markets, 1):
|
||||||
@@ -112,33 +112,77 @@ def start_bot():
|
|||||||
prediction = s.get("prediction", "N/A")
|
prediction = s.get("prediction", "N/A")
|
||||||
buy_yes = s.get("buy_yes", s.get("price", 50))
|
buy_yes = s.get("buy_yes", s.get("price", 50))
|
||||||
buy_no = s.get("buy_no", 100 - s.get("price", 50))
|
buy_no = s.get("buy_no", 100 - s.get("price", 50))
|
||||||
|
volume = s.get("volume", 0)
|
||||||
|
url = s.get("url", "")
|
||||||
|
|
||||||
|
# 解析选项区间
|
||||||
|
import re
|
||||||
|
range_match = re.search(r'(\d+)-(\d+)', option)
|
||||||
|
below_match = re.search(r'(\d+).*or below', option, re.I)
|
||||||
|
higher_match = re.search(r'(\d+).*or higher', option, re.I)
|
||||||
|
|
||||||
|
# 判断预测与区间关系
|
||||||
|
analysis = ""
|
||||||
|
try:
|
||||||
|
pred_val = float(re.search(r'[\d.]+', str(prediction)).group())
|
||||||
|
if range_match:
|
||||||
|
low, high = int(range_match.group(1)), int(range_match.group(2))
|
||||||
|
if pred_val < low:
|
||||||
|
analysis = f"预测{pred_val}° < {low}° → 买NO ✓"
|
||||||
|
elif pred_val > high:
|
||||||
|
analysis = f"预测{pred_val}° > {high}° → 买NO ✓"
|
||||||
|
else:
|
||||||
|
analysis = f"预测{pred_val}° 在区间内 → 买YES ✓"
|
||||||
|
elif below_match:
|
||||||
|
threshold = int(below_match.group(1))
|
||||||
|
if pred_val <= threshold:
|
||||||
|
analysis = f"预测{pred_val}° ≤ {threshold}° → 买YES ✓"
|
||||||
|
else:
|
||||||
|
analysis = f"预测{pred_val}° > {threshold}° → 买NO ✓"
|
||||||
|
elif higher_match:
|
||||||
|
threshold = int(higher_match.group(1))
|
||||||
|
if pred_val >= threshold:
|
||||||
|
analysis = f"预测{pred_val}° ≥ {threshold}° → 买YES ✓"
|
||||||
|
else:
|
||||||
|
analysis = f"预测{pred_val}° < {threshold}° → 买NO ✓"
|
||||||
|
except:
|
||||||
|
analysis = f"预测: {prediction}"
|
||||||
|
|
||||||
# 判断最佳方向
|
# 判断最佳方向
|
||||||
if buy_no >= 85:
|
if buy_no >= 85:
|
||||||
direction = f"📈 Buy No {buy_no}¢ (接近锁定)"
|
direction = f"Buy No {buy_no}¢"
|
||||||
|
lock_status = "🔒锁定" if buy_no >= 95 else "⏳接近锁定"
|
||||||
confidence = "🔥" if buy_no >= 90 else "⭐"
|
confidence = "🔥" if buy_no >= 90 else "⭐"
|
||||||
elif buy_yes >= 85:
|
elif buy_yes >= 85:
|
||||||
direction = f"📈 Buy Yes {buy_yes}¢ (接近锁定)"
|
direction = f"Buy Yes {buy_yes}¢"
|
||||||
|
lock_status = "🔒锁定" if buy_yes >= 95 else "⏳接近锁定"
|
||||||
confidence = "🔥" if buy_yes >= 90 else "⭐"
|
confidence = "🔥" if buy_yes >= 90 else "⭐"
|
||||||
elif buy_no >= 70:
|
elif buy_no >= 70:
|
||||||
direction = f"👀 Buy No {buy_no}¢ (观望)"
|
direction = f"Buy No {buy_no}¢"
|
||||||
|
lock_status = "👀观望"
|
||||||
confidence = "💡"
|
confidence = "💡"
|
||||||
elif buy_yes >= 70:
|
elif buy_yes >= 70:
|
||||||
direction = f"👀 Buy Yes {buy_yes}¢ (观望)"
|
direction = f"Buy Yes {buy_yes}¢"
|
||||||
|
lock_status = "👀观望"
|
||||||
confidence = "💡"
|
confidence = "💡"
|
||||||
else:
|
else:
|
||||||
direction = f"⚖️ 均衡盘 Yes:{buy_yes}¢ No:{buy_no}¢"
|
direction = f"Yes:{buy_yes}¢ No:{buy_no}¢"
|
||||||
|
lock_status = "⚖️均衡"
|
||||||
confidence = "📊"
|
confidence = "📊"
|
||||||
|
|
||||||
|
# 成交量显示
|
||||||
|
vol_text = f"${volume/1000:.1f}K" if volume >= 1000 else f"${volume:.0f}"
|
||||||
|
|
||||||
|
# 当地时间
|
||||||
|
local_time = s.get("local_time", "")
|
||||||
|
time_only = local_time.split(" ")[1] if " " in local_time else local_time
|
||||||
|
|
||||||
msg_lines.append(
|
msg_lines.append(
|
||||||
f"{confidence} <b>{i}. {city} {option}</b>\n"
|
f"{confidence} <b>{i}. {city} {option}</b>\n"
|
||||||
f" 预测: {prediction}\n"
|
f" 💡 {analysis}\n"
|
||||||
f" {direction}\n"
|
f" 📊 {direction} | {lock_status} | 量:{vol_text} | 🕒{time_only}\n"
|
||||||
)
|
)
|
||||||
|
|
||||||
local_time = top_markets[0].get("local_time", "N/A") if top_markets else "N/A"
|
|
||||||
msg_lines.append(f"\n🕒 当地时间: {local_time}")
|
|
||||||
|
|
||||||
bot.send_message(message.chat.id, "\n".join(msg_lines), parse_mode="HTML")
|
bot.send_message(message.chat.id, "\n".join(msg_lines), parse_mode="HTML")
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|||||||
Reference in New Issue
Block a user