No description
  • C++ 92.8%
  • Shell 5.5%
  • Makefile 1.7%
Find a file
2025-08-09 15:31:26 +02:00
.vscode aggiunto uno smoo plot nei risultati 2025-04-16 18:05:46 +02:00
scripts Restructure repo: move backtrader to third_party/, clarify README, extend .gitignore, add validate script and Makefile target 2025-08-09 15:31:26 +02:00
src Piccolo aggiustamento 2025-04-17 18:27:24 +02:00
third_party/backtrader Restructure repo: move backtrader to third_party/, clarify README, extend .gitignore, add validate script and Makefile target 2025-08-09 15:31:26 +02:00
.gitignore Restructure repo: move backtrader to third_party/, clarify README, extend .gitignore, add validate script and Makefile target 2025-08-09 15:31:26 +02:00
esempiorun esempio run 2025-04-09 11:29:38 +02:00
Makefile Restructure repo: move backtrader to third_party/, clarify README, extend .gitignore, add validate script and Makefile target 2025-08-09 15:31:26 +02:00
README.md Restructure repo: move backtrader to third_party/, clarify README, extend .gitignore, add validate script and Makefile target 2025-08-09 15:31:26 +02:00

TSoN - Trading Strategy Optimizer & Backtester

TSoN è un simulatore per il backtesting sistematico di strategie di trading su coppie di valute. Fornisce un'analisi esaustiva di combinazioni Take Profit / Stop Loss su dati storici, con l'obiettivo di identificare parametri ottimali per il profitto.

🚀 Funzionalità principali

  • Lettura di dati storici da file CSV
  • Simulazione di trade con TP/SL variabili
  • Griglia automatica di combinazioni TP/SL
  • Calcolo dei risultati economici per ogni combinazione
  • Supporto per:
    • Capitale iniziale e capitale per trade
    • Fee di transazione
    • Periodicità dei trade
    • Uscita dal trade (a fine finestra o su chiusura)
    • Modalità hedge (long/short multipli)

📦 Compilazione

make

Richiede un compilatore C++11 o superiore.

🧪 Esecuzione

./simulatore_trading data/DAT_ASCII_GBPJPY_M1_2021.csv   -W 6000 -PER 10   -TPmin 10 -TPmax 30  -SLmin 0.3 -SLmax 0.4 -P 5  -C 10000 -CPT 70 -FEE 0.1  -exit_mode close -OH

Parametri

Parametro Descrizione
dati.csv File CSV con i dati (timestamp, open, high, low, close)
-W Finestra temporale in minuti per ogni trade
-TPmin/-TPmax Range minimo/massimo di Take Profit
-SLmin/-SLmax Range minimo/massimo di Stop Loss
-P Numero di punti nella griglia TP/SL
-C Capitale iniziale
-CPT Capitale per singolo trade
-FEE Fee percentuale per ogni trade
-PER Intervallo tra un trade e il successivo (in minuti)
-exit_mode Modalità di uscita: close (chiude la posizione così com'è alla fine della finestra) o leave (la posizione rimane aperta alla fine della finestra)
-OH Only Hedge, non stampa le righe relative ai LONG e agli SHORT
-debug Mostra dettagli interni di simulazione

📁 Struttura del progetto

TSoN/
├── src/
│   ├── main.cpp          # Entry point del programma, parsing CLI e orchestrazione
│   ├── dataloader.hpp    # API caricamento CSV (OHLC); vedi anche dataloader.cpp
│   ├── simulator.hpp     # API simulazione TP/SL; vedi anche simulator.cpp
│   ├── printer.hpp       # API stampa; vedi anche printer.cpp
│
├── data/                 # (opzionale) dati/CSV locali — ignorati da Git
├── scripts/
│   └── validate_backtrader.sh  # Script per validare TSoN contro third_party/backtrader
├── third_party/
│   └── backtrader/       # Progetto terzo usato solo per validazione/comparazione
├── Makefile              # Build del binario `simulatore_trading`
├── .gitignore            # Esclusioni (build, dati, artefatti)
├── esempiorun            # Esempio di comando per avviare una simulazione

Nota su third_party/backtrader

La cartella third_party/backtrader/ contiene un progetto esterno (C++/Python) usato esclusivamente per la validazione dei risultati di TSoN (confronto trade-by-trade e metriche). Non è necessaria per compilare o eseguire TSoN. Puoi eseguire una validazione rapida con:

make validate  # richiede dipendenze Python/C++ del progetto third_party/backtrader

📌 Versioni

🏷️ v0.3.0 - Debug interno e strategie hedge (9 aprile 2025)

  • Aggiunta la modalità hedge: è ora possibile mantenere più posizioni contemporaneamente
  • Inserite variabili e stampe di debug per tracciare il comportamento del simulatore
  • Corretto il calcolo delle operazioni in modalità hedge
  • Fix di bug minori legati alla logica di uscita dal trade

🏷️ v0.2.0 - Riorganizzazione del codice

  • Strutturazione modulare in più file (dataloader, simulator, printer, ecc.)
  • Separazione della logica in src/ e data/
  • Introduzione di un Makefile per la compilazione
  • Aggiunta .gitignore per evitare file di build nel repo

🏷️ v0.1.0 - Prima versione stabile

  • Simulazione di strategie di trading su dati OHLC da CSV
  • Generazione griglia TP/SL parametrica
  • Capitale iniziale, fee, finestra temporale e capitale per trade configurabili
  • Output dei risultati su stdout in formato tabellare
  • Aggiunto esempio di comando in esempiorun
  • Colori nella stampa dei risultati

🧪 Versioni instabili precedenti

  • Commit iniziali con versioni di test e sviluppo

📌 TODO futuri

  • Esportazione risultati in CSV
  • Multithreading
  • Supporto a trailing stop
  • Integrazione con dati live
  • Web UI con dashboard interattiva

📜 Licenza

MIT License

Copyright (c) 2025 Alberto Stabile

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction...