Shiny Contest Submission: Stock Portfolio Monitor


This project uses Shiny to monitor my personal stock portfolio. When I built this project, I wanted to demonstrate the power of R shiny, while not making it overly complicated. Therefore, I chose to fix some dataset and limit the amount of parameters that users can tune. The full version should retrieve data from databases and various online apis, therefore enabling more options.


Libraries used:

  • Highcharter: For static analysis, I love to use ggplot2. However, for financial time series, I find highchart to be both professional and easy to use. It adds a lot of interactivity to the plot and allows you the analyze your data in a flexible way.
  • PerformanceAnalytics: I didn't write any of the financial metrics calculation myself. PerformanceAnalytics covers many metrics that are more than sufficient for this Shiny app.
  • Argon: Beautiful and ready to use bootstrap 4 theme. I see this as a replacement for shiny builtin ui/shinydashboard which are a little bit dated. Shout out to David Granjon for creating this amazing package and being a very responsive maintainer.
  • memoise: When running functions with repeated parameters, memoise allows you to cache results and therefore speed up calculations.
  • tidyverse: Do I even need to mention this? Hands down to the best data manipulation package of all programming languages. This is why I use R.

Super nice design. Thanks for using argon and argonDash! I take any feedback you might have regarding the API :wink:

1 Like

Thank you! I really enjoyed using your argonDash. I see it will become much more popular if the docs are better. Sketching this whole thing up probably took me 5hrs, and 3hrs of it is searching through argonDash (1hr on that CRAN version shinyapps tab issue... until I found the issue on github). However, I am super happy with the outcome.

Easy to grasp layout. Highcharter plots look professional.

Shawn, you amaze me all the time! Excellent work and look forward to more cooperation with you in the future!

Super practical topic and we've learned a lot from the code as well as the logic! Thanks for having this work nicely done!

Very well written program. It is really easy to use and looks beautiful.

This is so well written and genius! Nice done!

Very helpful! Nice work!

Thanks for all the kind comments!

I mentioned memoise only briefly in the package used list. Here’s a blog post I wrote that has an example: