git: 808d0facae47 - main - finance/py-bt: New port: Flexible backtesting framework to test quantitative trading strategies

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Tue, 27 Dec 2022 02:38:47 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=808d0facae4791f940f479a6bbb86f1df3a41d3d

commit 808d0facae4791f940f479a6bbb86f1df3a41d3d
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2022-12-27 02:38:16 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2022-12-27 02:38:42 +0000

    finance/py-bt: New port: Flexible backtesting framework to test quantitative trading strategies
---
 finance/Makefile        |  1 +
 finance/py-bt/Makefile  | 30 ++++++++++++++++++++++++++++++
 finance/py-bt/distinfo  |  3 +++
 finance/py-bt/pkg-descr | 15 +++++++++++++++
 4 files changed, 49 insertions(+)

diff --git a/finance/Makefile b/finance/Makefile
index ab2d5907e13a..d25938f7d402 100644
--- a/finance/Makefile
+++ b/finance/Makefile
@@ -100,6 +100,7 @@
     SUBDIR += py-alpha-vantage
     SUBDIR += py-backtrader
     SUBDIR += py-bitcoin
+    SUBDIR += py-bt
     SUBDIR += py-ebaysdk
     SUBDIR += py-exchange-calendars
     SUBDIR += py-ffn
diff --git a/finance/py-bt/Makefile b/finance/py-bt/Makefile
new file mode 100644
index 000000000000..3f2fdce425e5
--- /dev/null
+++ b/finance/py-bt/Makefile
@@ -0,0 +1,30 @@
+PORTNAME=	bt
+DISTVERSIONPREFIX=	v
+DISTVERSION=	0.2.9
+CATEGORIES=	finance python
+#MASTER_SITES=	CHEESESHOP # no tests
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+DISTNAME=	${PORTNAME:S/-/_/}-${PORTVERSION}
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Flexible backtesting framework to test quantitative trading strategies
+WWW=		http://pmorissette.github.io/bt/
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/LICENSE.txt
+
+PY_DEPENDS=	${PYTHON_PKGNAMEPREFIX}ffn>=0.3.5:finance/py-ffn@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pyprind>=2.11:misc/py-pyprind@${PY_FLAVOR}
+BUILD_DEPENDS=	${PY_DEPENDS}
+RUN_DEPENDS=	${PY_DEPENDS}
+
+USES=		python:3.8+
+USE_PYTHON=	distutils autoplist pytest # tests require nose which is currently broken
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	pmorissette
+
+post-install:
+	@${STRIP_CMD} ${STAGEDIR}${PYTHON_SITELIBDIR}/bt/core${PYTHON_EXT_SUFFIX}.so
+
+.include <bsd.port.mk>
diff --git a/finance/py-bt/distinfo b/finance/py-bt/distinfo
new file mode 100644
index 000000000000..59a697c538fc
--- /dev/null
+++ b/finance/py-bt/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1672107963
+SHA256 (pmorissette-bt-v0.2.9_GH0.tar.gz) = 2c1fedd577b56d4a5b816c9c42b1c58cc6d96e750560b90c3f2bdf71cca601b9
+SIZE (pmorissette-bt-v0.2.9_GH0.tar.gz) = 3664420
diff --git a/finance/py-bt/pkg-descr b/finance/py-bt/pkg-descr
new file mode 100644
index 000000000000..8da09529a2f8
--- /dev/null
+++ b/finance/py-bt/pkg-descr
@@ -0,0 +1,15 @@
+bt is a flexible backtesting framework for Python used to test quantitative
+trading strategies. Backtesting is the process of testing a strategy over a
+given data set. This framework allows you to easily create strategies that mix
+and match different Algos. It aims to foster the creation of easily testable,
+re-usable and flexible blocks of strategy logic to facilitate the rapid
+development of complex trading strategies.
+
+The goal: to save quants from re-inventing the wheel and let them focus on the
+important part of the job - strategy development.
+
+bt is coded in Python and joins a vibrant and rich ecosystem for data analysis.
+Numerous libraries exist for machine learning, signal processing and statistics
+and can be leveraged to avoid re-inventing the wheel - something that happens
+all too often when using other languages that don't have the same wealth of
+high-quality, open-source projects.