diff --git a/app/main.py b/app/main.py index cb02951..0f43728 100644 --- a/app/main.py +++ b/app/main.py @@ -1,5 +1,5 @@ """FastAPI application entry point with lifespan management.""" - +# ruff: noqa: E402 # --------------------------------------------------------------------------- # SSL + proxy injection — MUST happen before any HTTP client imports # --------------------------------------------------------------------------- diff --git a/app/providers/gemini_sentiment.py b/app/providers/gemini_sentiment.py index fd802e5..ac130fb 100644 --- a/app/providers/gemini_sentiment.py +++ b/app/providers/gemini_sentiment.py @@ -5,7 +5,6 @@ from __future__ import annotations import json import logging import os -import ssl from datetime import datetime, timezone from pathlib import Path diff --git a/app/scheduler.py b/app/scheduler.py index c61d34c..0063995 100644 --- a/app/scheduler.py +++ b/app/scheduler.py @@ -16,7 +16,7 @@ from __future__ import annotations import json import logging import asyncio -from datetime import date, datetime, timedelta, timezone +from datetime import date, datetime, timezone from apscheduler.schedulers.asyncio import AsyncIOScheduler from sqlalchemy import case, func, select diff --git a/app/services/indicator_service.py b/app/services/indicator_service.py index 9075b3d..ab5a2e8 100644 --- a/app/services/indicator_service.py +++ b/app/services/indicator_service.py @@ -74,8 +74,8 @@ def compute_adx( plus_dm: list[float] = [] minus_dm: list[float] = [] for i in range(1, n): - h, l, pc = highs[i], lows[i], closes[i - 1] - tr_list.append(max(h - l, abs(h - pc), abs(l - pc))) + h, low_val, pc = highs[i], lows[i], closes[i - 1] + tr_list.append(max(h - low_val, abs(h - pc), abs(low_val - pc))) up = highs[i] - highs[i - 1] down = lows[i - 1] - lows[i] plus_dm.append(up if up > down and up > 0 else 0.0) @@ -208,8 +208,8 @@ def compute_atr( tr_list: list[float] = [] for i in range(1, n): - h, l, pc = highs[i], lows[i], closes[i - 1] - tr_list.append(max(h - l, abs(h - pc), abs(l - pc))) + h, low_val, pc = highs[i], lows[i], closes[i - 1] + tr_list.append(max(h - low_val, abs(h - pc), abs(low_val - pc))) # Wilder smoothing atr = sum(tr_list[:period]) / period diff --git a/app/services/sr_service.py b/app/services/sr_service.py index 8bb28f1..733c765 100644 --- a/app/services/sr_service.py +++ b/app/services/sr_service.py @@ -237,7 +237,7 @@ def cluster_sr_zones( for level in sorted_levels[1:]: # Compute current cluster midpoint - prices = [l["price_level"] for l in current_cluster] + prices = [lvl["price_level"] for lvl in current_cluster] cluster_low = min(prices) cluster_high = max(prices) cluster_mid = (cluster_low + cluster_high) / 2.0 @@ -259,11 +259,11 @@ def cluster_sr_zones( # 3. Compute zone for each cluster zones: list[dict] = [] for cluster in clusters: - prices = [l["price_level"] for l in cluster] + prices = [lvl["price_level"] for lvl in cluster] low = min(prices) high = max(prices) midpoint = (low + high) / 2.0 - strength = min(100, sum(l["strength"] for l in cluster)) + strength = min(100, sum(lvl["strength"] for lvl in cluster)) level_count = len(cluster) # 4. Tag zone type