{ "info": { "author": "Philippe Morissette", "author_email": "morissette.philippe@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Programming Language :: Python", "Topic :: Software Development :: Libraries" ], "description": ".. image:: http://pmorissette.github.io/bt/_static/logo.png\n\n.. image:: https://travis-ci.org/pmorissette/bt.svg?branch=master\n :target: https://travis-ci.org/pmorissette/bt\n\n.. image:: https://codecov.io/gh/pmorissette/bt/branch/master/graph/badge.svg\n :target: https://codecov.io/pmorissette/bt\n\nbt - Flexible Backtesting for Python \n====================================\n\nbt is currently in alpha stage - if you find a bug, please submit an issue.\n\nRead the docs here: http://pmorissette.github.io/bt.\n\nWhat is bt?\n-----------\n\n**bt** is a flexible backtesting framework for Python used to test quantitative\ntrading strategies. **Backtesting** is the process of testing a strategy over a given \ndata set. This framework allows you to easily create strategies that mix and match \ndifferent `Algos `_. It aims to foster the creation of easily testable, re-usable and \nflexible blocks of strategy logic to facilitate the rapid development of complex \ntrading strategies. \n\nThe goal: to save **quants** from re-inventing the wheel and let them focus on the \nimportant part of the job - strategy development.\n\n**bt** is coded in **Python** and joins a vibrant and rich ecosystem for data analysis. \nNumerous libraries exist for machine learning, signal processing and statistics and can be leveraged to avoid\nre-inventing the wheel - something that happens all too often when using other\nlanguages that don't have the same wealth of high-quality, open-source projects.\n\nbt is built atop `ffn `_ - a financial function library for Python. Check it out!\n\nFeatures\n---------\n\n* **Tree Structure**\n `The tree structure `_ facilitates the construction and composition of complex algorithmic trading \n strategies that are modular and re-usable. Furthermore, each tree `Node\n `_\n has its own price index that can be\n used by Algos to determine a Node's allocation. \n\n* **Algorithm Stacks**\n `Algos `_ and `AlgoStacks `_ are\n another core feature that facilitate the creation of modular and re-usable strategy\n logic. Due to their modularity, these logic blocks are also easier to test -\n an important step in building robust financial solutions.\n\n* **Charting and Reporting**\n bt also provides many useful charting functions that help visualize backtest\n results. We also plan to add more charts, tables and report formats in the future, \n such as automatically generated PDF reports.\n\n* **Detailed Statistics**\n Furthermore, bt calculates a bunch of stats relating to a backtest and offers a quick way to compare\n these various statistics across many different backtests via `Results'\n `_ display methods.\n\n\nRoadmap\n--------\n\nFuture development efforts will focus on:\n\n* **Speed**\n Due to the flexible nature of bt, a trade-off had to be made between\n usability and performance. Usability will always be the priority, but we do\n wish to enhance the performance as much as possible.\n\n* **Algos**\n We will also be developing more algorithms as time goes on. We also\n encourage anyone to contribute their own algos as well.\n\n* **Charting and Reporting**\n This is another area we wish to constantly improve on\n as reporting is an important aspect of the job. Charting and reporting also\n facilitate finding bugs in strategy logic.\n\nInstalling bt\n-------------\n\nThe easiest way to install ``bt`` is from the `Python Package Index `_\nusing ``pip`` or ``easy_insatll``:\n\n.. code-block:: bash\n\n $ pip install bt \n\nSince bt has many dependencies, we strongly recommend installing the `Anaconda Scientific Python\nDistribution `_, especially on Windows. This distribution \ncomes with many of the required packages pre-installed, including pip. Once Anaconda is installed, the above \ncommand should complete the installation. \n\nbt should be compatible with Python 2.7 and Python 3 thanks to the contributions\nmade by fellow users.\n\nRecommended Setup\n-----------------\n\nWe believe the best environment to develop with bt is the `IPython Notebook\n`__. From their homepage, the IPython Notebook\nis:\n\n \"[...] a web-based interactive computational environment\n where you can combine code execution, text, mathematics, plots and rich\n media into a single document [...]\"\n\nThis environment allows you to plot your charts in-line and also allows you to\neasily add surrounding text with Markdown. You can easily create Notebooks that\nyou can share with colleagues and you can also save them as PDFs. If you are not\nyet convinced, head over to their website.\n\nSpecial Thanks\n--------------\n\nA special thanks to the following contributors for their involvement with the project:\n\n* Vladimir Filimonov `@vfilimonov `_ \n* Jordan Platts `@JordanPlatts `_ \n\n\nLicense\n-------\n\nMIT", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/pmorissette/bt", "keywords": "python finance quant backtesting strategies", "license": "", "maintainer": "", "maintainer_email": "", "name": "bt", "package_url": "https://pypi.org/project/bt/", "platform": "", "project_url": "https://pypi.org/project/bt/", "project_urls": { "Homepage": "https://github.com/pmorissette/bt" }, "release_url": "https://pypi.org/project/bt/0.2.7/", "requires_dist": null, "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "summary": "A flexible backtesting framework for Python", "version": "0.2.7" }, "last_serial": 3906343, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "9744d7be821e5308d090aba1235e1883", "sha256": "064bde774aab7a727bae7346e42fa90cbe482a03d97bc83dd866b958a53f1fb1" }, "downloads": -1, "filename": "bt-0.1.1.tar.gz", "has_sig": false, "md5_digest": "9744d7be821e5308d090aba1235e1883", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 92084, "upload_time": "2014-06-26T14:09:20", "url": "https://files.pythonhosted.org/packages/ee/14/40df7368a35ec2ae0386b9ca77a0089001829a0210468cfd4997cd712e33/bt-0.1.1.tar.gz" } ], "0.1.10": [ { "comment_text": "", "digests": { "md5": "de3c11f4e477ac50d67c6dc435a278ec", "sha256": "eaf8910a3284f2e2a44d6e4f1ae384e2caed7f0ba5620c0015bd6c0bee6dfedf" }, "downloads": -1, "filename": "bt-0.1.10.tar.gz", "has_sig": false, "md5_digest": "de3c11f4e477ac50d67c6dc435a278ec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2574107, "upload_time": "2015-07-27T21:04:35", "url": "https://files.pythonhosted.org/packages/3e/05/bfbf2b86bca87c9a6a79075c3e9dabed87e95c1900f049247bb9356435dc/bt-0.1.10.tar.gz" } ], "0.1.11": [ { "comment_text": "", "digests": { "md5": "878d4a3fba1147866536b40e39cdd932", "sha256": "21eea38f32003928b76e76532abf62cf114f81867d295070b94eaf3ff92a1141" }, "downloads": -1, "filename": "bt-0.1.11.tar.gz", "has_sig": false, "md5_digest": "878d4a3fba1147866536b40e39cdd932", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2484308, "upload_time": "2015-10-27T01:59:51", "url": "https://files.pythonhosted.org/packages/96/a3/f2731cbcc962d7ed05b3a2477e6acfd51e5696b65d5f71fbef776cd1f8ff/bt-0.1.11.tar.gz" } ], "0.1.12": [ { "comment_text": "", "digests": { "md5": "fef1d558a96882f22bff4b705f603b46", "sha256": "a996319cd44e338088138cac4929689d198db75306eba2beb2ce8e9a68161b51" }, "downloads": -1, "filename": "bt-0.1.12.tar.gz", "has_sig": false, "md5_digest": "fef1d558a96882f22bff4b705f603b46", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2484258, "upload_time": "2015-10-27T02:40:24", "url": "https://files.pythonhosted.org/packages/8a/5e/555cac8210be629ad9df0445c1c5e5717c4fbab8690577f777226c7e80ae/bt-0.1.12.tar.gz" } ], "0.1.13": [ { "comment_text": "", "digests": { "md5": "8e39eb6a440961dfd6d0567a7fb51730", "sha256": "754f43658df78cc9c2e98f212df2bbcd9afa75b3f9e7c43b194c5689f8637d56" }, "downloads": -1, "filename": "bt-0.1.13.tar.gz", "has_sig": false, "md5_digest": "8e39eb6a440961dfd6d0567a7fb51730", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2571213, "upload_time": "2015-11-24T13:27:54", "url": "https://files.pythonhosted.org/packages/11/fc/8ed9e0f4b0f75e4c99af222a2b627ae78abe6eff549f416855c2e674b10c/bt-0.1.13.tar.gz" } ], "0.1.14": [ { "comment_text": "", "digests": { "md5": "6820fd25710ef4c7e7b736923aaef70a", "sha256": "84b51d22492203882ecc2119cb146fef35df190074a14e70c7e78c4fea72db25" }, "downloads": -1, "filename": "bt-0.1.14.tar.gz", "has_sig": false, "md5_digest": "6820fd25710ef4c7e7b736923aaef70a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2484295, "upload_time": "2016-07-13T21:24:23", "url": "https://files.pythonhosted.org/packages/85/03/4a75863d57b38203ca9db23d49a4290e16239c246f6457a0c63e1522fd10/bt-0.1.14.tar.gz" } ], "0.1.15": [ { "comment_text": "", "digests": { "md5": "04133ce78c0123972899f3a1d00cb42f", "sha256": "f1d11ec472c4719f63d10e8e5a82a36d059f61f637aade84210f90a019428415" }, "downloads": -1, "filename": "bt-0.1.15.tar.gz", "has_sig": false, "md5_digest": "04133ce78c0123972899f3a1d00cb42f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2485220, "upload_time": "2017-02-08T23:12:57", "url": "https://files.pythonhosted.org/packages/5d/79/6104d070773cdded6975335c558655e25421ddefa7f9f2a53b864d213d29/bt-0.1.15.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "d41057377ee9fa300490b08d19eed4a1", "sha256": "bb6a96d5b6c1a0c284e743232c43358987b8625a234c646e2f1955e9c110f4d0" }, "downloads": -1, "filename": "bt-0.1.2.tar.gz", "has_sig": false, "md5_digest": "d41057377ee9fa300490b08d19eed4a1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 92576, "upload_time": "2014-06-26T15:49:02", "url": "https://files.pythonhosted.org/packages/6c/84/5ab9ecf902d0ffa122a931dee6f0ddaf200d46fe9320c37c12396af42bf7/bt-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "09d9374b4990bed377e1555413fe03e7", "sha256": "3da76b660bbff953867f26c3fb5dfd7679a1203f541e5dbf0f9ebdfd3dc6d12e" }, "downloads": -1, "filename": "bt-0.1.3.tar.gz", "has_sig": false, "md5_digest": "09d9374b4990bed377e1555413fe03e7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3077138, "upload_time": "2014-07-18T19:20:23", "url": "https://files.pythonhosted.org/packages/9d/38/7eef28a6ed1d308bd85d26ba21d6a6db5a36827871692a47437cc7f57a0c/bt-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "5653b2f47f486684bebe85e86e8ad86d", "sha256": "cd8ade2070d0d88232c664f7f6fc39a9b5b6158ae67367cb3c47e85e55372a9f" }, "downloads": -1, "filename": "bt-0.1.4.tar.gz", "has_sig": false, "md5_digest": "5653b2f47f486684bebe85e86e8ad86d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3077125, "upload_time": "2014-11-25T03:14:43", "url": "https://files.pythonhosted.org/packages/94/05/1b11aaa7f8e00a1ccfde37db6601e756fb13277d2d5b9b5e527a2b32a032/bt-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "da7e2964b8626e1de29b5539b9375d6b", "sha256": "c187e9e43377df1f2999fc5dc8e741917679662198afa5fd928322a378d1faa2" }, "downloads": -1, "filename": "bt-0.1.5.tar.gz", "has_sig": false, "md5_digest": "da7e2964b8626e1de29b5539b9375d6b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2566460, "upload_time": "2015-03-12T21:02:25", "url": "https://files.pythonhosted.org/packages/c9/c5/8d40be3e395b12ea99d9d08ac5e2244cf32b7ded11be3802ce00f2a2b244/bt-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "b7f86e087536859185fd1b3ce9287454", "sha256": "970c65826a123c3fe90c850d7970cbafbf9e55f79e347ec1d4761dd34b4b6654" }, "downloads": -1, "filename": "bt-0.1.6.tar.gz", "has_sig": false, "md5_digest": "b7f86e087536859185fd1b3ce9287454", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2580230, "upload_time": "2015-03-17T18:09:58", "url": "https://files.pythonhosted.org/packages/95/c3/8cc7926cc9a577ab76a56eb63d424a1cad645ff315c162ff49e21e749333/bt-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "7a2ff8a5097ac670a3a39409998b49af", "sha256": "6f03e4012295965c3b1977d75c82f2de964b317d56959880ab743034087bd078" }, "downloads": -1, "filename": "bt-0.1.7.tar.gz", "has_sig": false, "md5_digest": "7a2ff8a5097ac670a3a39409998b49af", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2567972, "upload_time": "2015-03-20T13:08:20", "url": "https://files.pythonhosted.org/packages/e0/50/403f8f1a9538f3fc1c1352150b8383748d3744501c6c05b1bc36ac2e9b5b/bt-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "7a6172d3cdf4b4819082b83a7bb8bdcf", "sha256": "0e11144a8221038a94a2e6fb6b0c4c7181d2c1895190e018112502c3b47806de" }, "downloads": -1, "filename": "bt-0.1.8.tar.gz", "has_sig": false, "md5_digest": "7a6172d3cdf4b4819082b83a7bb8bdcf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2568937, "upload_time": "2015-03-24T21:51:37", "url": "https://files.pythonhosted.org/packages/70/7c/4af34641667050223d9be49b89b9b574a1c84f77faf386569bcef5846777/bt-0.1.8.tar.gz" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "8109da8fc5474f29c52dc07f2cddd38e", "sha256": "de022d0b5b5cbe6454e9dc10703be5dcf9c7de0d639dae0cb9e077ac3e48fc34" }, "downloads": -1, "filename": "bt-0.1.9.tar.gz", "has_sig": false, "md5_digest": "8109da8fc5474f29c52dc07f2cddd38e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2570946, "upload_time": "2015-04-10T19:07:11", "url": "https://files.pythonhosted.org/packages/3f/ee/fcee8f259be7349d8834b81f9abaeb1ce7dd1c9cc7627ca1709466aebb75/bt-0.1.9.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "46f843dc844eb0623db70d7bd35917e7", "sha256": "83551026a108de68d6e482c0bbd6e7850c5af7356c5b28d54edc14476dab0931" }, "downloads": -1, "filename": "bt-0.2.0.tar.gz", "has_sig": false, "md5_digest": "46f843dc844eb0623db70d7bd35917e7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2588017, "upload_time": "2017-02-16T22:07:36", "url": "https://files.pythonhosted.org/packages/c9/50/49784a24a56499d45765d56249bbd444ecec6249ebd4c1b45a0fa6f3ad63/bt-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "72b81fe4239f2aafa430f8fd87919bbc", "sha256": "ae1dfbeec9f715811cd97faf8bad626d8cba97633bc8c4b420fe115803fbe7ec" }, "downloads": -1, "filename": "bt-0.2.1.tar.gz", "has_sig": false, "md5_digest": "72b81fe4239f2aafa430f8fd87919bbc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2588007, "upload_time": "2017-02-17T16:58:09", "url": "https://files.pythonhosted.org/packages/ee/a2/37467e58973ab69d6bc2b9ef281b69aeb9cf15922831dcdd44e3be3f5011/bt-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "153828d38a8fab31ef9d06fc7d1d683a", "sha256": "7fdc1652a407227317e253b4c490a2b0fb76e601d5f5a5875c7af67cec3c27d9" }, "downloads": -1, "filename": "bt-0.2.2.tar.gz", "has_sig": false, "md5_digest": "153828d38a8fab31ef9d06fc7d1d683a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2588290, "upload_time": "2017-02-23T17:42:32", "url": "https://files.pythonhosted.org/packages/99/e2/eff6ac815aa295443132ddd8e01281a86ceff1d3a8d1ea5aa3bf4ca86f34/bt-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "66de455ca412713a34733091ec1446cd", "sha256": "029e897bdc2d6fa8b2cd8eac12fe25dd72273e6168e3cd7cbb05bc9c409ed8c3" }, "downloads": -1, "filename": "bt-0.2.3.tar.gz", "has_sig": false, "md5_digest": "66de455ca412713a34733091ec1446cd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3263819, "upload_time": "2017-02-23T20:28:12", "url": "https://files.pythonhosted.org/packages/c5/ba/25578a716baa1a38e9afd4adfac824a94ee8af4767c03e0f4601926a1354/bt-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "270d00a2d29bcb03232a83fb62447915", "sha256": "b37e723067334cfd475be7673e5e2783c71f980f6aee22e07d6f17410cf63d0f" }, "downloads": -1, "filename": "bt-0.2.4.tar.gz", "has_sig": false, "md5_digest": "270d00a2d29bcb03232a83fb62447915", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3263809, "upload_time": "2017-03-01T14:27:39", "url": "https://files.pythonhosted.org/packages/ea/14/dc71f6421297da0d3b08a4a03607ae5da103a05e2af987449a338a5d55db/bt-0.2.4.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "4ee3e73a4b54b469148f397e79b1fc15", "sha256": "839127c1b99bea8341c41682eca4f1362259ac25a571e769d55e9cf2898b42d9" }, "downloads": -1, "filename": "bt-0.2.5.tar.gz", "has_sig": false, "md5_digest": "4ee3e73a4b54b469148f397e79b1fc15", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2647255, "upload_time": "2017-04-28T18:58:25", "url": "https://files.pythonhosted.org/packages/17/47/186238405864113bd6a6d4869d4c0ba2a2d631113f9a6af2af7eb7057f54/bt-0.2.5.tar.gz" } ], "0.2.6": [ { "comment_text": "", "digests": { "md5": "addb9b498d0016bd99ef47c26cb166ce", "sha256": "9f7102145542177b1aa17fceae8667a681485c3e5f75d28fcba1d57382a3a72a" }, "downloads": -1, "filename": "bt-0.2.6.tar.gz", "has_sig": false, "md5_digest": "addb9b498d0016bd99ef47c26cb166ce", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "size": 2667862, "upload_time": "2018-05-25T22:28:47", "url": "https://files.pythonhosted.org/packages/ea/02/69a6d672c3c719321b72190d253618fcc1ff9e791195aafb4e56dc9f8b4b/bt-0.2.6.tar.gz" } ], "0.2.7": [ { "comment_text": "", "digests": { "md5": "970d78cf63ccc12d8abe3e8741115357", "sha256": "440070bba00cebc640c675160ab27ef779be9f1c6cf0deccc80eb5d5db87b6e9" }, "downloads": -1, "filename": "bt-0.2.7.tar.gz", "has_sig": false, "md5_digest": "970d78cf63ccc12d8abe3e8741115357", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "size": 2667961, "upload_time": "2018-05-28T17:12:46", "url": "https://files.pythonhosted.org/packages/b8/5d/45a8b24d0cbf19591beb41b7c6d0b500494c13b9e8de0eecc4a4df7446a3/bt-0.2.7.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "970d78cf63ccc12d8abe3e8741115357", "sha256": "440070bba00cebc640c675160ab27ef779be9f1c6cf0deccc80eb5d5db87b6e9" }, "downloads": -1, "filename": "bt-0.2.7.tar.gz", "has_sig": false, "md5_digest": "970d78cf63ccc12d8abe3e8741115357", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "size": 2667961, "upload_time": "2018-05-28T17:12:46", "url": "https://files.pythonhosted.org/packages/b8/5d/45a8b24d0cbf19591beb41b7c6d0b500494c13b9e8de0eecc4a4df7446a3/bt-0.2.7.tar.gz" } ] }