Repository navigation
Model CoinBacktestDemo
All model results · Pinned source · Javadoc
Compares the different asset allocation algorithms.
Using this example. Loads the local crypto-markets CSV ZIP through JesseventCoinDataUtils and compares allocation algorithms. The dataset path is test-data/coin/crypto-markets.csv.zip; its historical coverage and constituent selection constrain the comparison.
Model and publication. Related theory and the scope of this example are distinguished below.
Implementation in this tutorial. Reuses asset-allocation algorithms on a historical crypto dataset; a crypto universe and rebalancing experiment are not a reproduction of Markowitz’s original illustrations. Inspect listing dates, missing observations and constituent selection before interpreting optimizer comparisons.
| Item | Value |
|---|---|
| Status | failed |
| Run | 39114360151 |
| UTC publication | 2026-10-18 09:18 UTC |
| Source commit | 355aa9242fc2a247b256aecc8406cbb409aa5ff3 |
| Data mode | original main defaults |
| Exit code | 1 |
| Elapsed seconds | 0.99 |
| Time limit seconds | 180 |
| Maximum Java heap | 1200m |
The demo raised an exception or did not return normally. This is not a verified numerical result.
Follow the repository setup for JDK 8, Maven credentials and an external NM license. From the repository root:
mvn -U -Dmaven.test.skip=true clean package
mvn exec:java -Dexec.mainClass=tech.nmfin.algoquant.demo.model.portfoliooptimization.coin.CoinBacktestDemoThe automated run uses scripts/ModelDemoRunner.java to initialize the external license before the unchanged main, save JFreeChart windows as PNGs, and exit after main returns. It uses an isolated working directory with the repository datasets/configuration linked in. Running directly may leave desktop windows open.
This is an incomplete or blocked run. Output below is diagnostic or partial, not a verified strategy result.
java.time.format.DateTimeParseException: Text '2013-04-28' could not be parsed: Unable to obtain LocalDateTime from TemporalAccessor: {},ISO resolved to 2013-04-28 of type java.time.format.Parsed
at java.time.format.DateTimeFormatter.createError(DateTimeFormatter.java:1920)
at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1855)
at java.time.LocalDateTime.parse(LocalDateTime.java:492)
at tech.nmfin.algoquant.data.historicaldata.coin.jessevent.JesseventCoinEODMktCacheFactory.s(rhb:47)
at tech.nmfin.algoquant.data.historicaldata.coin.jessevent.JesseventCoinEODMktCacheFactory.<init>(rhb:159)
at tech.nmfin.algoquant.data.historicaldata.coin.jessevent.JesseventCoinDataUtils.s(vhb:128)
at tech.nmfin.algoquant.data.historicaldata.coin.jessevent.JesseventCoinDataUtils.<init>(vhb:62)
at tech.nmfin.algoquant.demo.model.portfoliooptimization.coin.CoinBacktestDemo.main(CoinBacktestDemo.java:91)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at ModelDemoRunner.main(ModelDemoRunner.java:38)
Caused by: java.time.DateTimeException: Unable to obtain LocalDateTime from TemporalAccessor: {},ISO resolved to 2013-04-28 of type java.time.format.Parsed
at java.time.LocalDateTime.from(LocalDateTime.java:461)
at java.time.format.Parsed.query(Parsed.java:226)
at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1851)
... 11 more
Caused by: java.time.DateTimeException: Unable to obtain LocalTime from TemporalAccessor: {},ISO resolved to 2013-04-28 of type java.time.format.Parsed
at java.time.LocalTime.from(LocalTime.java:409)
at java.time.LocalDateTime.from(LocalDateTime.java:457)
... 13 more
DEMO_RUNNER_FAILURE java.time.format.DateTimeParseException
java.time.format.DateTimeParseException: Text '2013-04-28' could not be parsed: Unable to obtain LocalDateTime from TemporalAccessor: {},ISO resolved to 2013-04-28 of type java.time.format.Parsed
at java.time.format.DateTimeFormatter.createError(DateTimeFormatter.java:1920)
Caused by: java.time.DateTimeException: Unable to obtain LocalDateTime from TemporalAccessor: {},ISO resolved to 2013-04-28 of type java.time.format.Parsed
Caused by: java.time.DateTimeException: Unable to obtain LocalTime from TemporalAccessor: {},ISO resolved to 2013-04-28 of type java.time.format.Parsed
Download CoinBacktestDemo.zip contains stdout, stderr, the execution record, checksums and any exported CSV/chart files.
Use the first relevant exception and the source configuration to resolve the prerequisite or code issue, then rerun. A missing dataset requires the correct original schema and period; substituting synthetic values would be a different experiment. A timeout establishes only that this bounded attempt did not finish.
For model assumptions, original publications and adaptation limits, use the literature guide.