{
  "_id": "6a1efa81b401979e73418742",
  "Package": "portfolioBacktest",
  "Title": "Automated Backtesting of Portfolios over Multiple Datasets",
  "Version": "0.4.2",
  "Date": "2026-05-18",
  "Description": "Automated backtesting of multiple portfolios over multiple\ndatasets of stock prices in a rolling-window fashion. Intended\nfor researchers and practitioners to backtest a set of\ndifferent portfolios, as well as by a course instructor to\nassess the students in their portfolio design in a fully\nautomated and convenient manner, with results conveniently\nformatted in tables and plots. Each portfolio design is easily\ndefined as a function that takes as input a window of the stock\nprices and outputs the portfolio weights. Multiple portfolios\ncan be easily specified as a list of functions or as files in a\nfolder. Multiple datasets can be conveniently extracted\nrandomly from different markets, different time periods, and\ndifferent subsets of the stock universe. The results can be\nlater assessed and ranked with tables based on a number of\nperformance criteria (e.g., expected return, volatility, Sharpe\nratio, drawdown, turnover rate, return on investment,\ncomputational time, etc.), as well as plotted in a number of\nways with nice barplots and boxplots. See Chapter 8 (Portfolio\nBacktesting) of the book: Daniel P. Palomar, \"Portfolio\nOptimization: Theory and Application\", Cambridge University\nPress, 2025.",
  "Authors@R": "c(\nperson(c(\"Daniel\", \"P.\"), \"Palomar\", role = c(\"cre\", \"aut\"), email = \"daniel.p.palomar@gmail.com\"),\nperson(\"Rui\", \"Zhou\", role =  \"aut\", email = \"rzhouae@connect.ust.hk\")\n)",
  "Maintainer": "Daniel P. Palomar <daniel.p.palomar@gmail.com>",
  "URL": "https://CRAN.R-project.org/package=portfolioBacktest,\nhttps://github.com/dppalomar/portfolioBacktest,\nhttps://portfoliooptimizationbook.com,\nhttps://portfoliooptimizationbook.com/book/8-backtesting.html",
  "BugReports": "https://github.com/dppalomar/portfolioBacktest/issues",
  "Language": "en-US",
  "License": "GPL-3",
  "Encoding": "UTF-8",
  "LazyData": "true",
  "RoxygenNote": "7.3.1",
  "VignetteBuilder": "knitr, rmarkdown, R.rsp",
  "Config/pak/sysreqs": "libssl-dev",
  "Repository": "https://dppalomar.r-universe.dev",
  "Date/Publication": "2026-05-18 12:37:39 UTC",
  "RemoteUrl": "https://github.com/dppalomar/portfoliobacktest",
  "RemoteRef": "HEAD",
  "RemoteSha": "1bbc50bde28c0c8fb43e21cb7ef603e33cb62458",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-05-18 15:23:08 UTC",
    "User": "root"
  },
  "Author": "Daniel P. Palomar [cre, aut],\nRui Zhou [aut]",
  "MD5sum": "2fb8f4d2e79f9cff8af2839084bf3b49",
  "_user": "dppalomar",
  "_type": "src",
  "_file": "portfolioBacktest_0.4.2.tar.gz",
  "_fileid": "bdc345d5f756734fc101fa009e5f7307d659e47822689e0e9f1c72592f1a2fa8",
  "_filesize": 1846937,
  "_sha256": "bdc345d5f756734fc101fa009e5f7307d659e47822689e0e9f1c72592f1a2fa8",
  "_created": "2026-05-18T15:23:08.000Z",
  "_published": "2026-06-02T15:45:05.318Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 79111588993,
      "time": 216,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7062049318"
    },
    {
      "job": 79111589375,
      "time": 201,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7062043779"
    },
    {
      "job": 79111589148,
      "time": 198,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7062040632"
    },
    {
      "job": 79111588903,
      "time": 169,
      "config": "macos-release-arm64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7062029545"
    },
    {
      "job": 79111588204,
      "time": 260,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7061960218"
    },
    {
      "job": 79111588553,
      "time": 141,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7362688996"
    },
    {
      "job": 79111589128,
      "time": 162,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7062026274"
    },
    {
      "job": 79111589054,
      "time": 198,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7062042413"
    },
    {
      "job": 79111589066,
      "time": 148,
      "config": "windows-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7062021036"
    }
  ],
  "_buildurl": "https://github.com/r-universe/dppalomar/actions/runs/26042680612",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/dppalomar/portfoliobacktest",
  "_commit": {
    "id": "1bbc50bde28c0c8fb43e21cb7ef603e33cb62458",
    "author": "dppalomar <daniel.p.palomar@gmail.com>",
    "committer": "dppalomar <daniel.p.palomar@gmail.com>",
    "message": "Fix SSRN URL redirects, add book citation and reference spacing in vignette\n\n- Updated refs.bib SSRN URLs from ssrn.com to www.ssrn.com to avoid redirects\n- Updated pre-compiled vignette HTML with same URL fix\n- Added Palomar2025 book citation in vignette and refs.bib\n- Added inline CSS for reference spacing in vignette\n- Fixed redirect URLs in R source files (vignette links)\n- Added inst/WORDLIST for custom spell-check terms\n- Updated README to use htmlpreview.github.io vignette URL\n",
    "time": 1779107859
  },
  "_maintainer": {
    "name": "Daniel P. Palomar",
    "email": "daniel.p.palomar@gmail.com",
    "login": "dppalomar",
    "description": "Professor of Optimization, Hong Kong University of Science and Technology (HKUST)",
    "uuid": 22098181
  },
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 2.10",
      "role": "Depends"
    },
    {
      "package": "digest",
      "role": "Imports"
    },
    {
      "package": "evaluate",
      "role": "Imports"
    },
    {
      "package": "ggplot2",
      "role": "Imports"
    },
    {
      "package": "pbapply",
      "role": "Imports"
    },
    {
      "package": "PerformanceAnalytics",
      "role": "Imports"
    },
    {
      "package": "parallel",
      "role": "Imports"
    },
    {
      "package": "quadprog",
      "role": "Imports"
    },
    {
      "package": "quantmod",
      "role": "Imports"
    },
    {
      "package": "R.utils",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "role": "Imports"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "xts",
      "role": "Imports"
    },
    {
      "package": "zoo",
      "role": "Imports"
    },
    {
      "package": "CVXR",
      "role": "Suggests"
    },
    {
      "package": "DT",
      "role": "Suggests"
    },
    {
      "package": "ggfortify",
      "role": "Suggests"
    },
    {
      "package": "gridExtra",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "prettydoc",
      "role": "Suggests"
    },
    {
      "package": "readtext",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "R.rsp",
      "role": "Suggests"
    },
    {
      "package": "scales",
      "role": "Suggests"
    },
    {
      "package": "stringi",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "role": "Suggests"
    }
  ],
  "_owner": "dppalomar",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-21",
      "n": 3
    }
  ],
  "_tags": [],
  "_topics": [
    "backtesting",
    "financial-markets",
    "portfolio"
  ],
  "_stars": 72,
  "_contributors": [
    {
      "user": "dppalomar",
      "count": 331,
      "uuid": 22098181
    },
    {
      "user": "ruihkust",
      "count": 144,
      "uuid": 33095611
    },
    {
      "user": "mirca",
      "count": 3,
      "uuid": 13077051
    }
  ],
  "_userbio": {
    "uuid": 22098181,
    "type": "user",
    "name": "Daniel P. Palomar",
    "description": "Professor of Optimization, Hong Kong University of Science and Technology (HKUST)"
  },
  "_downloads": {
    "count": 765,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/portfolioBacktest"
  },
  "_devurl": "https://github.com/dppalomar/portfoliobacktest",
  "_searchresults": 82,
  "_rbuild": "4.6.0",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/portfolioBacktest.html",
    "extra/readme.html",
    "extra/readme.md",
    "manual.pdf"
  ],
  "_homeurl": "https://github.com/dppalomar/portfoliobacktest",
  "_realowner": "dppalomar",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.1.0",
      "date": "2019-06-19"
    },
    {
      "version": "0.1.1",
      "date": "2019-07-05"
    },
    {
      "version": "0.2.0",
      "date": "2019-08-23"
    },
    {
      "version": "0.2.1",
      "date": "2019-10-07"
    },
    {
      "version": "0.2.2",
      "date": "2020-08-03"
    },
    {
      "version": "0.2.3",
      "date": "2021-01-12"
    },
    {
      "version": "0.3.0",
      "date": "2021-09-21"
    },
    {
      "version": "0.3.1",
      "date": "2021-10-17"
    },
    {
      "version": "0.4.1",
      "date": "2022-04-22"
    }
  ],
  "_exports": [
    "add_performance",
    "backtestBoxPlot",
    "backtestChartCumReturn",
    "backtestChartDrawdown",
    "backtestChartSharpeRatio",
    "backtestChartStackedBar",
    "backtestLeaderboard",
    "backtestSelector",
    "backtestSummary",
    "backtestTable",
    "financialDataResample",
    "genRandomFuns",
    "listPortfoliosWithFailures",
    "plotPerformanceVsParams",
    "portfolioBacktest",
    "stockDataDownload",
    "stockDataResample",
    "summaryBarPlot",
    "summaryTable"
  ],
  "_datasets": [
    {
      "name": "dataset10",
      "title": "Ten datasets obtained by resampling the S&P 500",
      "object": "dataset10",
      "class": [
        "list"
      ],
      "fields": [],
      "table": true,
      "tojson": false
    },
    {
      "name": "SP500_symbols",
      "title": "Stock symbols of the S&P 500 constituents",
      "object": "SP500_symbols",
      "class": [
        "character"
      ],
      "fields": [],
      "table": false,
      "tojson": true
    }
  ],
  "_help": [
    {
      "page": "portfolioBacktest-package",
      "title": "portfolioBacktest: Automated Backtesting of Portfolios over Multiple Datasets",
      "topics": [
        "portfolioBacktest-package"
      ]
    },
    {
      "page": "add_performance",
      "title": "Add a new performance measure to backtests",
      "topics": [
        "add_performance"
      ]
    },
    {
      "page": "backtestBoxPlot",
      "title": "Create boxplot from backtest results",
      "topics": [
        "backtestBoxPlot"
      ]
    },
    {
      "page": "backtestChartCumReturn",
      "title": "Chart of the cumulative returns or wealth for a single backtest",
      "topics": [
        "backtestChartCumReturn"
      ]
    },
    {
      "page": "backtestChartDrawdown",
      "title": "Chart of the drawdown for a single backtest",
      "topics": [
        "backtestChartDrawdown"
      ]
    },
    {
      "page": "backtestChartSharpeRatio",
      "title": "Chart of the rolling Sharpe ratio over time for a single backtest",
      "topics": [
        "backtestChartSharpeRatio"
      ]
    },
    {
      "page": "backtestChartStackedBar",
      "title": "Chart of the weight allocation over time for a portfolio over a single backtest",
      "topics": [
        "backtestChartStackedBar"
      ]
    },
    {
      "page": "backtestLeaderboard",
      "title": "Leaderboard of portfolios from the backtest results",
      "topics": [
        "backtestLeaderboard"
      ]
    },
    {
      "page": "backtestSelector",
      "title": "Selector of portfolio backtest results",
      "topics": [
        "backtestSelector"
      ]
    },
    {
      "page": "backtestSummary",
      "title": "Summary of portfolio backtest",
      "topics": [
        "backtestSummary"
      ]
    },
    {
      "page": "backtestTable",
      "title": "Table with portfolio backtest results",
      "topics": [
        "backtestTable"
      ]
    },
    {
      "page": "dataset10",
      "title": "Ten datasets obtained by resampling the S&P 500",
      "topics": [
        "dataset10"
      ]
    },
    {
      "page": "financialDataResample",
      "title": "Generate random resamples from financial data",
      "topics": [
        "financialDataResample"
      ]
    },
    {
      "page": "genRandomFuns",
      "title": "Generate multiple versions of a function with randomly chosen parameters",
      "topics": [
        "genRandomFuns"
      ]
    },
    {
      "page": "listPortfoliosWithFailures",
      "title": "List portfolios with failures",
      "topics": [
        "listPortfoliosWithFailures"
      ]
    },
    {
      "page": "plotPerformanceVsParams",
      "title": "Plot performance of portfolio function vs choice of parameters",
      "topics": [
        "plotPerformanceVsParams"
      ]
    },
    {
      "page": "portfolioBacktest",
      "title": "Backtest multiple portfolios over multiple datasets of stock prices in a rolling-window basis",
      "topics": [
        "portfolioBacktest"
      ]
    },
    {
      "page": "SP500_symbols",
      "title": "Stock symbols of the S&P 500 constituents",
      "topics": [
        "SP500_symbols"
      ]
    },
    {
      "page": "stockDataDownload",
      "title": "Download stock data from the Internet",
      "topics": [
        "stockDataDownload"
      ]
    },
    {
      "page": "stockDataResample",
      "title": "Generate random resamples from financial data",
      "topics": [
        "stockDataResample"
      ]
    },
    {
      "page": "summaryBarPlot",
      "title": "Create barplot from backtest summary",
      "topics": [
        "summaryBarPlot"
      ]
    },
    {
      "page": "summaryTable",
      "title": "Create table from backtest summary",
      "topics": [
        "summaryTable"
      ]
    }
  ],
  "_readme": "https://github.com/dppalomar/portfoliobacktest/raw/HEAD/README.md",
  "_rundeps": [
    "cli",
    "cpp11",
    "curl",
    "digest",
    "evaluate",
    "farver",
    "ggplot2",
    "glue",
    "gtable",
    "isoband",
    "jsonlite",
    "labeling",
    "lattice",
    "lifecycle",
    "pbapply",
    "PerformanceAnalytics",
    "quadprog",
    "quantmod",
    "R.methodsS3",
    "R.oo",
    "R.utils",
    "R6",
    "RColorBrewer",
    "rlang",
    "S7",
    "scales",
    "TTR",
    "vctrs",
    "viridisLite",
    "withr",
    "xts",
    "zoo"
  ],
  "_vignettes": [
    {
      "source": "PortfolioBacktest.html.asis",
      "filename": "PortfolioBacktest.html",
      "title": "Portfolio Backtesting",
      "engine": "R.rsp::asis",
      "headings": [],
      "created": "2019-04-19 08:43:02",
      "modified": "2019-06-17 14:17:42",
      "commits": 3
    }
  ],
  "_score": 6.771146348814986,
  "_indexed": true,
  "_nocasepkg": "portfoliobacktest",
  "_universes": [
    "dppalomar"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.4.2",
      "date": "2026-05-18T15:25:55.000Z",
      "distro": "noble",
      "commit": "1bbc50bde28c0c8fb43e21cb7ef603e33cb62458",
      "fileid": "6677f0308e97a8114f66d0ed546f654af673081b5a489c03a0b4197a7f6bde89",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/dppalomar/actions/runs/26042680612"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "0.4.2",
      "date": "2026-05-18T15:25:41.000Z",
      "distro": "noble",
      "commit": "1bbc50bde28c0c8fb43e21cb7ef603e33cb62458",
      "fileid": "760cb3b84c312197146d79989502899f550d1994ac5a23f0a62933a0b28180d6",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/dppalomar/actions/runs/26042680612"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.4.2",
      "date": "2026-05-18T15:25:22.000Z",
      "commit": "1bbc50bde28c0c8fb43e21cb7ef603e33cb62458",
      "fileid": "8cf038c2262157202fa058dc2e5f0ea8b7b4ddabc3b0fed325f9348fc4bc59ac",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/dppalomar/actions/runs/26042680612"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "0.4.2",
      "date": "2026-05-18T15:25:10.000Z",
      "commit": "1bbc50bde28c0c8fb43e21cb7ef603e33cb62458",
      "fileid": "009f56bab810edc09756bda2ed89e51fbfaf86647354ecd02f68af3b57abedb9",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/dppalomar/actions/runs/26042680612"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.4.2",
      "date": "2026-05-18T15:24:38.000Z",
      "commit": "1bbc50bde28c0c8fb43e21cb7ef603e33cb62458",
      "fileid": "9759fe9957db3604e7832cb00d1669982f88c75b1397b1331e920ae06a7e6322",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/dppalomar/actions/runs/26042680612"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.4.2",
      "date": "2026-05-18T15:25:17.000Z",
      "commit": "1bbc50bde28c0c8fb43e21cb7ef603e33cb62458",
      "fileid": "252f4aa8f5b48e874e81504434b1f07e7c9b7a6af065a4c8922d7b3736257cd2",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/dppalomar/actions/runs/26042680612"
    },
    {
      "r": "4.6.0",
      "os": "win",
      "version": "0.4.2",
      "date": "2026-05-18T15:24:32.000Z",
      "commit": "1bbc50bde28c0c8fb43e21cb7ef603e33cb62458",
      "fileid": "1a8cb5ac573287f1dd666719971f9c11a2845b43c3341f802567641177795e4a",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/dppalomar/actions/runs/26042680612"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.4.2",
      "date": "2026-06-02T15:44:44.000Z",
      "commit": "1bbc50bde28c0c8fb43e21cb7ef603e33cb62458",
      "fileid": "f1681706d520fe09da6e905d7910ff077dfc299070e40c689cf9f69bd9355218",
      "status": "success",
      "buildurl": "https://github.com/r-universe/dppalomar/actions/runs/26042680612"
    }
  ]
}