All Projects → LasticotSoftware → Astibot

LasticotSoftware / Astibot

Licence: mit
Astibot is a simple, visual and automated trading software for Coinbase Pro cryptocurrencies (Bitcoin trading bot)

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Astibot

Socktrader
🚀 Websocket based trading bot for 💰cryptocurrencies 📈
Stars: ✭ 152 (+46.15%)
Mutual labels:  trading-bot, bitcoin, cryptocurrency, trading, trading-algorithms, trading-platform
Gekko Strategies
Strategies to Gekko trading bot with backtests results and some useful tools.
Stars: ✭ 1,022 (+882.69%)
Mutual labels:  trading-bot, cryptocurrency, trading, trading-algorithms, trading-platform
Wolfbot
Crypto currency trading bot written in TypeScript for NodeJS
Stars: ✭ 335 (+222.12%)
Mutual labels:  trading-bot, bitcoin, cryptocurrency, trading, trading-algorithms
Jesse
An advanced crypto trading bot written in Python
Stars: ✭ 1,038 (+898.08%)
Mutual labels:  trading-bot, bitcoin, cryptocurrency, trading, trading-algorithms
Roq Api
API for algorithmic and high-frequency trading
Stars: ✭ 132 (+26.92%)
Mutual labels:  trading-bot, cryptocurrency, trading, trading-algorithms, trading-platform
Siis
Trading bot including terminal, for crypto and traditionals markets. Assisted or fully automated strategy.
Stars: ✭ 45 (-56.73%)
Mutual labels:  trading-bot, bitcoin, cryptocurrency, trading, trading-platform
Krypto Trading Bot
Self-hosted crypto trading bot (automated high frequency market making) written in C++
Stars: ✭ 2,589 (+2389.42%)
Mutual labels:  trading-bot, bitcoin, cryptocurrency, trading, trading-platform
Kelp
Kelp is a free and open-source trading bot for the Stellar DEX and 100+ centralized exchanges
Stars: ✭ 580 (+457.69%)
Mutual labels:  trading-bot, cryptocurrency, trading, trading-algorithms, trading-platform
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 (-3.85%)
Mutual labels:  trading-bot, trading, trading-algorithms, trading-platform
Tai
A composable, real time, market data and trade execution toolkit. Built with Elixir, runs on the Erlang virtual machine
Stars: ✭ 264 (+153.85%)
Mutual labels:  trading-bot, bitcoin, cryptocurrency, trading
Tribeca
A high frequency, market making cryptocurrency trading platform in node.js
Stars: ✭ 3,646 (+3405.77%)
Mutual labels:  trading-bot, bitcoin, cryptocurrency, trading
Lean
Lean Algorithmic Trading Engine by QuantConnect (Python, C#)
Stars: ✭ 5,675 (+5356.73%)
Mutual labels:  trading-bot, trading-algorithms, trading-platform, trading
Cointrader
Coin Trader is a Java-based backend for algorithmically trading cryptocurrencies. It provides data collection and export, complex event processing and triggering, and backtesting - paper trading - live trading.
Stars: ✭ 332 (+219.23%)
Mutual labels:  trading-bot, cryptocurrency, trading-algorithms, trading-platform
Machine Learning And Ai In Trading
Applying Machine Learning and AI Algorithms applied to Trading for better performance and low Std.
Stars: ✭ 258 (+148.08%)
Mutual labels:  trading-bot, bitcoin, trading, trading-algorithms
Bxbot
A simple Bitcoin trading bot written in Java.
Stars: ✭ 515 (+395.19%)
Mutual labels:  trading-bot, bitcoin, cryptocurrency, 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 (+0%)
Mutual labels:  trading-bot, trading, trading-algorithms, trading-platform
Kupi Terminal
Ccxt based, open source, customized, extendable trading platform that supports 130+ crypto exchanges.
Stars: ✭ 104 (+0%)
Mutual labels:  bitcoin, cryptocurrency, trading, trading-platform
Freqtrade Strategies
Free trading strategies for Freqtrade bot
Stars: ✭ 697 (+570.19%)
Mutual labels:  trading-bot, bitcoin, cryptocurrency, trading
Octobot
Cryptocurrency trading bot: high frequency, daily trading, social trading, ...
Stars: ✭ 706 (+578.85%)
Mutual labels:  trading-bot, bitcoin, cryptocurrency, trading
quick trade
convenient script for trading with python.
Stars: ✭ 63 (-39.42%)
Mutual labels:  trading, trading-bot, trading-platform, trading-algorithms

Astibot

Astibot is a simple, visual and automated trading software for Coinbase Pro cryptocurrencies

Astibot is a trading bot that operates on the Coinbase Pro trading platform through a set of API keys. Its trading strategy is basic, but it provides a powerful and interactive simulation tool to backtest your settings.

Astibot bases its decisions on 2 real-time indicators:

  • a MACD-like indicator: it provides buy and sell signals based on 2 moving averages: one fast, one slow. These averages can be tuned to be short-term focused (very sensitive, ~5 min chart) or more robust to price noise (less sensitive, ~2h chart). They are not computed in a traditional way, but with signal processing algorithms (recursive low pass filters).
  • a risk indicator: the purpose of this risk line is to avoid opening a trade too high that could hardly be sold with a profit. The user can set his own risk level thanks to a dedicated cursor. This line evolves automatically to match the average market level (based on the last few hours), but its value is weighted by the risk level the user has set.

Alt text

Main features

  • Real-time graph update
  • On-graph trades display (buy and sell markers)
  • Live trading mode (real-time trading)
  • Simulation mode (to backtest the settings)
  • Customizable MACD-like decision indicator (to detect buy and sell opportunities)
  • Supported Coinbase pro trading pairs: BTC-USD, BTC-EUR, ETH-USD, ETH-EUR, LTC-USD, LTC-EUR, BCH-USD, BCH-EUR, ETC-USD, ETC-EUR, ETH-BTC, BCH-BTC, LTC-BTC

Advanced features

  • Risk line: a customizable, real-time updated limit price limit above which Astibot will never buy
  • Stop loss: crypto is automatically sold if price is below a customizable percentage of the buy price
  • Sell trigger: a fixed percentage above the buy price to sell, for scalping. After a buy, Astibot places a limit order at this percentage of the buy price. If this parameter is set to zero this feature is disabled and Astibot will rely on its MACD-like indicator to decide when to sell.
  • Limit and Market orders management: when Astibot detects a buy (or a sell) opportunity, it first tries to buy (or sell) the asset through a limit order to benefit from the fee reduction (limit orders are less expensive and on the right side of the spread). If the order cannot be filled, Astibot decides to perform a market order (immediate effect, more expensive) or to cancel the buy if the buy opportunity strength has decreased too much.

How to use Astibot ?

Astibot can run on any computer capable of runnning Python 3, including Raspberry Pi (very convenient for 24/7 trading).

Install required dependencies

pip3 install pyqt5 pyqtgraph tzlocal cbpro twilio scipy ipdb

Start-up

  1. python Astibot.py
  2. At first start-up, enter your Coinbase Pro API keys (view and trade permissions are required)

Results

Let's talk about the key topic! I have run Astibot serveral weeks on my Raspberry pi. Here are my conclusions:

  • Astibot needs volatility to make profit: a 0.8% - 1% price amplitude on the short term chart is a minimum. These variations are required to detect dips and tops properly with the smoothing indicators, and to cover the buy and sell fees.
  • Astibot runs well during sideways periods. If volume and volatility are good, Astibot can outperform the chart.
  • Astibot is not very interesting during a bull market. Price dips are harder to find, and because of the risk line, Astibot never buys when price is too high.
  • Astibot is not profitable during a bear market: it will detect a lot of dips, buy these dips and it will not be able to close a trade with profit because price will have decreased.

To sum up, the mose difficult part is to know when it is interesting to run Astibot for the next hours or days. But, there's no rule. Use the Simulation mode and tune the cursors to try :)

Development

I think current Astibot version could be a good starting point to implement more sophisticated strategies. To understand the general software breakdown, a diagram is worth thousand words. Top modules call services from the modules below. Alt text

Known limitations

  • Astibot is designed to prioritize the execution of limit orders over market orders. However limit orders placing, monitoring and replacing on top of the order book in real-time when a buy/sell signal is raised is tricky to implement and I don't think it works perfectly. To avoid problems with this limit order mode feature, I configured Astibot to use market orders only by default (see TradingBotConfig file).
  • Astibot only implements the Coinbase Pro API . It would not be that hard to create a "BinanceControler", "BitfinexControler" ... to add multiplatform support. These specific controlers could herit from a more generic and abstract controler seen from higher level modules (polymorphism).

Development and design improvements

  • Some modules are too big and could be splitted into more micro modules (UIGraph for example)
  • Astibot was originally designed to trade fiat-crypto pairs. Recently, I added the support for BTC based pairs but I didn't have time to rename all the variable labelled "fiatXXX" that were orginally are designed to contain data about the fiat currency. So for example, variables fiatAccountBalance and cryptoAccountBalance should have more generic names like account1Balance, account2Balance.
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].