ML数据新鲜度问题+2

This commit is contained in:
zhangkun9038@dingtalk.com 2026-02-08 04:04:27 +08:00
parent 8e089b3461
commit e22c6d8a32
3 changed files with 39 additions and 29 deletions

View File

@ -19,34 +19,24 @@
"timeout": 20000
},
"pair_whitelist": [
"AAVE/USDT",
"ADA/USDT",
"AVAX/USDT",
"BCH/USDT",
"BNB/USDT",
"BTC/USDT",
"CHZ/USDT",
"DOGE/USDT",
"ETC/USDT",
"DOT/USDT",
"ETH/USDT",
"FIL/USDT",
"ICP/USDT",
"LINK/USDT",
"LTC/USDT",
"PENGU/USDT",
"PEPE/USDT",
"PUMP/USDT",
"SHIB/USDT",
"SNX/USDT",
"SOL/USDT",
"SUI/USDT",
"TON/USDT",
"TRB/USDT",
"TRUMP/USDT",
"TRX/USDT",
"UNI/USDT",
"WIF/USDT",
"WLD/USDT",
"XAUT/USDT",
"XLM/USDT",
"XRP/USDT"
],

View File

@ -19,42 +19,25 @@
"timeout": 20000
},
"pair_whitelist": [
"AAVE/USDT",
"ADA/USDT",
"AVAX/USDT",
"BCH/USDT",
"BNB/USDT",
"BTC/USDT",
"DOGE/USDT",
"DOT/USDT",
"ETH/USDT",
"FIL/USDT",
"IP/USDT",
"KAITO/USDT",
"LINK/USDT",
"LTC/USDT",
"MASK/USDT",
"OKB/USDT",
"PAXG/USDT",
"PENGU/USDT",
"PEPE/USDT",
"PI/USDT",
"PUMP/USDT",
"SNX/USDT",
"SOL/USDT",
"STETH/USDT",
"STRK/USDT",
"SUI/USDT",
"TON/USDT",
"TRB/USDT",
"TRUMP/USDT",
"TRX/USDT",
"UNI/USDT",
"USDG/USDT",
"WLD/USDT",
"XAUT/USDT",
"XLM/USDT",
"XPL/USDT",
"XRP/USDT"
],
"pair_blacklist": [

View File

@ -1182,6 +1182,41 @@ class FreqaiPrimer(IStrategy):
# 6. 市场状态
market_state = str(last_row.get('market_state', 'unknown'))
# 7. 数据时间戳和延迟信息
data_timestamp = last_row.get('date')
data_age_str = 'N/A'
if data_timestamp is not None:
# 确保 data_timestamp 是 datetime 对象
if not isinstance(data_timestamp, datetime):
try:
from pandas import Timestamp
if isinstance(data_timestamp, Timestamp):
data_timestamp = data_timestamp.to_pydatetime()
except:
pass
# 计算数据延迟
if isinstance(data_timestamp, datetime):
# 处理时区
if data_timestamp.tzinfo is None and current_time.tzinfo is not None:
import pytz
data_timestamp = pytz.utc.localize(data_timestamp)
elif data_timestamp.tzinfo is not None and current_time.tzinfo is None:
import pytz
current_time = pytz.utc.localize(current_time)
data_age_minutes = (current_time - data_timestamp).total_seconds() / 60
data_age_str = f"{data_age_minutes:.1f}min"
# 根据延迟添加状态标识
if data_age_minutes <= 10:
freshness_icon = ""
elif data_age_minutes <= 30:
freshness_icon = "⚠️"
else:
freshness_icon = ""
data_age_str = f"{freshness_icon} {data_age_str}"
# 输出诊断日志
if entry_prob is not None:
ml_prob_str = f"{entry_prob:.2f}"
@ -1220,6 +1255,8 @@ class FreqaiPrimer(IStrategy):
self.strategy_log(
f"[入场诊断] {pair} | "
f"数据时间: {data_timestamp.strftime('%H:%M:%S') if isinstance(data_timestamp, datetime) else 'N/A'} | "
f"延迟: {data_age_str} | "
f"价格: {format_number(current_close)} | "
f"vs 5K高点: {price_vs_recent_high:+.2%} | "
f"vs EMA5: {price_vs_ema5:+.2%} | "