All Projects → tryphe → trader

tryphe / trader

Licence: MIT license
a ping pong and maker/taker order bot for trading cryptocurrency on Waves Exchange, Poloniex, Bittrex, and Binance

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to trader

crypto-database
Database for crypto data, supporting several exchanges. Can be used for TA, bots, backtest, realtime trading, etc.
Stars: ✭ 72 (+213.04%)
Mutual labels:  trading-bot, poloniex, bittrex, binance
Cryptocurrency Portfolio
Google Sheets automatic creation with Google Apps Script (GAS) for managing a cryptocurrency tracking spreadsheet with multi exchanges
Stars: ✭ 134 (+482.61%)
Mutual labels:  exchange, poloniex, bittrex, binance
Golang Crypto Trading Bot
A golang implementation of a console-based trading bot for cryptocurrency exchanges
Stars: ✭ 475 (+1965.22%)
Mutual labels:  trading-bot, poloniex, bittrex, binance
My Token
📈Track token prices of your favorite exchanges in terminal!
Stars: ✭ 141 (+513.04%)
Mutual labels:  exchange, poloniex, bittrex, binance
Crypto vba
An Excel/VBA project to communicate with various cryptocurrency exchanges APIs
Stars: ✭ 103 (+347.83%)
Mutual labels:  exchange, poloniex, bittrex, binance
binance-pump-bot
Automation for Binance p&d(pump and dump) activity, ensures fastest purchase and provides auto selling functionality to lockdown profit during these events.
Stars: ✭ 112 (+386.96%)
Mutual labels:  trading-bot, exchange, binance
Gbot Trader
Trading robot for trade on crypto exchanges
Stars: ✭ 222 (+865.22%)
Mutual labels:  exchange, poloniex, bittrex
ccapi
A header-only C++ library for interacting with crypto exchanges. Binding for Python is provided. A spot market making application is also provided as an end-to-end solution for liquidity providers.
Stars: ✭ 227 (+886.96%)
Mutual labels:  trading-bot, exchange, altcoin
Coinnect
Coinnect is a Rust library aiming to provide a complete access to main crypto currencies exchanges via REST API.
Stars: ✭ 130 (+465.22%)
Mutual labels:  exchange, poloniex, bittrex
Crypto Trading Bot
Cryptocurrency trading bot in javascript for Bitfinex, Bitmex, Binance, FTX, Bybit ... (public edition)
Stars: ✭ 1,089 (+4634.78%)
Mutual labels:  trading-bot, exchange, binance
Welcome
Welcome to PTDefender
Stars: ✭ 27 (+17.39%)
Mutual labels:  poloniex, bittrex, binance
bitcointaxer
Crypto-TAX Gain/Loss Calculator
Stars: ✭ 33 (+43.48%)
Mutual labels:  poloniex, binance, wavesplatform
Nescience-Indexing-CLI
Nescience Software & Capital Rebalancing Tool
Stars: ✭ 26 (+13.04%)
Mutual labels:  poloniex, bittrex, binance
Crypto Exchange
Pulls together list of crypto exchanges to interact with their API's in a uniform fashion.
Stars: ✭ 241 (+947.83%)
Mutual labels:  exchange, poloniex, bittrex
Krypto Trading Bot
Self-hosted crypto trading bot (automated high frequency market making) written in C++
Stars: ✭ 2,589 (+11156.52%)
Mutual labels:  trading-bot, exchange, binance
Cryptotrader
A cryptocurrency trader for all famous exchanges
Stars: ✭ 228 (+891.3%)
Mutual labels:  trading-bot, exchange, binance
Cryptofeed
Cryptocurrency Exchange Websocket Data Feed Handler
Stars: ✭ 643 (+2695.65%)
Mutual labels:  exchange, bittrex, binance
price-prediction-bot
🔮 Run backtest over PancakeSwap and CandleGenie Prediction and place realtime bets - Trading Bot
Stars: ✭ 59 (+156.52%)
Mutual labels:  trading-bot, exchange, binance
Arbbot
Arbitrator, a bitcoin/altcoin arbitrage trading bot
Stars: ✭ 173 (+652.17%)
Mutual labels:  trading-bot, poloniex, bittrex
Mida
The open-source and cross-platform trading framework
Stars: ✭ 263 (+1043.48%)
Mutual labels:  trading-bot, exchange, binance

Warning: this repo is in a transition phase. Use the code as you wish, but take caution.

What is Trader?

Trader is a bot that makes manual orders for the user, and/or makes automatic ping-pong orders. Trader can execute one-time, fill-or-kill, and maker/taker orders, and simulates these modes on exchanges without direct support. Trader also respects exchange limits like maximum number of orders, minimum price, maximum price, minimum lot size, price ticksize, etc.

License

Trader is released under the terms of the MIT license.

Features

  • Low resource usage. 5MB static binary, 15-20MB ram usage.
  • Runs headless.
  • Supports a large number of build targets. See Qt platform requirements for more details.
  • Order engine is adaptable to any exchange.
  • Runtime sanity testing and fairly extensive order execution simulation for consistency.
  • Uses GMP multi-precision integers. No floating-point instructions are used. How can floats fail?
  • Real-time slippage calculation which prevents local order collision and greatly reduces the frequency of exchange post-only mode collisions.
  • Anti-mistake. Prevents taking a price 10% lower or higher from the current spread(also overridable), and more!
  • Ping-pong using fixed, user-generated positions. Also able to combine positions.
  • Automatic ping-ping (wip)
  • Because trades aren't made using a browser interface, coin theft by withdrawal through browser hijacking is impossible.

Exchanges

  • Bittrex REST support. (deprecated)
  • Binance REST support. (deprecated, partially broken)
  • Poloniex REST and WSS feed support (deprecated)
  • Waves support

TODO

  • Create readme and documentation for new strategy
  • Stats tracker for persistence. (wip)
  • Add more exchanges.
  • GUI (abandoned)
  • WSS notifications (abandoned)

Dependencies: Compiling Qt and installing libgmp (unix/linux)

Trader requires Qt 5.10 or later, built with the core, network, and websockets modules. To build:

  1. Install dependencies: - sudo apt build-dep qt5-default - sudo apt install libgmp-dev
  2. Open your source directory, ie. cd ~/src. If it doesn't exist, run mkdir ~/src first.
  3. Pull any currently maintained Qt source: wget https://download.qt.io/archive/qt/5.13/5.13.1/single/qt-everywhere-src-5.13.1.tar.xz
  4. Extract: tar xf qt-everywhere-src-5.13.1.tar.xz
  5. Go there: cd qt-everywhere-src-5.13.1
  6. Configure Qt. Important: replace username with your username. (Choose only one) - Click here to configure a dynamic build, to run Trader on your machine - Click here to configure a static build, to copy Trader to another machine with the same OS
  7. If there are no errors, run make: make -j (if low on RAM or single CPU, you can skip the -j)
  8. If there are no errors, run make install
  9. Now, run qmake -v prefixed with your install path (type the whole thing): ~/localqt/Qt-5.13.1-minimal/bin/qmake -v ~~~ QMake version 3.1 Using Qt version 5.13.1 in /home/username/localqt/Qt-5.13.1-minimal/lib ~~~ If you are having problems with step 9 and interfering Qt versions, invoke qmake using qtchooser instead.

Compiling

  1. Open your source directory, ie. cd ~/src
  2. Clone this repo: git clone https://github.com/tryphe/trader
  3. Go there: cd trader
  4. Hardcode your API keys into daemon/keydefs.h (choose only one): - Run python generate_keys.py - or: Copy the example keydefs file: cp daemon/keydefs.h.example daemon/keydefs.h then paste your keys in with your favorite editor. - or: (non-hardcoded keys): Create keydefs.h using the example file above, but leave the keys blank or as-is during compile. Then, each time you run the binary, modify the bulk input file <config-directory>/in.txt, adding this line: setkeyandsecret <key> <secret>.
  5. Run qmake: ~/localqt/Qt-5.13.1-minimal/bin/qmake
  6. Compile: make -j, or make -jn where n is the number of simultaneous makes.

Updating

Run git pull to pull the latest code, then repeat step 6 from the Compiling section. You should do this frequently - minor bugfixes are common.

Running the daemon

Sessionize traderd so it stays running: setsid ./traderd

Config directory

~/.config/trader

Tailing the logs (note: CLI output goes to the logs)

Running the daemons and relying terminal output is suboptimal if the terminal closes. It's enabled by default, but can be disabled in daemon/build-config.h. All output is also routed to the logfiles. There's a color log, and a noncolor log. To tail, run: tail -f --lines=200 ~/.config/trader/log.<timestamp>_color.txt.

Commands

Check out the list of commands. (warning: most of these commands are now deprecated)

FAQS

What the bot is NOT

The bot doesn't use common chart indicators, like momentum indicators or standard deviation formulas. Instead, it relies on user-generated ping-pong, and automatic ping-pong based on a cross-market tit-for-tat strategy (coming soon).

What about supporting xyz exchange?

It's fairly easily to integrate the bot with any API, as long as it can read its current orders and get ticker prices. Currently, it would take roughly 1000 lines to add another exchange. If you know of a good exchange, let me know.

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].