3. Vincoli Etici e di Performance

Le estensioni operano all’interno dell’ecosistema FIRE e devono rispettare i pilastri di privacy e stabilità definiti nel PRODUCT-MANIFESTO. Un’estensione che viola questi vincoli è considerata instabile e non idonea all’uso in ambienti di produzione.

3.1. Privacy e Sovranità (Privacy-First)

L’esecuzione deve avvenire rigorosamente in locale. È vietata la trasmissione di dati sensibili, strategie o risultati di analisi a server esterni.

  • Cosa: Divieto di chiamate di rete non documentate.
  • Come: Evitare l’uso di librerie come requests, urllib o socket verso endpoint esterni, a meno che lo script non sia esplicitamente un connettore dati approvato.
  • Perché serve: FIRE nasce per proteggere la Proprietà Intellettuale del trader. Qualsiasi fuga di dati invalida la premessa fondamentale del software.

3.2. Efficienza Computazionale

Sebbene le estensioni girino in un thread separato (ScriptRunnerWorker), un utilizzo inefficiente delle risorse può degradare le performance globali del sistema.

  • Cosa: Ottimizzazione algoritmica.
  • Come:
    1. Prediligere operazioni vettoriali (Pandas/Numpy) rispetto ai loop for sui DataFrame.
    2. Rilasciare oggetti voluminosi non più necessari (del df).
    3. Evitare loop infiniti o ricorsioni profonde che non prevedano un’uscita di sicurezza.
  • Perché serve: Prevenire il saturamento della memoria RAM e mantenere il processore disponibile per i motori di calcolo core (Backtest, AI Inference).

3.3. Gestione degli Errori e Resilienza

Il codice dell’estensione non deve mai causare il crash dell’applicazione host.

  • Cosa: Incapsulamento della logica (Error Handling).
  • Come: Implementare blocchi try...except granulari. In caso di errore critico, loggare l’evento tramite context.ui.log(e, "ERROR") e uscire con eleganza.
  • Perché serve: Garantire che un bug in uno script utente non interrompa l’esecuzione di altre sinapsi (es. scanner o trade attivo).

3.4. Politica delle Dipendenze

L’utilizzo di librerie esterne non incluse nel .venv di FIRE deve essere ridotto al minimo.

  • Cosa: Utilizzo delle librerie core pre-installate.
  • Come: Verificare se la funzionalità richiesta è già disponibile in pandas, numpy, scipy o scikit-learn prima di tentare l’import di pacchetti esotici.
  • Perché serve: Assicura la portabilità dello script tra diverse installazioni di FIRE e riduce la superficie di attacco/instabilità del sistema.

💡 Nota operativa: In fase di sviluppo, monitorare il consumo di risorse tramite lo strumento “Developer Tools” di FIRE per identificare eventuali memory leak dello script.