{"id":38960580,"url":"https://github.com/quick-trade/quick_trade","last_synced_at":"2026-01-17T16:24:23.181Z","repository":{"id":37088586,"uuid":"483969329","full_name":"quick-trade/quick_trade","owner":"quick-trade","description":"Convenient library for trading with python.","archived":false,"fork":false,"pushed_at":"2024-12-06T00:48:07.000Z","size":453879,"stargazers_count":17,"open_issues_count":6,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-12-06T01:28:09.458Z","etag":null,"topics":["algorithmic-trading","algotrading","binance","ccxt","cryptocurrency","exchange","python","python3","trading","trading-algorithms","trading-bot","trading-strategies"],"latest_commit_sha":null,"homepage":"https://quick-trade.github.io/quick_trade/#/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/quick-trade.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-04-21T08:30:00.000Z","updated_at":"2024-12-06T00:48:11.000Z","dependencies_parsed_at":"2023-02-19T17:00:55.956Z","dependency_job_id":"c6ad7504-b975-4907-89ff-010ff2dd3d20","html_url":"https://github.com/quick-trade/quick_trade","commit_stats":{"total_commits":1110,"total_committers":7,"mean_commits":"158.57142857142858","dds":"0.38648648648648654","last_synced_commit":"58e8fa19a95c359ca1fd4010054468ac65455375"},"previous_names":[],"tags_count":101,"template":false,"template_full_name":null,"purl":"pkg:github/quick-trade/quick_trade","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quick-trade%2Fquick_trade","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quick-trade%2Fquick_trade/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quick-trade%2Fquick_trade/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quick-trade%2Fquick_trade/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/quick-trade","download_url":"https://codeload.github.com/quick-trade/quick_trade/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quick-trade%2Fquick_trade/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28511858,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T13:38:16.342Z","status":"ssl_error","status_checked_at":"2026-01-17T13:37:44.060Z","response_time":85,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["algorithmic-trading","algotrading","binance","ccxt","cryptocurrency","exchange","python","python3","trading","trading-algorithms","trading-bot","trading-strategies"],"created_at":"2026-01-17T16:24:23.104Z","updated_at":"2026-01-17T16:24:23.175Z","avatar_url":"https://github.com/quick-trade.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# quick_trade\n[![stand-with-Ukraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner2-direct.svg)](https://vshymanskyy.github.io/StandWithUkraine)\n[![Downloads](https://static.pepy.tech/personalized-badge/quick-trade?period=total\u0026units=none\u0026left_color=grey\u0026right_color=brightgreen\u0026left_text=PyPi%20downloads)](https://pepy.tech/project/quick-trade)\n[![Downloads](https://static.pepy.tech/personalized-badge/quick-trade?period=month\u0026units=none\u0026left_color=grey\u0026right_color=brightgreen\u0026left_text=PyPi%20downloads%20(month))](https://pepy.tech/project/quick-trade)\n\n![image](https://github.com/quick-trade/quick_trade/blob/main/img/logo_with_slogan.PNG?raw=true)\n\n\n```\nDependencies:\n ├──ta (Bukosabino   https://github.com/bukosabino/ta (by Darío López Padial))\n ├──plotly (https://github.com/plotly/plotly.py)\n ├──pandas (https://github.com/pandas-dev/pandas)\n ├──numpy (https://github.com/numpy/numpy)\n ├──tqdm (https://github.com/tqdm/tqdm)\n ├──scikit-learn (https://github.com/scikit-learn/scikit-learn)\n └──ccxt (https://github.com/ccxt/ccxt)\n```\n* **Documentation:** 🚧 https://quick-trade.github.io/quick_trade/#/ 🚧\n* **Twitter:** [@quick_trade_tw](https://twitter.com/quick_trade_tw)\n* **Discord**: [quick_trade](https://discord.gg/SkRg9mzuB5)\n\n## Installation:\n\nQuick install:\n\n```commandline\n$ pip3 install quick-trade\n```\n\nFor development:\n\n```commandline\n$ git clone https://github.com/quick-trade/quick_trade.git\n$ pip3 install -r quick_trade/requirements.txt\n$ cd quick_trade\n$ python3 setup.py install\n$ cd ..\n```\n\n## Customize your strategy!\n\n```python\nfrom quick_trade.plots import TraderGraph, make_trader_figure\nimport ccxt\nfrom quick_trade import strategy, TradingClient, Trader\nfrom quick_trade.utils import TradeSide\n\n\nclass MyTrader(qtr.Trader):\n    @strategy\n    def strategy_sell_and_hold(self):\n        ret = []\n        for i in self.df['Close'].values:\n            ret.append(TradeSide.SELL)\n        self.returns = ret\n        self.set_credit_leverages(2)  # if you want to use a leverage\n        self.set_open_stop_and_take(stop)\n        # or... set a stop loss with only one line of code\n        return ret\n\n\nclient = TradingClient(ccxt.binance())\ndf = client.get_data_historical(\"BTC/USDT\")\ntrader = MyTrader(\"BTC/USDT\", df=df)\ntrader.connect_graph(TraderGraph(make_trader_figure()))\ntrader.set_client(client)\ntrader.strategy_sell_and_hold()\ntrader.backtest()\n```\n\n## Find the best strategy!\n\n```python\nimport quick_trade as qtr\nimport ccxt\nfrom quick_trade.tuner import *\nfrom quick_trade import TradingClient\n\n\nclass Test(qtr.ExampleStrategies):\n    @strategy\n    def strategy_supertrend1(self, plot: bool = False, *st_args, **st_kwargs):\n        self.strategy_supertrend(plot=plot, *st_args, **st_kwargs)\n        self.convert_signal()  # only long trades\n        return self.returns\n\n    @strategy\n    def macd(self, histogram=False, **kwargs):\n        if not histogram:\n            self.strategy_macd(**kwargs)\n        else:\n            self.strategy_macd_histogram_diff(**kwargs)\n        self.convert_signal()\n        return self.returns\n\n    @strategy\n    def psar(self, **kwargs):\n        self.strategy_parabolic_SAR(plot=False, **kwargs)\n        self.convert_signal()\n        return self.returns\n\n\nparams = {\n    'strategy_supertrend1':\n        [\n            {\n                'multiplier': Linspace(0.5, 22, 5)\n            }\n        ],\n    'macd':\n        [\n            {\n                'slow': Linspace(10, 100, 3),\n                'fast': Linspace(3, 60, 3),\n                'histogram': Choise([False, True])\n            }\n        ],\n    'psar':\n        [\n            {\n                'step': 0.01,\n                'max_step': 0.1\n            },\n            {\n                'step': 0.02,\n                'max_step': 0.2\n            }\n        ]\n\n}\n\ntuner = QuickTradeTuner(\n    TradingClient(ccxt.binance()),\n    ['BTC/USDT', 'OMG/USDT', 'XRP/USDT'],\n    ['15m', '5m'],\n    [1000, 700, 800, 500],\n    params\n)\n\ntuner.tune(Test)\nprint(tuner.sort_tunes())\ntuner.save_tunes('quick-trade-tunes.json')  # save tunes as JSON\n\n```\n\nYou can also set rules for arranging arguments for each strategy by using `_RULES_` and `kwargs` to access the values of the arguments:\n\n```python\nparams = {\n    'strategy_3_sma':\n        [\n            dict(\n                plot=False,\n                slow=Choise([2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597]),\n                fast=Choise([2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597]),\n                mid=Choise([2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597]),\n                _RULES_='kwargs[\"slow\"] \u003e kwargs[\"mid\"] \u003e kwargs[\"fast\"]'\n            )\n        ],\n}\n```\n\n## User's code example (backtest)\n\n```python\nfrom quick_trade import brokers\nfrom quick_trade import trading_sys as qtr\nfrom quick_trade.plots import *\nimport ccxt\nfrom numpy import inf\n\n\nclient = brokers.TradingClient(ccxt.binance())\ndf = client.get_data_historical('BTC/USDT', '15m', 1000)\ntrader = qtr.ExampleStrategies('BTC/USDT', df=df, interval='15m')\ntrader.set_client(client)\ntrader.connect_graph(TraderGraph(make_trader_figure(height=731, width=1440, row_heights=[10, 5, 2])))\ntrader.strategy_2_sma(55, 21)\ntrader.backtest(deposit=1000, commission=0.075, bet=inf)  # backtest on one pair\n```\n\n## Output plotly chart:\n\n![image](https://raw.githubusercontent.com/quick-trade/quick_trade/main/img/plot.png)\n\n## Output print\n\n```commandline\nlosses: 12\ntrades: 20\nprofits: 8\nmean year percentage profit: 215.1878652911773%\nwinrate: 40.0%\nmean deviation: 2.917382949881604%\nSharpe ratio: 0.02203412259055281\nSortino ratio: 0.02774402450236864\ncalmar ratio: 21.321078596349782\nmax drawdown: 10.092728860725552%\n```\n\n## Run strategy\n\nUse the strategy on real moneys. YES, IT'S FULLY AUTOMATED!\n\n```python\nimport datetime\nfrom quick_trade.trading_sys import ExampleStrategies\nfrom quick_trade.brokers import TradingClient\nfrom quick_trade.plots import TraderGraph, make_figure\nimport ccxt\n\nticker = 'MATIC/USDT'\n\nstart_time = datetime.datetime(2021,  # year\n                               6,  # month\n                               24,  # day\n\n                               5,  # hour\n                               16,  # minute\n                               57)  # second (Leave a few seconds to download data from the exchange)\n\n\nclass MyTrade(ExampleStrategies):\n    @strategy\n    def strategy(self):\n        self.strategy_supertrend(multiplier=2, length=1, plot=False)\n        self.convert_signal()\n        self.set_credit_leverages(1)\n        self.sl_tp_adder(10)\n        return self.returns\n\n\nkeys = {'apiKey': 'your api key',\n        'secret': 'your secret key'}\nclient = TradingClient(ccxt.binance(config=keys))  # or any other exchange\n\ntrader = MyTrade(ticker=ticker,\n                 interval='1m',\n                 df=client.get_data_historical(ticker, limit=10))\nfig = make_trader_figure()\ngraph = TraderGraph(figure=fig)\ntrader.connect_graph(graph)\ntrader.set_client(client)\n\ntrader.realtime_trading(\n    strategy=trader.strategy,\n    start_time=start_time,\n    ticker=ticker,\n    limit=100,\n    wait_sl_tp_checking=5\n)\n\n```\n\n![image](https://github.com/quick-trade/quick_trade/blob/main/img/realtime_example.png?raw=true)\n\n## Additional Resources\n\nOld documentation (V3 doc): https://vladkochetov007.github.io/quick_trade.github.io\n\n# License\n\n\u003ca rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc-sa/4.0/\"\u003e\u003cimg alt=\"Creative Commons License\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png\" /\u003e\u003c/a\u003e\u003cbr /\u003e\u003cspan xmlns:dct=\"http://purl.org/dc/terms/\" property=\"dct:title\"\u003equick_trade\u003c/span\u003e by \u003ca xmlns:cc=\"http://creativecommons.org/ns#\" href=\"https://github.com/VladKochetov007\" property=\"cc:attributionName\" rel=\"cc:attributionURL\"\u003eVladyslav Kochetov\u003c/a\u003e is licensed under a \u003ca rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc-sa/4.0/\"\u003eCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International License\u003c/a\u003e.\u003cbr /\u003ePermissions beyond the scope of this license may be available at \u003ca xmlns:cc=\"http://creativecommons.org/ns#\" href=\"vladyslavdrrragonkoch@gmail.com\" rel=\"cc:morePermissions\"\u003evladyslavdrrragonkoch@gmail.com\u003c/a\u003e.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquick-trade%2Fquick_trade","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fquick-trade%2Fquick_trade","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquick-trade%2Fquick_trade/lists"}