Matthias Buehlmaier, Ph.D., FHEA
高德祿, 博士
Associate Professor of Teaching in Finance
Principal Lecturer in Finance
Program Director BBA(IBGM)
Room 736, K.K. Leung Building
HKU Business School
The University of Hong Kong
Pokfulam Road
Hong Kong
Office: +852 3917 4177
Fax: +852 2858 5614
E-mail:
buehl@hku.hk
Software
Matthias Buehlmaier leads a suite of open-source software
projects at the intersection of finance and computer science,
developed together with a group of contributors. Most projects
are built
in Clojure—a modern
functional language on the JVM that brings concurrency,
immutability, and interactive REPL-driven development to
computational finance. Together they fill genuine gaps in the
Clojure ecosystem for finance and data work.
-
Investing Time Machine
(ITM) — What if you could go back in time
and trade? ITM is an interactive
R/Shiny web
application that lets users make buy/sell decisions on
historical data for any stock available on Yahoo Finance and see the consequences
in real time—portfolio value, P&L, risk
statistics, and even market regime estimates via Hidden
Markov Models. Designed as an experiential learning tool for
finance courses, it makes concepts like compounding, timing
risk, and behavioral biases tangible rather than abstract.
-
Clojask
— A parallel dataframe library
for Clojure that handles
datasets larger than RAM—groupby, joins,
aggregations, and more, without leaving the Clojure
ecosystem or reaching for Spark. Think
Pandas/Dask
(Python)
or dplyr/data.table
(R), but with lazy out-of-core processing and benchmarked
speed advantages for finance/quant workflows. Over 120
GitHub stars.
-
Datajure
— A domain-specific language (DSL) for data science in
Clojure. Datajure wraps
tech.ml.dataset, tablecloth, and Clojask behind a
declarative, query-like syntax—making data wrangling
more readable for finance analysts while staying idiomatic
to Clojure.
-
clj-yfinance
— A lightweight, pure Clojure client for the Yahoo
Finance API. Fetch prices, OHLCV history, dividends &
splits, company fundamentals, analyst estimates, and options
chains—all with zero external dependencies and no API
key required. Outputs directly to tech.ml.dataset for
seamless integration with the Clojure data science stack.
Ideal for rapid prototyping of quantitative strategies.
-
Backtesting
— A Clojure
framework for backtesting quantitative trading and investing
strategies against historical market data. REPL- and
notebook-friendly for interactive development—test your
ideas in a functional, composable way before risking real
capital. One of the few backtesting frameworks in the Clojure
ecosystem.
-
Portfolio
Analysis Tool — A web-based portfolio
analytics platform built for the
HKUBS Center for
Investment Management (CIM). Processes trades, computes
returns and holdings history, and visualizes
performance—available as a web app for easy access by
students and practitioners without a Clojure background, with
Clerk and Clay notebooks for deeper analysis.
-
TDLEG
— A collection of undergraduate research projects
co-supervised by Matthias Buehlmaier and Prof. Dr. Gregor
Dorfleitner (University of Regensburg), funded by the
Teaching Development and Language Enhancement Grant (TDLEG)
2019–22. These projects gave students hands-on
experience building real financial software and produced
several of the libraries listed here.
-
Clojure
in Finance — All of the above and
more—including
clojure-heap
(a pure Clojure priority queue for order books and
scheduling),
clojask-io
(multi-format file I/O for Clojask),
and WeJure
(a decentralized social network research
prototype)—are publicly available as open source on
GitHub under
the Clojure in
Finance umbrella.
© Copyright 2005–2024 by Matthias Buehlmaier |
All rights reserved worldwide |
Disclaimer |
Last update: September 2025
Public Key