| D-01 |
Il bot è già in C#? Quale target framework? |
quello del repo |
Risposto dal repo: C#, net10.0 (Bot e test net10.0-windows), SDK 10.0.301. Nessuna proposta di cambio. |
| D-02 |
UI attuale: console, WinForms o WPF? Posso aggiungere un progetto WPF? |
nuovo progetto WPF + headless |
Risposto dal repo: è già WPF (Encelado.Bot, tema scuro proprio). Non si aggiunge un progetto: si aggiungono pagine alla shell esistente e la modalità --headless nello stesso eseguibile. |
| D-03 |
Valuta del conto eToro e disponibilità di chiavi demo? |
USD, demo |
Verificato via API (collegamento MCP dell'utente, sola lettura): conto in USD; demoCid e realCid esistono. Le chiavi long-lived (x-api-key + x-user-key) non sono ancora state fornite al bot: la finestra di accesso le chiede e le salva cifrate (DPAPI). Default applicato: USD, demo. |
| D-04 |
Regola di approvazione: automatismo consentito già in demo? |
DemoApprove |
Default applicato: DemoApprove. DemoAuto richiede etoro.allowDemoAuto = true in encelado.json e la conferma all'avvio (finestra, o --confirm-demo-auto in headless). Le modalità Live richiedono etoro.allowLive = true e la frase CONFERMO LIVE. L'utente ha chiesto una lunga sessione di test "sperando di piazzare trade": senza risposta il test lungo gira in Paper (simulatore locale sopra le quote reali) o in DemoApprove con approvazione manuale. |
| D-05 |
Gli 8 strumenti sono disponibili sul conto? Spread tipici? |
verifica via API |
Verificato via API il 2026-09-16 07:23 UTC: tutti e 8 disponibili (id: EURUSD 1, USDCHF 6, AUDUSD 7, USDCAD 4, NZDUSD 3, EURNZD 49, EURAUD 12, AUDCAD 47; anche EURCHF 9 ed EURCAD 13 per PreferDirectCross). Spread di mercato osservati senza markup: 0,1 pip sulle majors, 0,3-0,7 pip sui cross. Il markup di eToro si legge dall'endpoint dei costi e viene sommato nel cost gate. Esposizione minima 1000 USD per posizione, leva fino a 30 (majors) / 20 (minors). Attenzione: il conto reale vale 193,18 USD; con RiskPerBasket 0,5 % e esposizione minima 1000 USD il reale non è operabile senza leva alta: il passaggio a LiveApprove resta comunque subordinato ai cancelli di §9.4. |
| D-06 |
Dove gira il bot (PC locale Windows, VPS Windows)? |
PC locale + headless pronto per VPS |
Default applicato: Windows 11 locale (questa macchina); --headless disponibile per un VPS Windows. |
| D-07 |
Esiste già uno storage/log da riusare? |
nuovi file in data/ |
Default applicato con una precisazione: il log applicativo (Log, file ;) e CsvTable vengono riusati; il ledger, i dati di mercato, i modelli e la base di conoscenza vanno in file (data/, knowledge/, reports/, results/) sotto Documenti\Encelado\, come richiesto. Il database SQLite esistente resta per il motore proba e non viene usato dal modulo basket. |
| D-08 |
Se una fonte news/calendario risulta irraggiungibile: sostituire o omettere? |
omettere e annotare |
Verificato il 2026-09-16: calendario FairEconomy (JSON e XML), FXStreet, ForexLive, Fed, ECB (https://www.ecb.europa.eu/rss/press.html), BoE (https://www.bankofengland.co.uk/rss/news), RBA (https://www.rba.gov.au/rss/rss-cb-media-releases.xml), BoC (https://www.bankofcanada.ca/content_type/press-releases/feed/) e Google News rispondono 200. SNB (/en/rss/press-releases → 404) e RBNZ (403 "website unavailable") no: default applicato: omesse, coperte da Google News con query mirate (SNB, RBNZ). Annotato in docs/DATA_SOURCES.md. |
| D-09 |
Che fare del motore cTrader/ProbaBot trovato a metà e non committato? |
mantenerlo selezionabile |
Default applicato: resta nel repo, rimesso in compilazione (riferimento di progetto e piccoli fix) e selezionabile con engine.strategy = "proba"; il predefinito diventa "baskets". Nessun comportamento esistente viene cambiato. Se l'utente preferisce eliminarlo, basta rimuovere src/Encelado.CTrader e Engine/ProbaEngine.cs. |
| D-10 |
Dove stanno i parametri della strategia: in encelado.json o in un file separato? |
config/strategy.json come da specifica |
Default applicato: strategy.json separato (copia di fabbrica in config/, copia dell'utente in Documenti\Encelado\), letto con JsonDocument; instruments.json scritto dal bot all'avvio nella stessa cartella. encelado.json riceve solo le sezioni etoro e engine.strategy. |
| D-11 |
Fuso orario dei tick MT5 in A:\Download\Trading? |
verificare sul fine settimana |
Verificato: la chiusura del venerdì cade alle 20:53-20:57 in estate e alle 21:53-21:57 in inverno, la riapertura alle 21:05 (estate) / 22:05 (inverno) della domenica: è UTC. Nessuna conversione. Formato: tab-separato <DATE> <TIME> <BID> <ASK> <LAST> <VOLUME> <FLAGS>; le righe con solo bid o solo ask (flag 2/4) aggiornano un solo lato. |
| D-12 |
Lo storico M15 via API eToro si può scaricare paginando? |
sì, 1000 barre per richiesta |
Verificato: no. L'endpoint delle candele accetta solo count ≤ 1000 e la direzione, senza data di partenza: fornisce al massimo ~10 giorni di M15. Il backtest usa i tick forniti dall'utente; l'API serve per riscaldamento (ultime 1000 barre) e riconciliazione. |
| D-13 |
Il TP di basket "in pip" con lotti diversi fra le gambe: pip lordi sommati come Titany, o P&L netto? |
come da specifica |
Default applicato: Pips di basket = somma dei pip delle due gambe (UI e ExitMode = FixedPips); ogni decisione di stop usa il P&L netto in USD; entrambi finiscono nel ledger. |
| D-14 |
Le credenziali eToro per il bot: quando? |
attendere |
L'utente ha scritto: «Aspetta l'input per le credenziali per la prima volta e poi potrai aprirlo in autonomia quando memorizzerò la password». La finestra di accesso chiede x-api-key e x-user-key e li salva in %LOCALAPPDATA%\Encelado\etoro.dat (DPAPI). Finché non ci sono, il bot in headless resta in sola lettura e lo dice. |