buy_doji: refacut ca tutorial pe 3 niveluri, cu diagrame adnotate

Userul a respins mostra de format tutorial: prea lunga, prea multe
trimiteri in text, termeni tehnici nedefiniti, prea multe cifre fara
desen. Cerintele lui sunt acum contract in STYLE.md (FORMAT TUTORIAL v2).

Textul: 8430 -> 4190 de cuvinte. Nivel 1 (din avion, cu mini-glosar) ->
nivel 2 (6 pasi mecanici, o diagrama fiecare) -> oglinda short -> nivel 3
(rafinari). Trimiterile fisier:linie ies din corp si se aduna la final,
cu legenda de prescurtari. Doua tabele in tot documentul.

Toate cele 14 diagrame refacute: zone dreptunghiulare de evidentiere si
sageti care spun si de ce, nu doar ce. svg_candles primeste Zone si
Arrow; render() nu mai muta obiectul la iesire.

Trei corecturi de continut:
- un singur trade prin toata procedura (doji 50.10/49.25, intrare 50.40,
  stop 49.20, 1R 1.20, TP1 51.60); seria e acum o functie comuna,
  importata de stop/transe/iesire
- short: stopul urca la 100.15, ca sa fie deasupra maximului cum cere
  regula oglindita; cifra cursului ramane in text ca observatie
- LABU: trei minime dar doua atingeri ale pivotului 86.00, ceea ce
  impaca "triple bottom" cu "al doilea test", ambele din transcriere

Reparat si bug-ul vechi din buy_doji_sell.svg: titlul peste eticheta
dojiului.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ThN7ixZrowca8aTGrK1MUJ
This commit is contained in:
Claude Agent
2026-09-19 21:09:31 +00:00
parent aff03870e8
commit 8b7b5f6b44
50 changed files with 7011 additions and 6921 deletions

View File

@@ -1,4 +1,85 @@
# Progres — atm-curs-dl (actualizat 2026-09-19, 18:30 UTC)
# Progres — atm-curs-dl (actualizat 2026-09-19, 21:15 UTC)
---
# 19.09.2026, 21:15 UTC — `01_buy_doji` refăcut după respingerea userului
## Ce a reclamat userul la mostra de format tutorial
A citit `01_buy_doji.html` și l-a respins. Cererile lui, care sunt acum
contract în `STYLE.md`, secțiunea **„FORMAT TUTORIAL v2"** (prima din fișier):
niveluri 1-2-3 de sus în jos; fiecare termen tehnic explicat inline la prima
folosire („iesire pe trail" nu se presupune știut); zero trimiteri
`fișier:linie` în corpul textului; diagrame „ca la proști", cu săgeți care
spun **și de ce**, și cu zona dreptunghiulară de evidențiere care i-a plăcut
la pasul 7; tranzacția în oglindă pe short cu **diagrama ei completă**; mai
puține tabele; mai scurt.
## Starea: gata, comis. Nimic nu mai rulează.
- Textul: de la **8430 la 4190 de cuvinte**, de la **2451 la ~570 de linii**.
Nivel 1 (din avion, cu mini-glosar de 9 termeni) → nivel 2 (6 pași
mecanici, fiecare cu diagrama lui și „Treci mai departe doar dacă…") →
oglinda short → nivel 3 (rafinări). Sursele, toate, la final, cu legendă de
prescurtări. Două tabele în tot documentul.
- **Toate cele 14 diagrame refăcute** cu zone și săgeți. `substituie.py`: 14
puse, 0 lipsă. Auditul: 8 raportări, toate fals-pozitive `<g transform>`
(perechi de etichete identice din panouri stivuite, în `aplus` și
`fereastra`) — verificate vizual, nu se atinge nimic.
- **Bug-ul vechi din `buy_doji_sell.svg`** (titlul peste eticheta
„doji 99.20 / 100.10") — reparat.
## Decizii de conținut luate azi (ca să nu fie redeschise)
1. **Un singur trade prin toată procedura.** Înainte, pașii 2-4 foloseau
doji 50.10 iar pașii 5-6 doji 53.00 — exact confuzia reclamată. Cifrele
canonice acum: doji **50.10 / 49.25**, intrare **50.40**, stop **49.20**,
1R = **1.20**, TP1 = **51.60**. Low-ul doji-ului a urcat de la 49.20 la
49.25 ca stopul să fie *sub* el, nu pe el. `buy_doji_ansamblu.serie()` e
sursa unică, importată de `stop`, `transe` și `iesire` — coerența e acum
structurală, nu ținută prin disciplină.
2. **Short: stop 100.15, nu 100.10.** Exemplul cursului punea stopul exact pe
high, contrazicând regula oglindită de la pasul 5. Am ales coerența cu
regula; cifra cursului (100.10 / 97.90) e păstrată în text ca observație.
3. **LABU: „triple bottom" și „al doilea test" nu se contrazic.** Ambele sunt
în transcriere. Seria arată acum **trei minime** (82.40 / 82.00 / 81.45)
dar **două atingeri** ale pivotului 86.00 — între primele două prețul urcă
la 88.90 și trece pe deasupra, înainte de al treilea urcă doar la 85.80.
Generatorul are o aserțiune care definește „test" ca minim precedat de o
revenire peste nivel, deci regula rezistă la ajustări viitoare.
4. Panoul de jos de la pasul 5 e **alt traseu**, nu seria comună (fundul mai
face un picior). Textul o spune explicit acum — altfel „a șasea candelă"
vs. „bara 19" pare eroare.
## Ce urmează
- **Userul trebuie să aprobe formatul** înainte să-l aplicăm la celelalte 8
capitole din `17_STRATEGII/`. Asta a fost înțelegerea de la început.
- Neatins, rămas de la `cap02`: în diagramele capitolului 02, SVG-ul cu Excel
etichetează „CROSSING BULL" ce e doar PPD > PPW, iar legenda SVG-ului
A+/mediocru dă confluența ca regulă a cursului, deși e completare.
- `aplus.spec.txt` cere doji cu high 79.00, generatorul are 78.50
(preexistent, nu din lotul de azi).
## CAPCANE NOI (din lotul ăsta)
- **`Chart.render()` restaura `top`/`left`/`width` la ieșire**, deci orice
coordonată calculată cu `_y()`/`_cx()` **după** randare ieșea deplasată cu
~22 px. Reparat azi în `svg_candles.py` (randarea nu mai mută obiectul);
generatoarele care își calculează singure offsetul din SVG-ul randat merg
mai departe — formula dă zero. Dacă ai nevoie de coordonate după randare,
folosește `_render()` și pune o aserțiune că `top`, `left` și lățimea din
`viewBox` n-au fost modificate: altfel o săgeată cu text prea lung mută
tăcut graficul și panourile stivuite se dezaliniază fără să pice nimic.
- **Eticheta unei `Zone` nu stă deasupra dreptunghiului**, ci deasupra celei
mai înalte candele din dreptul textului. La o zonă îngustă cu text lung
ajunge la zeci de pixeli de banda pe care o marchează. Soluție: `text=""`
și eticheta desenată manual, sau `p_top` distanțat pe verticală.
- **Agenții apar în `ListAgents` cu numele sesiunii-părinte**, identic cu al
sesiunii principale, nu cu numele lor de agent. Am cerut din greșeală
închiderea a patru agenți activi crezând că sunt sesiuni vechi. Au refuzat
corect, pentru că cererea era formulată „dacă ai ceva în lucru, refuză și
spune-mi ce ai atins". **Formulați mereu cererile de shutdown așa.**
---