73 lines
2.6 KiB
Python
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)
|