fix: MA排序bug(用日期代替价格)+量价历史存储+deep_vol接入full_analysis+DB路径统一
This commit is contained in:
+24
-4
@@ -223,8 +223,18 @@ def calc_moving_averages(klines: list, windows: list = [5, 10, 20, 60]) -> dict:
|
||||
|
||||
# 确保按时间正序(旧的在前)
|
||||
closes = [k["close"] for k in klines]
|
||||
# 检查是否倒序(最新的在前)
|
||||
if len(closes) >= 2 and closes[0] > closes[-1]:
|
||||
# 使用日期判断顺序(不能用价格:下跌趋势下closes[0]>closes[-1]也会触发反转)
|
||||
is_reversed = False
|
||||
if len(klines) >= 2:
|
||||
d0 = klines[0].get("date", "")
|
||||
d1 = klines[-1].get("date", "")
|
||||
if d0 and d1:
|
||||
from datetime import datetime
|
||||
try:
|
||||
is_reversed = datetime.strptime(d0, "%Y-%m-%d") > datetime.strptime(d1, "%Y-%m-%d")
|
||||
except:
|
||||
is_reversed = (closes[0] > closes[-1] * 1.5) if len(closes) >= 2 else False
|
||||
if is_reversed:
|
||||
closes = list(reversed(closes))
|
||||
|
||||
result = {}
|
||||
@@ -314,8 +324,18 @@ def assess_trend(klines: list) -> dict:
|
||||
return {"trend": "unknown", "strength": 0, "description": "数据不足"}
|
||||
|
||||
closes = [k["close"] for k in klines]
|
||||
# 确保正序
|
||||
if len(closes) >= 2 and closes[0] > closes[-1]:
|
||||
# 确保正序(使用日期不用价格,避免下跌趋势中错误反转)
|
||||
is_reversed = False
|
||||
if len(klines) >= 2:
|
||||
d0 = klines[0].get("date", "")
|
||||
d1 = klines[-1].get("date", "")
|
||||
if d0 and d1:
|
||||
from datetime import datetime
|
||||
try:
|
||||
is_reversed = datetime.strptime(d0, "%Y-%m-%d") > datetime.strptime(d1, "%Y-%m-%d")
|
||||
except:
|
||||
is_reversed = (closes[0] > closes[-1] * 1.5) if len(closes) >= 2 else False
|
||||
if is_reversed:
|
||||
closes = list(reversed(closes))
|
||||
|
||||
n = len(closes)
|
||||
|
||||
Reference in New Issue
Block a user