Skip to content

docs: stops, vente, achat et vision moyen/long terme (recherche + décisions) - #103

Merged
laurentvv merged 4 commits into
mainfrom
docs/stops-vision-moyen-long-terme
Sep 29, 2026
Merged

laurentvv merged 4 commits into
mainfrom
docs/stops-vision-moyen-long-terme

Conversation

@laurentvv

Copy link
Copy Markdown
Owner

Reprise de #100 (fermée automatiquement à la suppression de sa base après le merge de #99). Contenu identique, rebasé sur main, remarques Kilo intégrées.

🤖 Generated with Claude Code

laurentvv and others added 4 commits September 29, 2026 23:50
…tude sur le banc)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…e, cadence

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…iantes calculées une fois, chiffres du doc alignés (25 pb)

Review Kilo #100.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@laurentvv
laurentvv merged commit a162697 into main Sep 29, 2026
2 checks passed
@laurentvv
laurentvv deleted the docs/stops-vision-moyen-long-terme branch September 29, 2026 21:59

1. **Un stop n'est pas neutre.** En marché sans tendance (marche aléatoire), un stop 0/1 *réduit* le rendement espéré ; il n'aide que s'il y a de la persistance (momentum). Le cadre théorique est celui de Kaminski & Lo. Un stop serré sur un actif qu'on veut garder des années est donc, par construction, un pari contre ta propre vision.
2. **Ce qui a de la preuve sur le long terme n'est pas un stop de prix mais une règle de tendance lente** (moyenne mobile 10 mois ≈ MA200, momentum 12 mois) : Faber, Moskowitz-Ooi-Pedersen, Hurst-Ooi-Pedersen (67 marchés, 1880-2016). Elle réduit surtout le **drawdown**, moins le rendement. Mais Zakamulin montre que les performances de ces règles sont souvent gonflées par un biais de anticipation et peu robustes hors échantillon.
3. **Notre banc confirme le profil.** Sur SXRV.DE (2022-07 → 2026-09) : buy & hold 21,8 %/an, drawdown −26,7 % ; MA200 avec hystérésis 15,9 %/an, drawdown −15,0 %. Aucun écart de Sharpe n'est statistiquement significatif. **Les stops fixes (−10 à −30 % depuis l'entrée) ne se déclenchent presque jamais** (une fois à −10 %, jamais au-delà) (le drawdown de −26,7 % est mesuré depuis le sommet, pas depuis l'entrée). Les stops suiveurs donnent des résultats **non monotones** (coûts 25 pb par côté ; −15 % : 25,9 %/an ; −10 % : 19,1 % ; −20 % : 19,4 % ; −25 % : 17,5 %) : c'est du bruit de paramétrage, pas un effet.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WARNING: Affirmation statistique contredite par le reste du document

« Aucun écart de Sharpe n'est statistiquement significatif » est faux au sens de la source citée (docs/BACKTEST_BASELINES_2026-09-29.md, tableau Robustesse SXRV.DE) : deux écarts ont un IC à 95 % qui exclut 0 — « Sorties actuelles, entrée toujours haussière » (−0,58 [−0,89 ; −0,28]) et « Tendance MA200 + sorties actuelles » (−0,84 [−1,58 ; −0,16]). Le §3 de ce même document rappelle d'ailleurs le premier (ligne 69).

La lecture correcte est : aucune variante de stop ne bat le buy & hold sur le Sharpe (c'est bien le §3 qui l'affirme). Sans la restriction, le résumé d'une page contredit le corps du document et la source.


Reply with @kilocode-bot fix it to have Kilo Code address this issue.

Comment thread scripts/stop_study.py


def main() -> None:
for ticker in ("SXRV.DE", "CL=F"):

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SUGGESTION: Aucun paramétrage CLI, alors que l'annexe A est destinée à être rejouée

src/backtest/report.py expose --data-dir, --out, --capital, --cost-bps, --warmup via argparse ; ici les tickers, le répertoire de données et le capital sont codés en dur, ce qui oblige à éditer le fichier pour rejouer l'étude sur un autre actif — précisément ce dont le §7 (« MA200 / momentum / volatilité sur plusieurs actifs et périodes ») aura besoin.

Idem pour le capital : le tableau du §3 annonce « capital 30 000 € », valeur qui n'est répétée que par le défaut de run_backtest, pas par le script.


Reply with @kilocode-bot fix it to have Kilo Code address this issue.

@kilo-code-bot

kilo-code-bot Bot commented Sep 29, 2026 •

Copy link
Copy Markdown

Code Review Summary

Status: 2 Issues Found | Recommendation: Address before merge

Overview

Severity Count
CRITICAL 0
WARNING 1
SUGGESTION 1
Issue Details (click to expand)

WARNING

File Line Issue
docs/STOPS_ET_VISION_MOYEN_LONG_TERME_2026-09-29.md 15 « Aucun écart de Sharpe n'est statistiquement significatif » contredit la source (2 écarts significatifs) et le §3 du document. La restriction aux variantes de stop manque.

SUGGESTION

File Line Issue
scripts/stop_study.py 48 Aucun argparse (tickers / data-dir / capital en dur) alors que le §7 prévoit de rejouer l'étude sur plusieurs actifs ; le capital 30 000 € du §3 n'est explicite nulle part dans le script.
Files Reviewed (2 files)
  • docs/STOPS_ET_VISION_MOYEN_LONG_TERME_2026-09-29.md - 1 issue
  • scripts/stop_study.py - 1 issue

Points vérifiés sans réserve : le correctif de la fenêtre (état d'entrée/sommet réinitialisé à l'ouverture, ma_trend calculé sur l'historique complet puis tronqué — stop_study.py:24-44) est cohérent avec la note de bas de tableau de l'annexe A ; le calcul des variantes une seule fois hors de la boucle de coûts (stop_study.py:52) est correct ; les chiffres du §3 et de l'annexe A sont désormais alignés sur 25 pb par côté et sur la nouvelle fenêtre ; le NEVER = 9.0 n'est jamais atteint par les séries testées ; le path sys.path et les clés de métriques utilisées existent bien.

Fix these issues in Kilo Cloud


Reviewed by free · Input: 0 · Output: 0 · Cached: 0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant