{"id":51513215,"url":"https://github.com/rehacktive/autocrypto","last_synced_at":"2026-07-08T08:30:56.208Z","repository":{"id":365053270,"uuid":"1267654828","full_name":"rehacktive/autocrypto","owner":"rehacktive","description":null,"archived":false,"fork":false,"pushed_at":"2026-06-15T16:07:57.000Z","size":287,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-15T18:09:07.374Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rehacktive.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-12T18:36:26.000Z","updated_at":"2026-06-15T16:08:23.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/rehacktive/autocrypto","commit_stats":null,"previous_names":["rehacktive/autocrypto"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/rehacktive/autocrypto","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rehacktive%2Fautocrypto","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rehacktive%2Fautocrypto/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rehacktive%2Fautocrypto/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rehacktive%2Fautocrypto/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rehacktive","download_url":"https://codeload.github.com/rehacktive/autocrypto/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rehacktive%2Fautocrypto/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35258965,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-08T02:00:06.796Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-07-08T08:30:55.470Z","updated_at":"2026-07-08T08:30:56.203Z","avatar_url":"https://github.com/rehacktive.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AutoCrypto / AI Paper Bot\n\nUn bot prudente per sperimentare trading automatico in modalita paper trading. Oggi include un provider dati Binance per crypto spot, ma il motore e pensato per essere esteso ad altri mercati tramite adapter.\n\nQuesta versione e scritta in Go e non invia ordini reali. Scarica candele pubbliche dal provider configurato, genera segnali con una strategia semplice, applica limiti di rischio rigidi e salva un diario locale.\n\n## Avvio rapido\n\n```bash\ncp config.example.json config.json\ngo run . --config config.json --serve\n```\n\nPoi apri:\n\n```text\nhttp://127.0.0.1:8787\n```\n\nPer eseguire un singolo ciclo da terminale:\n\n```bash\ngo run . --config config.json --once\n```\n\nPer simulare piu cicli senza dashboard:\n\n```bash\ngo run . --config config.json --loop --sleep 5m\n```\n\nPer simulare subito un periodo storico:\n\n```bash\ngo run . --config config.json --backtest --from 2026-01-01 --to 2026-03-31\n```\n\nSe nel config l'AI e attiva ma vuoi un backtest veloce:\n\n```bash\ngo run . --config config.json --backtest --backtest-no-ai --from 2026-01-01 --to 2026-03-31\n```\n\nPer un report leggibile invece del JSON:\n\n```bash\ngo run . --config config.json --backtest --backtest-no-ai --backtest-format report --from 2026-01-01 --to 2026-03-31\n```\n\nPer cercare parametri migliori sullo stesso periodo:\n\n```bash\ngo run . --config config.json --backtest --backtest-no-ai --backtest-format report --optimize 300 --from 2026-01-01 --to 2026-03-31\n```\n\n## Cosa fa\n\n- Usa un budget iniziale configurabile.\n- Opera solo in paper trading.\n- Tiene posizioni virtuali sui simboli configurati.\n- Applica stop loss, take profit, limite di perdita giornaliera, limite di perdita totale, massimo trade al giorno.\n- Puo usare un revisore AI opzionale che spiega o boccia i segnali.\n- Puo fare backtest su candele storiche del provider configurato per valutare periodi estesi.\n- Confronta il backtest con benchmark buy-and-hold equal-weight.\n- Include fee e slippage configurabili.\n- Salva stato e diario in `state.json` e `journal.jsonl`.\n- Salva la curva capitale in `equity.jsonl`.\n- Salva il report giornaliero in `daily_report.json`.\n- Genera un report leggibile dopo ogni ciclo.\n- Espone una dashboard locale con capitale, posizioni, segnali, journal e report giornaliero.\n\n## Cosa non fa ancora\n\n- Non usa leva.\n- Non fa futures.\n- Non fa prelievi.\n- Non opera con soldi reali.\n- Non promette rendimento.\n\n## Build\n\n```bash\ngo build -o autocrypto .\n./autocrypto --config config.json --serve\n```\n\nPuoi cambiare indirizzo e frequenza della simulazione:\n\n```bash\n./autocrypto --config config.json --serve --addr 127.0.0.1:8787 --sleep 5m\n```\n\n## Provider dati di mercato\n\nIl config supporta una sezione `market_data`. Se manca, il default resta Binance per compatibilita con i config esistenti.\n\n```json\n\"market_data\": {\n  \"provider\": \"binance\"\n}\n```\n\nQuesto e il primo strato di astrazione per rendere il bot una piattaforma generica: strategia, rischio, paper trading, dashboard e backtest dipendono da un provider dati, non da Binance direttamente. Per aggiungere azioni, ETF, forex o altri strumenti, il prossimo passo e implementare un nuovo provider con lo stesso contratto.\n\n## Revisore AI opzionale\n\nNel file `config.json` puoi abilitare:\n\n```json\n\"ai\": {\n  \"enabled\": true,\n  \"require_approval_for_buys\": true,\n  \"require_approval_for_sells\": false,\n  \"provider\": \"local\",\n  \"model\": \"nvidia/nemotron-3-nano-4b\"\n}\n```\n\nIl bot chiama un server locale compatibile OpenAI su `http://127.0.0.1:1234/v1/chat/completions`.\n\nIl revisore AI non genera trade da solo: riceve ogni segnale quantitativo e puo spiegarlo, approvarlo o segnalarlo come debole. Con `require_approval_for_buys: true` diventa un gate rigido sui buy: se boccia o non risponde, il bot non compra. `require_approval_for_sells` e separato: di default puo restare `false` per rendere l'AI consultiva sulle uscite strategiche. Stop loss e take profit restano sempre prioritari.\n\nNel rischio puoi ridurre churn e rientri impulsivi con:\n\n```json\n\"risk\": {\n  \"min_hold_minutes\": 120,\n  \"cooldown_minutes\": 180\n}\n```\n\n`min_hold_minutes` blocca solo le uscite strategiche troppo rapide; stop loss e take profit possono comunque chiudere subito. `cooldown_minutes` impedisce nuovi buy sullo stesso simbolo per un certo periodo dopo una chiusura.\n\n## Strategie esoteriche opzionali\n\nLa strategia classica resta il default. Per provare moduli aggiuntivi senza cambiare il motore di rischio puoi abilitare una strategia ensemble:\n\n```json\n\"strategy\": {\n  \"mode\": \"parallel\",\n  \"enabled_modules\": [\"chaos_gate\", \"trend_rider\", \"volume_echo\", \"regime_oracle\"],\n  \"ensemble_min_votes\": 2,\n  \"fast_sma\": 8,\n  \"slow_sma\": 32,\n  \"rsi_period\": 14,\n  \"buy_rsi_max\": 52,\n  \"sell_rsi_min\": 74,\n  \"min_confidence\": 0.58,\n  \"chaos_period\": 18,\n  \"chaos_min_efficiency\": 0.28,\n  \"volume_period\": 24,\n  \"volume_spike_multiplier\": 1.6,\n  \"regime_period\": 48\n}\n```\n\n`chaos_gate` misura quanto il movimento e direzionale rispetto al rumore e puo bloccare buy in fasi troppo confuse. `trend_rider` e il modulo aggressivo: cerca trend gia partiti e puo comprare anche quando la strategia classica resta in hold per RSI non ideale. `volume_echo` cerca accelerazioni di volume con momentum coerente. `regime_oracle` classifica il mercato in trend, chop, squeeze, panic o mixed e modifica la confidenza. Con `mode: \"ensemble\"` i moduli confermano o filtrano la strategia classica; con `mode: \"parallel\"` possono generare un buy anche quando la strategia classica e in hold, se raggiungono i voti minimi. Anche le sell richiedono consenso: un RSI alto da solo non basta piu se i moduli restano buy/hold.\n\n## Backtest storico\n\nLa modalita backtest scarica candele storiche dal provider configurato per i simboli scelti e simula il periodo in memoria, senza modificare `state.json` o `journal.jsonl`.\n\n```bash\ngo run . --config config.json --backtest --from 2026-01-01 --to 2026-03-31\n```\n\nIl risultato JSON include equity finale, performance, max drawdown, benchmark, alpha, breakdown per simbolo/motivo uscita, eventi, posizioni aperte e report giornalieri. Se vuoi una sintesi leggibile con win rate, profit factor, giorni migliori/peggiori e peggiori trade, usa `--backtest-format report`. Se `ai.enabled` e attivo, anche il backtest chiamera il revisore AI per ogni segnale, quindi per test lunghi conviene usare `--backtest-no-ai`.\n\n### Ottimizzazione\n\nPuoi eseguire N simulazioni sullo stesso periodo variando parametri di strategia e rischio:\n\n```bash\ngo run . --config config.json --backtest --backtest-no-ai --backtest-format report --optimize 300 --from 2026-01-01 --to 2026-03-31\n```\n\nLo score premia performance, alpha rispetto al benchmark, profit factor e win rate, penalizzando drawdown, pochi trade e risultati con qualita statistica debole. Le configurazioni con pochi trade, profit factor sotto 1 o win rate molto basso vengono marcate come `rejected`. Non e una garanzia: serve per trovare candidati da verificare su periodi diversi, non per scegliere automaticamente una strategia definitiva.\n\nPer generare un file di configurazione pronto da provare, aggiungi `--optimized-config`. Il file mantiene la configurazione originale e aggiorna solo le sezioni `risk` e `strategy` con la migliore configurazione qualificata; se nessuna configurazione e qualificata, usa comunque la migliore disponibile.\n\n```bash\ngo run . --config config.json --backtest --backtest-no-ai --backtest-format report --optimize 300 --optimized-config config.optimized.json --from 2026-01-01 --to 2026-03-31\n```\n\nPer ridurre il rischio di overfitting puoi fare una validazione walk-forward: il bot ottimizza sul periodo `--from/--to`, poi testa ogni candidato su `--validate-from/--validate-to` e preferisce configurazioni che restano qualificate anche fuori campione.\n\n```bash\ngo run . --config config.json --backtest --backtest-no-ai --backtest-format report --optimize 300 --optimized-config config.optimized.json --from 2026-01-01 --to 2026-03-31 --validate-from 2026-04-01 --validate-to 2026-05-31\n```\n\n## Perche questa forma\n\nL'obiettivo e capire se una strategia ha un edge prima di rischiare capitale vero. L'AI, quando verra aggiunta, dovrebbe essere un revisore del contesto e del rischio, non un permesso illimitato a comprare.\n\n## Prossimi step sensati\n\n1. Confrontare backtest su periodi diversi.\n2. Far girare paper trading per 2-4 settimane.\n3. Aggiungere un secondo provider dati non-crypto, per esempio azioni/ETF in paper trading.\n4. Solo dopo, valutare integrazione broker/exchange con API key senza permesso di withdrawal.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frehacktive%2Fautocrypto","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frehacktive%2Fautocrypto","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frehacktive%2Fautocrypto/lists"}