Projet terminé V1.0
This commit is contained in:
@@ -772,6 +772,77 @@ def import_historique_csv():
|
||||
return redirect(url_for("main.gestion_import_historique_csv"))
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Analyse technique
|
||||
# ---------------------------------------------------------------------------
|
||||
@main.route("/analyse", methods=["GET"])
|
||||
@login_required
|
||||
def analyse():
|
||||
"""Page d'analyse technique. Si un ISIN est passé en paramètre (?isin=...),
|
||||
on l'analyse et on affiche la fiche complète ; sinon on affiche la page
|
||||
de recherche."""
|
||||
isin = request.args.get("isin", "").strip().upper()
|
||||
|
||||
if not isin:
|
||||
return render_template("analyse.html", resultat=None)
|
||||
|
||||
from app.services.analysis import analyse_action
|
||||
|
||||
print(f"[analyse] ISIN demandé : {isin}", flush=True)
|
||||
resultat = analyse_action(isin)
|
||||
|
||||
if resultat is None:
|
||||
# ISIN absent du référentiel actions
|
||||
return render_template(
|
||||
"analyse.html",
|
||||
resultat={
|
||||
"isin": isin,
|
||||
"action": None,
|
||||
"erreur": f"Aucune donnée trouvée pour l'ISIN {isin}. "
|
||||
f"Vérifiez le code ou importez d'abord l'historique.",
|
||||
},
|
||||
isin_recherche=isin,
|
||||
)
|
||||
|
||||
if resultat.get("erreur"):
|
||||
# ISIN présent mais historique insuffisant
|
||||
print(f"[analyse] {isin} : {resultat['erreur']}", flush=True)
|
||||
else:
|
||||
print(
|
||||
f"[analyse] {isin} : cours={resultat.get('cours')} "
|
||||
f"score={resultat.get('score')} tendance={resultat.get('tendance')}",
|
||||
flush=True,
|
||||
)
|
||||
|
||||
return render_template("analyse.html", resultat=resultat, isin_recherche=isin)
|
||||
|
||||
|
||||
@main.route("/analyse/<isin>", methods=["GET"])
|
||||
@login_required
|
||||
def analyse_isin(isin):
|
||||
"""Page d'analyse technique complète pour un ISIN donné."""
|
||||
from app.services.analysis import analyse_action
|
||||
|
||||
isin = isin.strip().upper()
|
||||
resultat = analyse_action(isin)
|
||||
return render_template("analyse.html", resultat=resultat, isin_recherche=isin)
|
||||
|
||||
|
||||
@main.route("/api/analyse/<isin>", methods=["GET"])
|
||||
@login_required
|
||||
def api_analyse(isin):
|
||||
"""API JSON retournant l'analyse technique complète d'un ISIN."""
|
||||
from app.services.analysis import analyse_action
|
||||
|
||||
isin = isin.strip().upper()
|
||||
resultat = analyse_action(isin)
|
||||
if resultat is None:
|
||||
return jsonify({"erreur": f"ISIN {isin} introuvable dans le référentiel actions."}), 404
|
||||
if resultat.get("erreur"):
|
||||
return jsonify(resultat), 200
|
||||
return jsonify(resultat)
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Gestion des ordres
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user