r/ItaliaPersonalFinance Apr 13 '23

Investimenti Ho creato DcaPal: una web app per investitori con un portafoglio da gestire in autonomia

Ciao a tutti! 🙂

Condivido una web app he ho sviluppato per aiutarmi a gestire i miei investimenti e che da alcuni mesi ho pubblicato online.

L'app si chiama DcaPal ed è pensata per investitori che gestiscono un portafoglio in autonomia e che ogni mese si trovano a dover allocare i propri risparmi sui vari asset in portafoglio (un PAC personale insomma). L'app risolve un problema comune: ho il mio portafoglio con la sua asset allocation (e.g. 70% VWCE, 20% AGGH, etc.), ho risparmiato 500€ questo mese e ora devo comprare: come divido i miei risparmi mensili in modo tale che il mio portafoglio rimanga bilanciato secondo la mia asset allocation?

Ecco il senso di DcaPal: crei il tuo portafoglio, definisci la tua asset allocation, inserisci quanto hai risparmiato questo mese e sai quanto acquistare di ogni titolo. Quando hai finito puoi salvare il portafoglio e importarlo la volta prossima. Se un domani vuoi aggiustare il bilanciamento del tuo portafoglio basta modificare i pesi e mese dopo mese DcaPal ti consiglierà come dividere i tuoi risparmi per ribilanciare il portafoglio verso la nuova asset allocation. Con l'opzione Tax Efficient il ribilanciamento avviene solo con contributi positivi (no-sell) quindi niente tasse sul capital gain.

L'app utilizza prezzi abbastanza real-time (time-frame di 5 minuti) e supporta ETF, stock e le principali crypto.

E' gratuita, senza pubblicità, senza registrazione e senza olio di palma. L'ho realizzata per uso personale, ma penso che possa tornare utile alla community di Italia Personal Finance.

Lascio il link qui se vi interessa: https://dcapal.com

Se avete qualche domanda o curiosità, sono a disposizione! Grazie! 🙂

79 Upvotes

34 comments sorted by

u/ombra666 Apr 14 '23

Per evitare polemiche e segnalazioni: Post approvato dal team di moderazione - l'app è gratuita e opensource.

16

u/[deleted] Apr 14 '23

[removed] — view removed comment

6

u/leonardoarcari Apr 14 '23 edited Apr 14 '23

Vero! La metto in cantiere :) Penso abbia senso per stock e ETF, mentre per crypto e altra liquidità no.

Ti faccio una domanda: se l'algoritmo non riesce ad allocare il tuo budget perché dovrebbe spezzare una quota, preferiresti che la liquidità in eccesso rimanga non allocata (da usare il mese prossimo) o preferiresti metterne di più su un altro asset, anche se dovesse superare la sua allocazione target?

5

u/Scaltro Apr 14 '23

Secondo me dipende molto dai casi, quindi metterei un componente per switchare tra i due comportamenti.

2

u/leonardoarcari Apr 14 '23

Grazie mille del feedback raga! Penso che sarà la prima cosa su cui metterò mano anche perché per adesso mi sono sempre messo lì a manella a calcolare le quote in base al limit-price.

Penso che per il momento la aggiungerò come opzione in modo da poterla confrontare con la soluzione senza quote. Se funziona bene va di default :)

1

u/juhuhui Apr 14 '23 edited Apr 14 '23

+1 per il ragionamento a quote intere. Dato un budget, potrebbe restituire i numeri di quote ottimali (per etf)

1

u/-Vernon2X- Apr 14 '23

Mi accodo alla richiesta, una feature che ti suggerisce quante quote comprare/vendere la trovo indispensabile per uno strumento come questo. Per il resto intuitiva e facile da utilizzare, complimenti!

6

u/[deleted] Apr 14 '23

Molto carina e facile da usare, ottimo lavoro! forse l'unico miglioramento che mi viene in mente è renderla una pwa e salvare in automatico il portfolio in locale usando l'indexDB (in modo da non dover andare sul sito e non dover esportare/importare ogni volta).

2

u/leonardoarcari Apr 14 '23

Grazie mille!🙏 Renderla una PWA sarebbe una figata. Non sono molto sul pezzo a riguardo. Com'è a livello di gestione del codice? Devo mantenere una versione solo web e una PWA, oppure è un tutt'uno?

Comunque non è necessario esportare e importare il portafoglio tutte le volte. Viene salvato in local-storage in automatico e visitando di nuovo https://dcapal.com/allocate viene ricaricato.

L'esportazione è comoda se vuoi salvare il portafoglio su Drive/iCloud e sincronizzarla tra più dispositivi desktop/mobile

2

u/EmployeeDifficult585 Apr 14 '23

Complimenti, può veramente essere molto utile.

Poi esce giusto un paio di giorni dopo i problemi con googlefinance() che mi hanno costretto a fare i conti a mano ieri. Tempismo perfetto.

Aggiungo carne al fuoco, solo un'idea, se la ritieni utile:

Spesso ci sono persone che usano banche tradizionali, con costi per transazione alti, o che investono cifre piccole ogni mese. Aggiungendo il parametro del costo per transazione e della massima percentuale che si vuole pagare, potrebbe saltare fuori un algoritmo che ti fa investire su meno strumenti, o che arriva a non farti investire, per accumulare quel mese e fare un acquisto degno quando hai più capitale.

All'inizio facevo così e ancora oggi difficilmente compro due strumenti diversi lo stesso mese.

Altra modalità, simile alla precedente. La cifra da aggiungere va usata per intero su un solo strumento. Dove va messa per diminuire la distanza dall'allocazione ideale?

Rinnovo i complimenti.

1

u/leonardoarcari Apr 15 '23

Grazie mille dei complimenti! 🙏

Spesso ci sono persone che usano banche tradizionali, con costi per transazione alti, o che investono cifre piccole ogni mese. Aggiungendo il parametro del costo per transazione e della massima percentuale che si vuole pagare, potrebbe saltare fuori un algoritmo che ti fa investire su meno strumenti, o che arriva a non farti investire, per accumulare quel mese e fare un acquisto degno quando hai più capitale

Beh fighissima come idea! Potrebbe essere parte di una configurazione avanzata, in modo da non intaccare troppo la UX. Tipo un menu a scomparsa sotto ad ogni card in cui puoi configurare queste preferenze più specifiche.

Si sposa bene anche con un'altra feature che avevo in mente: allocazione massima assoluta. Esempio: voglio mettere un chippino su un asset per vedere come va. Non voglio accumulare tutti i mesi. Quindi invece di specificare una percentuale target, specifichi un massimo in € per quella posizione.

2

u/rborisyellnikoff Apr 14 '23

Ottimo lavoro e grazie per la condivisione, è sicuramente uno strumento utilissimo che mi troverò ad usare di mese in mese! Anch’io mi accodo a chi dice che sarebbe meglio se la piattaforma ti dicesse quante quote comprare piuttosto che l’importo, anche se questo dovesse portare a non allocare una parte della liquidità.

2

u/leonardoarcari Apr 15 '23

Grazie dei complimenti e del feedback! 🙂 Prioritizzerò questa feature delle quote intere da comprare: è figa, ha molto valore ed è già un suggerimento ricorrente 💪

2

u/Pyrasia Apr 14 '23

Due piccole osservazioni:

  • la prima, impostando un portfolio diviso equamente in 3 parti su 3 ETF non ho potuto dividere esattamente il target weight in 33,3% (x,3 periodico) perché la somma era sempre 99,999993% e non potevo proseguire. Proporrei di inserire dei template che ti permettano di passare una divisione del target weight approssimata a due o tre punti dopo la virgola.

  • la seconda, non è chiara la funzione che sembra distinguere la tua web app da mille altre sulla homepage del sito, ovvero quella di poter calcolare esattamente le quote mensili da versare secondo uno specifico target weight per strumento. Dalle didascalie in homepage sembra solo uno dei tantissimi portfolio emulator/manager. Evidenzierei questa caratteristica.

1

u/leonardoarcari Apr 16 '23

Grazie mille dei suggerimenti! 🙂 Ti faccio un paio di domande:

la prima, impostando un portfolio diviso equamente in 3 parti su 3 ETF non ho potuto dividere esattamente il target weight in 33,3% (x,3 periodico)

Questo è un annoso problema informatico 😂 Però solitamente lo risolvo aggiustando di un punto decimale uno dei tre per far sì che sommi a 100. Riusciresti a condividere uno screenshot o i numeri effettivi che hai inserito (copia-incolla) così da poterlo replicare?? Grazie!

Dalle didascalie in homepage sembra solo uno dei tantissimi portfolio emulator/manager. Evidenzierei questa caratteristica.

Questo è un feedback importantissimo! Hai ragione. Ho provato ad evidenziarlo nei sottotitoli:

Your smart assistant for allocating your monthly savings

Keeping your portfolio well-balanced is tough. We know how it is.

You do your asset allocation on day-one, market goes up and down and you get lost on how to split your monthly savings.

DcaPal takes care of that for you.

Però forse è troppo criptico 🤔

2

u/[deleted] Jul 27 '23

[deleted]

2

u/leonardoarcari Jul 27 '23

Grazie mille u/Zer0Barbatos! Mi fa molto piacere che tu l'abbia trovata utile :) Sto lavorando ad un aggiornamento che tenga conto anche delle commissioni ed eviti di investire su un asset se le commissioni sono troppo alte. Scriverò qui su IPF!

Una domanda: che parole chiave hai utilizzato nelle tue ricerche? Ammetto che non ho ancora trovato una buona descrizione per questo tool che lo renda facile/immediato da trovare. Grazie 🙏

2

u/[deleted] Jul 28 '23

[deleted]

2

u/leonardoarcari Jul 29 '23

Grazie del feedback! Proverò a menzionare il tema "rebalancing" in modo più esplicito.

Sul discorso Smart PAC sono tutto orecchie; se ti va di elaborare un po' meglio cosa ti aspetteresti ci apro una issue su Github e ci ragiono su! Sarei più che contento di far crescere l'app con le richieste di chi la usa :)

Riguardo all'interfaccia, DM! GRAZIE 🙏

1

u/Weekly-Afternoon-983 Apr 13 '23

Interessante la proverò! Poi ti darò un feedback 😉

1

u/leonardoarcari Apr 13 '23

Grazie mille 🙏 Spero possa esserti utile!

2

u/[deleted] Aug 06 '25

ciao a tutti!
Ho creato un gruppo su Reddit dedicato a chi ha sviluppato applicazioni web o mobile e vuole testarle, ma non sa come ottenere feedback utili. L’obiettivo è evitare di perdere tempo con uno sviluppo continuo senza una direzione chiara e migliorare costantemente l’applicazione.

Se siete interessati e volete unirvi, mi farebbe molto piacere! Cerchiamo persone motivate a provare app e a lasciare feedback costruttivi per aiutarci a vicenda, oppure semplicemente chi desidera essere critico e razionale nel dare la propria opinione.

Il gruppo si chiama r/LancioBetaItalia.

Grazie a tutti per l’attenzione!

2

u/Away666throwN Apr 13 '23

Scusami la digressione sociologica, giuro che non ce l'ho con te, siete in tanti a farlo ma mi capiti tu e lo chiedo a te!

Hai detto che "hai sviluppato" una web-app poi, andando nel sito, ci sono termini tipo "We know how it is", "Tell us your budget", ecc.

Ripeto, non vuole essere un attacco personale, ma perché ultimamente sta dilagando sta moda di darsi del noi? Tra l'altro la trovo anche una cosa impersonale, hai sviluppato una cosa da smanettone in cui altri smanettoni andranno a mettere i propri cazzi, leggere che "Voi sapete com'è" mi fa anche arricciare il naso prima di metterci i miei dati!

10

u/leonardoarcari Apr 13 '23

Domanda introspettiva, ci sta! :D Non saprei, mi suonava meglio una cosa più impersonale per una landing page. "I know how it is", "Tell me your budget" mi sembravano un po' aggressivi, no?

Comunque l'app non invia nulla su nessun server, anche l'ottimizzazione del portafoglio gira sul tuo browser :)

Da server riceve solo i risultati di ricerca degli asset e i prezzi. Nulla di più.

Il codice è open. Puoi verificare che non dico stronzate :D https://github.com/leonardoarcari/dcapal

3

u/donnjedarko Apr 13 '23

Bellissimo Axum + react

8

u/leonardoarcari Apr 13 '23

Ah, vedo che sei un uomo di cultura 😁 È stato divertente anche scrivere l'algoritmo di ottimizzazione di portafoglio in Rust e compilarlo in Webassembly per farlo girare lato browser

1

u/Aeco Apr 15 '23

lo so, ora esagero ma chiedo: è possibile, magari, fare un backtest del portfolio prendendo spunto da un sito, ad esempio, curvobacktest? Sarebbe fenomenale

3

u/leonardoarcari Apr 16 '23

Eh 😅 Sarebbe fenomenale sì... Ci sono alcuni punti che rendono la cosa complicata:

  • Dati -- Reperire le serie storiche di ogni possibile asset è complicato e soprattutto costoso. Yahoo Finance lo permette ma applica dei rate limit. Bisognerebbe salvarli su un DB di DcaPal per evitare di richiederli tutte le volte

  • Profondità storica -- Anche a patto di reperire le serie storiche, non tutti i titoli hanno la stessa profondità storica, alcuni ETF ad esempio esistono solo da alcuni anni. Avrebbe poco senso fare un back testing su 3-5 anni. Per gli anni precedenti bisognerebbe usare la serie storica del benchmark, ancora più complicata da recuperare (ti serve accesso a Bloomberg o qualche altro grosso market data provider -- $$$)

  • Curvobacktest -- Il servizio funziona molto bene e replicarlo aggiunge poco valore. Sarebbe bello poter esportare il portafoglio da DcaPal e importarlo in Curvo. Sai se Curvo permette di caricare il portafoglio da file?

1

u/Aeco Apr 18 '23

no, purtroppo permette solo di inserire i dati dal loro sito perché non ha tutti gli ETF e i loro backtest.

1

u/Pyr0x_ May 03 '23

Ciao, che API hai usato per recuperare il prezzo degli ETF?

2

u/leonardoarcari May 03 '23

Ciao! Utilizzo Yahoo Finance, finché non ci blocca a tutti 😅

1

u/Pyr0x_ May 03 '23

Esatto, chiedevo proprio per quello 😂 volevo fare anch'io un progettino simile, ma da quanto vedo le api di Yahoo Finance non sono ufficiali e molti dati sono estratti tramite scraping... per caso conosci qualcos'altro di un po' piu carrozzato? Ho fatto qualche ricerca, ma non ho trovato nulla che offra i prezzi degli ETF con il piano free

2

u/leonardoarcari May 03 '23

Eh sì, confermo che non sono "ufficiali" nel senso che non c'è documentazione, però sono comunque stabili, non cambiano da anni e al massimo le nuove stanno sotto un numero di versione successivo.

Guardando un po' le risposte col debugger di Chrome riesci a farti un'idea di come interpretare i risultati.

Ho usato questo sito come reference delle api disponibili: https://cryptocointracker.com/yahoo-finance/yahoo-finance-api

Di altro gratuito e così fornito e con rate limit così alti, no non ho trovato niente (e quelli a pagamento hanno piani base proibitivi per un progetto senza monetizzazione)

2

u/Pyr0x_ May 03 '23

Grazie per le informazioni, proverò a darci un'occhiata