Files
Freqtrade/tools/read_trends.py
2025-10-26 16:20:33 +01:00

73 lines
2.6 KiB
Python

#!/usr/bin/env python3
import os
import json
from pathlib import Path
def load_params_tree(base_path="user_data/strategies/params/"):
base = Path(base_path)
params_tree = {}
if not base.exists():
raise FileNotFoundError(f"Base path '{base_path}' not found.")
for pair_dir in base.iterdir():
if not pair_dir.is_dir():
continue
pair = pair_dir.name # ex : BTC-USDT
params_tree.setdefault(pair, {})
for trend_dir in pair_dir.iterdir():
if not trend_dir.is_dir():
continue
trend = trend_dir.name # ex : bull / bear / range
params_tree[pair].setdefault(trend, [])
for file in trend_dir.glob("*-hyperopt_result.json"):
filename = file.name
# Extraire START et END
try:
prefix = filename.replace("-hyperopt_result.json", "")
start, end = prefix.split("-", 1) # split en 2
except Exception:
start = None
end = None
# Lire le JSON
try:
with open(file, "r") as f:
content = json.load(f)
except Exception as err:
content = {"error": str(err)}
params_tree[pair][trend].append({
"start": start,
"end": end,
"file": str(file),
"content": content,
})
return params_tree
def getTrend(data, pair, trend, space, param):
return data[pair][trend][0]['content']['params'][space][param]
if __name__ == "__main__":
data = load_params_tree("user_data/strategies/params/")
# print(data)
# Test affichage minimal
for pair, trends in data.items():
for trend, entries in trends.items():
if entries:
indic_5m = getTrend(data, pair, trend, 'buy', 'indic_5m')
indic_deriv1_5m = getTrend(data, pair, trend, 'buy', 'indic_deriv1_5m')
indic_deriv2_5m = getTrend(data, pair, trend, 'buy', 'indic_deriv2_5m')
indic_5m_sell = getTrend(data, pair, trend, 'sell', 'indic_5m_sell')
indic_deriv1_5m_sell = getTrend(data, pair, trend, 'sell', 'indic_deriv1_5m_sell')
indic_deriv2_5m_sell = getTrend(data, pair, trend, 'sell', 'indic_deriv2_5m_sell')
print(f"{pair} -> {trend} -> {indic_5m} {indic_deriv1_5m} {indic_deriv2_5m} {indic_5m_sell} {indic_deriv1_5m_sell} {indic_deriv2_5m_sell}")
# for entry in entries:
# print(entry)