All Projects → VladKochetov007 → quick_trade

VladKochetov007 / quick_trade

Licence: other
convenient script for trading with python.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to quick trade

Socktrader
🚀 Websocket based trading bot for 💰cryptocurrencies 📈
Stars: ✭ 152 (+141.27%)
Mutual labels:  trading, trading-bot, trading-platform, trading-strategies, trading-algorithms, cryptocurrencies, algorithmic-trading
Gekko Strategies
Strategies to Gekko trading bot with backtests results and some useful tools.
Stars: ✭ 1,022 (+1522.22%)
Mutual labels:  trading, trading-bot, trading-platform, trading-strategies, trading-algorithms, cryptocurrencies, cryptocurrency-exchanges
AutoTrader
A Python-based development platform for automated trading systems - from backtesting to optimisation to livetrading.
Stars: ✭ 227 (+260.32%)
Mutual labels:  trading, trading-bot, trading-platform, trading-strategies, trading-algorithms, algorithmic-trading
Algotrading
Algorithmic trading framework for cryptocurrencies.
Stars: ✭ 249 (+295.24%)
Mutual labels:  trading, trading-bot, trading-algorithms, cryptocurrencies, algorithmic-trading, cryptocurrency-exchanges
roq-samples
How to use the Roq C++20 API for Live Cryptocurrency Algorithmic and High-Frequency Trading as well as for Back-Testing and Historical Simulation
Stars: ✭ 119 (+88.89%)
Mutual labels:  trading, trading-bot, trading-platform, trading-strategies, trading-algorithms, algorithmic-trading
Quant
Codera Quant is a Java framework for algorithmic trading strategies development, execution and backtesting via Interactive Brokers TWS API or other brokers API
Stars: ✭ 104 (+65.08%)
Mutual labels:  trading, trading-bot, trading-platform, trading-strategies, trading-algorithms, algorithmic-trading
Turingtrader
The Open-Source Backtesting Engine/ Market Simulator by Bertram Solutions.
Stars: ✭ 132 (+109.52%)
Mutual labels:  trading, trading-bot, trading-platform, trading-strategies, trading-algorithms, algorithmic-trading
awesome-pinescript
A Comprehensive Collection of Everything Related to Tradingview Pine Script.
Stars: ✭ 563 (+793.65%)
Mutual labels:  trading, trading-strategies, trading-algorithms, algorithmic-trading, trading-simulator, trading-systems
Roq Api
API for algorithmic and high-frequency trading
Stars: ✭ 132 (+109.52%)
Mutual labels:  trading, trading-bot, trading-platform, trading-strategies, trading-algorithms, algorithmic-trading
LiuAlgoTrader
Framework for algorithmic trading
Stars: ✭ 514 (+715.87%)
Mutual labels:  trading-platform, trading-strategies, trading-algorithms, algorithmic-trading, trading-systems, cryptocurrency-exchanges
Wolfbot
Crypto currency trading bot written in TypeScript for NodeJS
Stars: ✭ 335 (+431.75%)
Mutual labels:  trading, trading-bot, trading-strategies, trading-algorithms, cryptocurrencies
tradingview-alert-binance-trader
This trading bot listens to the TradingView alert emails on your inbox and executes trades on Binance based on the parameters set on the TD alerts.
Stars: ✭ 153 (+142.86%)
Mutual labels:  trading, trading-bot, trading-platform, trading-strategies, trading-algorithms
Lean
Lean Algorithmic Trading Engine by QuantConnect (Python, C#)
Stars: ✭ 5,675 (+8907.94%)
Mutual labels:  trading, trading-bot, trading-platform, trading-strategies, trading-algorithms
Kelp
Kelp is a free and open-source trading bot for the Stellar DEX and 100+ centralized exchanges
Stars: ✭ 580 (+820.63%)
Mutual labels:  trading, trading-bot, trading-platform, trading-strategies, trading-algorithms
Jesse
An advanced crypto trading bot written in Python
Stars: ✭ 1,038 (+1547.62%)
Mutual labels:  trading, trading-bot, trading-strategies, trading-algorithms, algorithmic-trading
tvjs-overlays
💴 Collection of overlays made by the TradingVueJs community
Stars: ✭ 65 (+3.17%)
Mutual labels:  trading, trading-platform, trading-strategies, trading-algorithms, trading-systems
pyjuque
⚡ Open Source Algorithmic Trading Bot for Python.
Stars: ✭ 318 (+404.76%)
Mutual labels:  trading, strategy, cryptocurrencies, algorithmic-trading, ccxt
Tradingview Alert Binance Trader
This trading bot listens to the TradingView alert emails on your inbox and executes trades on Binance based on the parameters set on the TD alerts.
Stars: ✭ 100 (+58.73%)
Mutual labels:  trading, trading-bot, trading-platform, trading-strategies, trading-algorithms
Bitmex Simple Trading Robot
Simple BitMEX trading robot.
Stars: ✭ 100 (+58.73%)
Mutual labels:  trading, strategy, trading-platform, trading-strategies, trading-algorithms
rockfish
Rockfish is an arbitrage bot for the Stellar Decentralized Exchange (SDEX)
Stars: ✭ 58 (-7.94%)
Mutual labels:  trading, trading-bot, trading-strategies, trading-algorithms, cryptocurrency-exchanges

quick_trade

Downloads Downloads wakatime

image

PROJECT MOVED HERE

Dependencies:
 ├──ta by Darío López Padial (Bukosabino   https://github.com/bukosabino/ta)
 ├──plotly (https://github.com/plotly/plotly.py)
 ├──pandas (https://github.com/pandas-dev/pandas)
 ├──numpy (https://github.com/numpy/numpy)
 ├──tqdm (https://github.com/tqdm/tqdm)
 ├──scikit-learn (https://github.com/scikit-learn/scikit-learn)
 └──ccxt (https://github.com/ccxt/ccxt)

Gitcoin Grant

The Quadratic Funding formula makes your one dollar grant much more socially valuable.

Support quick_trade through Gitcoin.

We will support community by opening boutnies from your grants.

gitcoin

Installation:

Quick install:

$ pip3 install quick-trade

For development:

$ git clone https://github.com/VladKochetov007/quick_trade.git
$ pip3 install -r quick_trade/requirements.txt
$ cd quick_trade
$ python3 setup.py install
$ cd ..

Customize your strategy!

import quick_trade.trading_sys as qtr
from quick_trade import brokers
from quick_trade.plots import TraderGraph, make_trader_figure
import yfinance as yf
import ccxt
from quick_trade import strategy


class MyTrader(qtr.Trader):
    @strategy
    def strategy_sell_and_hold(self):
        ret = []
        for i in self.df['Close'].values:
            ret.append(qtr.utils.SELL)
        self.returns = ret
        self.setcredit_leverages(1.0)
        self.set_open_stop_and_take()
        return ret


a = MyTrader('MSFT/USD', df=yf.download('MSFT', start='2019-01-01'))
a.connect_graph(TraderGraph(make_trader_figure()))
a.set_client(brokers.TradingClient(ccxt.ftx()))
a.strategy_sell_and_hold()
a.backtest()

Find the best strategy!

import quick_trade.trading_sys as qtr
import ccxt
from quick_trade.tuner import *
from quick_trade.brokers import TradingClient


class Test(qtr.ExampleStrategies):  # examples of strategies
    @strategy
    def strategy_supertrend1(self, plot: bool = False, *st_args, **st_kwargs):
        self.strategy_supertrend(plot=plot, *st_args, **st_kwargs)
        self.setcredit_leverages()
        self.convert_signal()
        return self.returns
    
    @strategy
    def macd(self, histogram=False, **kwargs):
        if not histogram:
            self.strategy_macd(**kwargs)
        else:
            self.strategy_macd_histogram_diff(**kwargs)
        self.setcredit_leverages()
        self.convert_signal()
        return self.returns

    @strategy
    def psar(self, **kwargs):
        self.strategy_parabolic_SAR(plot=False, **kwargs)
        self.setcredit_leverages()
        self.convert_signal()
        return self.returns


params = {
    'strategy_supertrend1':
        [
            {
                'multiplier': Linspace(0.5, 22, 5)
            }
        ],
    'macd':
        [
            {
                'slow': Linspace(10, 100, 3),
                'fast': Linspace(3, 60, 3),
                'histogram': Choise([False, True])
            }
        ],
    'psar':
        [
            {
                'step': 0.01,
                'max_step': 0.1
            },
            {
                'step': 0.02,
                'max_step': 0.2
            }
        ]

}

tuner = QuickTradeTuner(
    TradingClient(ccxt.binance()),
    ['BTC/USDT', 'OMG/USDT', 'XRP/USDT'],
    ['15m', '5m'],
    [1000, 700, 800, 500],
    params
)

tuner.tune(Test)
print(tuner.sort_tunes())
tuner.save_tunes('quick-trade-tunes.json')  # save tunes as JSON

You can also set rules for arranging arguments for each strategy by using _RULES_ and kwargs to access the values of the arguments:

params = {
    'strategy_3_sma':
        [
            dict(
                plot=False,
                slow=Choise([2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597]),
                fast=Choise([2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597]),
                mid=Choise([2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597]),
                _RULES_='kwargs["slow"] > kwargs["mid"] > kwargs["fast"]'
            )
        ],
}

User's code example (backtest)

from quick_trade import brokers
from quick_trade import trading_sys as qtr
from quick_trade.plots import *
import ccxt
from numpy import inf


client = brokers.TradingClient(ccxt.binance())
df = client.get_data_historical('BTC/USDT', '15m', 1000)
trader = qtr.ExampleStrategies('BTC/USDT', df=df, interval='15m')
trader.set_client(client)
trader.connect_graph(TraderGraph(make_trader_figure(height=731, width=1440, row_heights=[10, 5, 2])))
trader.strategy_2_sma(55, 21)
trader.backtest(deposit=1000, commission=0.075, bet=inf)  # backtest on one pair

Output plotly chart:

image

Output print

losses: 12
trades: 20
profits: 8
mean year percentage profit: 215.1878652911773%
winrate: 40.0%
mean deviation: 2.917382949881604%
Sharpe ratio: 0.02203412259055281
Sortino ratio: 0.02774402450236864
calmar ratio: 21.321078596349782
max drawdown: 10.092728860725552%

Run strategy

Use the strategy on real moneys. YES, IT'S FULLY AUTOMATED!

import datetime
from quick_trade.trading_sys import ExampleStrategies
from quick_trade.brokers import TradingClient
from quick_trade.plots import TraderGraph, make_figure
import ccxt

ticker = 'MATIC/USDT'

start_time = datetime.datetime(2021,  # year
                               6,  # month
                               24,  # day

                               5,  # hour
                               16,  # minute
                               57)  # second (Leave a few seconds to download data from the exchange)


class MyTrade(ExampleStrategies):
    @strategy
    def strategy(self):
        self.strategy_supertrend(multiplier=2, length=1, plot=False)
        self.convert_signal()
        self.setcredit_leverages(1)
        self.sl_tp_adder(10)
        return self.returns


keys = {'apiKey': 'your api key',
        'secret': 'your secret key'}
client = TradingClient(ccxt.binance(config=keys))  # or any other exchange

trader = MyTrade(ticker=ticker,
                 interval='1m',
                 df=client.get_data_historical(ticker, limit=10))
fig = make_trader_figure()
graph = TraderGraph(figure=fig)
trader.connect_graph(graph)
trader.set_client(client)

trader.realtime_trading(
    strategy=trader.strategy,
    start_time=start_time,
    ticker=ticker,
    limit=100,
    wait_sl_tp_checking=5
)

image

Additional Resources

Old documentation (V3 doc): https://vladkochetov007.github.io/quick_trade.github.io

License

Creative Commons License
quick_trade by Vladyslav Kochetov is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Permissions beyond the scope of this license may be available at [email protected].

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].