All Projects → Cinderella-Man → igthorn

Cinderella-Man / igthorn

Licence: MIT License
Cryptocurrency trading platform

Programming Languages

elixir
2628 projects
CSS
56736 projects
HTML
75241 projects
javascript
184084 projects - #8 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to igthorn

PancakeSwapBot
PancakeSwap prediction bot
Stars: ✭ 38 (-55.81%)
Mutual labels:  trading-bot, binance
PancakeSwapPredictionBot
PancakeSwap V2 Prediction Bot With Machine Learning | Automated Strategy, Auto Betting, Auto Claim
Stars: ✭ 21 (-75.58%)
Mutual labels:  trading-bot, binance
LickHunterPRO
Cryptocurrency Trading Bot that looks for large pools of liquidity getting liquidated on margin trading, when it finds these it counter trades them!
Stars: ✭ 114 (+32.56%)
Mutual labels:  trading-bot, binance
leafblower
Play Cards Against Humanity online with friends!
Stars: ✭ 29 (-66.28%)
Mutual labels:  elixir-phoenix, phoenix-liveview
multi pairs martingle bot
A muti pairs martingle trading bot for Binance exchange.
Stars: ✭ 55 (-36.05%)
Mutual labels:  trading-bot, binance
Twitter Activated Crypto Trading Bot
Buys crypto through keyword detection in new tweets. Executes buy in 1 second and holds for a given time (e.g. Elon tweets 'doge', buys Dogecoin and sells after 5 minutes). Tested on Kraken and Binance exchanges
Stars: ✭ 92 (+6.98%)
Mutual labels:  trading-bot, 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 (+30.23%)
Mutual labels:  trading-bot, binance
binance-downloader
Python tool to download Binance Candlestick (k-line) data from REST API
Stars: ✭ 44 (-48.84%)
Mutual labels:  trading-bot, binance
ninjabot
A fast trading bot platform for cryptocurrency in Go (Binance)
Stars: ✭ 1,021 (+1087.21%)
Mutual labels:  trading-bot, binance
Benzaiboten-spot-trading-bot
A trading bot easy to use to be linked to your favorite exchange to automatize the trading on cryptocurrencies
Stars: ✭ 20 (-76.74%)
Mutual labels:  trading-bot, binance
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 (+77.91%)
Mutual labels:  trading-bot, binance
price-prediction-bot
🔮 Run backtest over PancakeSwap and CandleGenie Prediction and place realtime bets - Trading Bot
Stars: ✭ 59 (-31.4%)
Mutual labels:  trading-bot, binance
pancakeswap-prediction-winner
🔥 PancakeSwap is afraid of this CHROME EXTENSION (and CLI)! This bot wins almost every 5 minute BNB-USD option on PancakeSwap (and Candle Genie).
Stars: ✭ 229 (+166.28%)
Mutual labels:  trading-bot, binance
binance-technical-algorithm
Technical trading algorithm for Binance
Stars: ✭ 44 (-48.84%)
Mutual labels:  trading-bot, binance
Mida
The open-source and cross-platform trading framework
Stars: ✭ 263 (+205.81%)
Mutual labels:  trading-bot, binance
hippo game live
Elixir & Phoenix LiveView game
Stars: ✭ 43 (-50%)
Mutual labels:  elixir-phoenix, phoenix-liveview
Blankly
🚀 💸 Easily build, backtest and deploy your algo in just a few lines of code. Trade stocks, cryptos, and forex across exchanges w/ one package.
Stars: ✭ 1,456 (+1593.02%)
Mutual labels:  trading-bot, binance
wolfinch
Wolfinch is your friendly trader Bot written in Python
Stars: ✭ 246 (+186.05%)
Mutual labels:  trading-bot, strategies
Bybit-Auto-Trading-Bot-Ordes-placed-via-TradingView-Webhook
Python based Trading Bot that uses TradingView.com webhook JSON alerts to place orders(buy/sell/close/manage positions/TP/SL/TS etc.) on Bybit.com. Hire me directly here https://www.freelancer.com/u/Beannsofts for any assistance
Stars: ✭ 235 (+173.26%)
Mutual labels:  trading-bot, binance
Binance-Asset-Manager
Extension of binance-python to automatically calculate balances and trade any trading pair.
Stars: ✭ 21 (-75.58%)
Mutual labels:  trading-bot, binance

Igthorn

Build Status

Igthorn is a batteries-included cryptocurrency trading platform written in Elixir.

Non-comprehensive list of Igthorn's features:

  • baked-in backtesting engine that allows to test your strategies against historical data
  • "naive" trading strategy
  • list and search through current and historical trades, orders and transactions
  • view chart representations of your trading and many others

Igthorn is a boilerplate for kick-starting your crypto trading project. It contains everything you need to immediately focus on writing profitable algos instead of worrying about setup, custom framework etc.

It's structured as umbrella app that consist of:

  • Ui - GUI - Phoenix frontend allows fine tuning of crypto trading environment using browser instead of raw db queries. Things that can be done via browser include:
  • starting/stoping straming on symbol,
  • modyfing naive strategy settings
  • starting/stoping trading
  • starting backtesting
  • and others.
  • Hefty - Backend - streaming and trading backend supporting Binance consisting of:
  • naive trading strategy
  • backtesting engine
  • business logic used by UI
  • and others

Limit of Liability/Disclaimer of Warranty

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Setting up

docker-compose up -d
mix deps.get
cd apps/ui/assets && npm install && cd ../../..
cd apps/hefty && mix ecto.reset && cd ../..

iex -S mix phx.server

Seeding script checks is there api_key and secret filled in config of Hefty. It will perform additional query to binance to fetch current assets' balances.

Usage

After starting the server with iex -S mix phx.server it will automatically go to database and check are there any symbols with enabled streaming and starts streaming for them.

User interface provides a way to start streaming trade events into db under the local url: http://localhost:4000/streaming-settings

There's a column called "streaming" which contains true/false. By clicking on true/false in one of the rows you will flip(enable/disable) streaming for that symbol.

Here's a diagram of processes with 4 streams open:

Hefty Supervision Tree

Enabling streaming will put data in Postgres database called hefty_dev in table trade_events.

Dumping events

To get data out from database into csv file exs script can be used:

cd apps/hefty
mix run priv/repo/scripts/dump-daily-trade-events.exs --date "2019-05-16"

This will create bunch of files in main directory of project (one for each symbol that it has any events in the day).

Screenshots

Seeding process Settings screen Dashboard screen

Naive trader strategy

Single strategy should be provided for people to understand how to implement one on their own.

Naive strategy described in video called "My Adventures in Automated Crypto Trading" by Timothy Clayton

Technical considerations:

  • My aim is to keep UI close to Elixir with as minimal Javascript as possible so I definietly prefer to keep going on Liveview route.

  • Would like to keep streaming seperate from trading as I would like to allow for multiple strategies running simultaneously.

To do:

  • dashboard screen to allow people to have strategies that flag "interesting" symbols (for example volume trading)
  • possibly implement different exchanges to allow for strategies like arbitrage and others.

Backtesting

Step 1 - Initialize empty database

cd apps/hefty && MIX_ENV=backtesting mix ecto.reset && cd ../..

Step 2 - Import historical data

There's a CLI script that will download historical files for you. there's about 20 days of data from June (2019-06-03 up to 2019-06-23). To load it you need to specify directory to store csv dumps(script will download them for you) to as well as from and to dates and symbol that you are interested in - example below:

cd apps/hefty && MIX_ENV=backtesting mix run priv/repo/scripts/load-trade-events.exs --path="/backup/projects/binance-trade-events/" --from="2019-06-03" --to="2019-06-22" --symbol="XRPUSDT" && cd ../..

This will give you a little bit over 2.8 million events(20 days of trading data).

Step 3 - Start application in backtesting environment

MIX_ENV=backtesting iex -S mix phx.server

Step 4 - Enable trading on XRPUSDT pair - go to "Naive trader settings" and search for the symbol. Click on "Edit" set budget to some decent amount like 1000 and click "Save". Now click on "Disabled" button to enable trading. At this moment system will listen to XRPUSDT stream.

Step 5 - Now go to Backtesting section chose "XRPUSDT" symbol, select 2 dates (2019-06-03 and 2019-06-09) and click "Submit" which will send all 1 million events through naive strategy trader(s).

Documentation

Hosted at docs.igthorn.com

To regenerate run:

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