Metadata-Version: 2.1
Name: lucit-backtesting
Version: 1.0.0
Summary: Backtest trading strategies in Python
Home-page: https://github.com/LUCIT-Systems-and-Development/lucit-backtesting
Author: LUCIT Systems and Development
License: AGPL-3.0
Project-URL: Documentation, https://lucit-backtesting.docs.lucit.tech
Project-URL: Source, https://github.com/LUCIT-Systems-and-Development/lucit-backtesting
Project-URL: Wiki, https://github.com/LUCIT-Systems-and-Development/lucit-backtesting/wiki
Project-URL: Author, https://www.lucit.tech
Project-URL: Changes, https://lucit-backtesting.docs.lucit.tech/changelog.html
Project-URL: License, https://lucit-backtesting.docs.lucit.tech/license.html
Project-URL: Issue Tracker, https://github.com/LUCIT-Systems-and-Development/lucit-backtesting/issues
Project-URL: Telegram, https://t.me/unicorndevs
Project-URL: Get Support, https://www.lucit.tech/get-support.html
Keywords: algo,algorithmic,ashi,backtest,backtesting,bitcoin,bokeh,bonds,candle,candlestick,cboe,chart,cme,commodities,crash,crypto,currency,doji,drawdown,equity,etf,ethereum,exchange,finance,financial,forecast,forex,fund,futures,fx,fxpro,gold,heiken,historical,indicator,invest,investing,investment,macd,market,mechanical,money,oanda,ohlc,ohlcv,order,price,profit,quant,quantitative,rsi,silver,simulation,stocks,strategy,ticker,trader,trading,tradingview,usd
Classifier: Intended Audience :: Financial and Insurance Industry
Classifier: Intended Audience :: Science/Research
Classifier: Framework :: Jupyter
Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Office/Business :: Financial :: Investment
Classifier: Topic :: Scientific/Engineering :: Visualization
Requires-Python: >=3.6
Description-Content-Type: text/markdown
Provides-Extra: doc
Provides-Extra: test
Provides-Extra: dev
License-File: LICENSE.md

[![](https://raw.githubusercontent.com/LUCIT-Systems-and-Development/lucit-backtesting/master/images/logo/lucit-backtesting.png)](https://github.com/LUCIT-Systems-and-Development/lucit-backtesting/)

lucit-backtesting - 'backtesting.py' maintained by LUCIT
========================================================

[![GitHub Release](https://img.shields.io/github/release/LUCIT-Systems-and-Development/lucit-backtesting.svg?label=github)](https://github.com/LUCIT-Systems-and-Development/lucit-backtesting/releases)
[![PyPi Release](https://img.shields.io/pypi/v/lucit-backtesting?color=blue)](https://pypi.org/project/lucit-backtesting/)
[![Supported Python Version](https://img.shields.io/pypi/pyversions/lucit_backtesting.svg)](https://www.python.org/downloads/)
[![License](https://img.shields.io/badge/license-LSOSL-blue)](https://lucit-backtesting.docs.lucit.tech/license.html)
[![PyPi Downloads](https://pepy.tech/badge/lucit-backtesting)](https://pepy.tech/project/lucit-backtesting)
[![PyPi Downloads](https://pepy.tech/badge/lucit-backtesting/month)](https://pepy.tech/project/lucit-backtesting)
[![PyPi Downloads](https://pepy.tech/badge/lucit-backtesting/week)](https://pepy.tech/project/lucit-backtesting)
[![PyPI - Status](https://img.shields.io/pypi/status/unicorn_binance_local_depth_cache.svg)](https://github.com/LUCIT-Systems-and-Development/lucit-backtesting/issues)
[![CodeQL](https://github.com/LUCIT-Systems-and-Development/lucit-backtesting/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/LUCIT-Systems-and-Development/lucit-backtesting/actions/workflows/codeql-analysis.yml)
[![Read the Docs](https://img.shields.io/badge/read-%20docs-yellow)](https://lucit-backtesting.docs.lucit.tech/)
[![Github](https://img.shields.io/badge/source-github-cbc2c8)](https://github.com/LUCIT-Systems-and-Development/lucit-backtesting)
[![Telegram](https://img.shields.io/badge/community-telegram-41ab8c)](https://t.me/unicorndevs)
[![Get Free Professional Support](https://img.shields.io/badge/chat-lucit%20support-004166)](https://www.lucit.tech/get-support.html)
[![GitHub Sponsors](https://img.shields.io/github/sponsors/kernc?color=pink)](https://github.com/sponsors/kernc)

Backtest trading strategies with Python.

Kudos to ***Zach Lûster*** for the original project [`kernc/backtesting.py`](https://github.com/kernc/backtesting.py) 
which he built and maintained for 5 years. 

We at [LUCIT](https://www.lucit.tech) like to use `backtesting.py` with our customers in smaller projects. 
Unfortunately the project is missing important updates, and therefore we decided to fork the project and release new 
stable versions. 

We are happy to maintain [our forked repository](https://github.com/LUCIT-Systems-and-Development/lucit-backtesting) 
and take care of code reviews, pull requests and releases and hope for good support from the community!

Installation
------------
You can have either `backtesting.py` or `lucit-backtesting` installed, but not both!

    $ pip uninstall backtesting
    $ pip install lucit-backtesting


Usage
-----
```
from backtesting import Backtest, Strategy
from backtesting.lib import crossover

from backtesting.test import SMA, GOOG


class SmaCross(Strategy):
    def init(self):
        price = self.data.Close
        self.ma1 = self.I(SMA, price, 10)
        self.ma2 = self.I(SMA, price, 20)

    def next(self):
        if crossover(self.ma1, self.ma2):
            self.buy()
        elif crossover(self.ma2, self.ma1):
            self.sell()


bt = Backtest(GOOG, SmaCross, commission=.002,
              exclusive_orders=True)
stats = bt.run()
bt.plot()
```

Results in:

[![Backtesting HTML result](https://raw.githubusercontent.com/LUCIT-Systems-and-Development/lucit-backtesting/master/images/screenshot_html_result.png)](https://github.com/LUCIT-Systems-and-Development/lucit-backtesting)


```
Start                     2004-08-19 00:00:00
End                       2013-03-01 00:00:00
Duration                   3116 days 00:00:00
Exposure Time [%]                       94.27
Equity Final [$]                     68935.12
Equity Peak [$]                      68991.22
Return [%]                             589.35
Buy & Hold Return [%]                  703.46
Return (Ann.) [%]                       25.42
Volatility (Ann.) [%]                   38.43
Sharpe Ratio                             0.66
Sortino Ratio                            1.30
Calmar Ratio                             0.77
Max. Drawdown [%]                      -33.08
Avg. Drawdown [%]                       -5.58
Max. Drawdown Duration      688 days 00:00:00
Avg. Drawdown Duration       41 days 00:00:00
# Trades                                   93
Win Rate [%]                            53.76
Best Trade [%]                          57.12
Worst Trade [%]                        -16.63
Avg. Trade [%]                           1.96
Max. Trade Duration         121 days 00:00:00
Avg. Trade Duration          32 days 00:00:00
Profit Factor                            2.13
Expectancy [%]                           6.91
SQN                                      1.78
Kelly Criterion                        0.6134
_strategy              SmaCross(n1=10, n2=20)
_equity_curve                          Equ...
_trades                       Size  EntryB...
dtype: object
```

Features
--------
* Simple, well-documented API
* Blazing fast execution
* Built-in optimizer
* Library of composable base strategies and utilities
* Indicator-library-agnostic
* Supports _any_ financial instrument with candlestick data
* Detailed results
* Interactive visualizations

![xkcd.com/1570](https://imgs.xkcd.com/comics/engineer_syllogism.png)


Bugs
----
Before [reporting bugs](https://github.com/LUCIT-Systems-and-Development/lucit-backtesting/issues) or posting to the
[discussion board](https://github.com/LUCIT-Systems-and-Development/lucit-backtesting/discussions),
please read [contributing guidelines](https://lucit-backtesting.docs.lucit.tech/contributing.html), 
particularly the section about crafting useful bug reports and ```` ``` ````-fencing your code. We thank you!

