CinderellaMan

CinderellaMan

Crypto Trader Ecosystem

Hello,

Recently I started a project that became really useful for me and wanted to share it as it could be useful for people that are trying to build trading bots.

At this moment Toretto (well, it’s a dev codename) - can stream trade events from Binance, allows to see things through GUI (written in Phoenix Liveview) and kick of/stop streaming from there. I’m planning to add features like backtesting and even sample “naive algo” which can be showcasing how to write an algo.

My idea would be to expand it to be like kick-starter boilerplate for somebody planning to code algo trading in Elixir - batteries included (you can read more about plans from “to do” section. A little bit like quantopian but it would be fully open source and written in Elixir <3

I’m really excited to share this even when it’s in such very early stage - I’m relatively new to Elixir/Erlang so any guidance would be greatly appreciated.

Link: GitHub - Cinderella-Man/igthorn: Cryptocurrency trading platform · GitHub

PS. Help from anybody with any design skill would be greatly appreciated :smiley:

Thanks in advance,

Kamil

Most Liked

CinderellaMan

CinderellaMan

It took me ages but I managed to push new version tonight.

Backtesting is now implemented and working, naive strategy is trading and making money (checked live and using “unit” tests) - screenshot below:

Warning: As per description in repository, use it at your own risk :slight_smile: It’s still buggy for sure but I’m working hard to make it better - any contributions are welcome :slight_smile:

Also, repository got moved to: GitHub - Cinderella-Man/igthorn: Cryptocurrency trading platform · GitHub
I started to tag releases - newest one is 0.0.2

CinderellaMan

CinderellaMan

Hello @mbenatti

Sorry for a late response. I’m planning to start a small trading company which will be based heavily on Igthorn platform (which btw changed address again… sorry: GitHub - Cinderella-Man/igthorn: Cryptocurrency trading platform · GitHub)

I was taking my time to respond as I was prepping version 1.0.0 - first stable release of ecosystem.

It contains numerous improvements:

  • multi trader naive strategy
  • fully working backtesting setup

I made some backtesting runs and I need to admit that I wasn’t expecting anything like that.

Here’s a chart of XRPUSDT for 03.06.2019 up to 09-06.2019 (7 days):

Settings:

    budget             | 1000
    retarget_interval  | 0.02
    profit_interval    | 0.005
    buy_down_interval  | 0.01
    chunks             | 10
    stop_loss_interval | 0.05
    rebuy_interval     | 0.03

Symbol: XRPUSDT
Date range: 2019-06-03 - 2019-06-09 (inclusive)
Number of events: 1047065
Market start price: 0.44396000
Market last price: 0.38527000
Market performance: -13.219659428777376%
Naive strategy performance: -2.96853464475%
Number of orders: 1098
Number of trades: 384
- gaining trades: 346
- stop losses: 38
Estimated number of retargeted orders = 1098 - 398 * 2 - 38 = 264

PS. @mbenatti I’ve seen your PR for binance.ex package. I’m got some admin perks to be able to push it forward - if you want to team up to get it better, let me know. We could also go through your PR and get it to mergeable state.

tty

tty

If you can provide Simple and Exponential Moving Averages it would be useful to build most of the other indicators and trading algorithms.
The next likely candidate would be Fibonacci Retracements and Extensions.
Are you also providing conditional trade executions (stop loss, etc) ?

Last Post!

CinderellaMan

CinderellaMan

Hello,

Sorry for a long time without updates but I’ve spent it doing a lot of live testing which takes time. I just released version 1.0.1 of Igthorn which fixes a lot of edge cases and other bugs that cropped out in live trading (yes, this code is trading live coins for more than a month now!)

List of new features:

  • ability to gracefully shutdown trading (this allows traders to continue until they will be able to sell)
  • more sophisticated rebuying strategy that keeps track are any other traders at specific price level
  • dashboard widgets:
    • amount of trades across last days
    • total income in last 24h, 7 days, 30 days and all the time
    • char pie of gaining / losing trades
  • nailed a lot of edge cases where race condition between exchange and Igthorn was happening
  • new screen allowing configuration of Binance API key and secret - THIS IS NOT USED YET
  • smaller changes like syncing state of traders with leader to allow to shutdown ones that have not filled buy orders and others

Other nice things include new logo :slightly_smiling_face:

Below new dashboard look:
Dashboard

Next on the road map indicators that were pointed out earlier but never had time to get them sorted out.

Enjoy!

Where Next?

Popular in Discussions Top

Crowdhailer
I’ve been hearing much about the new formatter and it’s something I have been keen to try. I find examples buy far the most illuminating...
248 19760 150
New
pillaiindu
In django there is a cache framework backed by memcached. Rails also puts a lot of emphasis on caching, and even the idea of russian-doll...
New
New
thojanssens1
It would be nice to be able to define a redirect from one route to another from the router.ex file. E.g.: redirect "/", UserController, ...
New
Fl4m3Ph03n1x
Background This question comes mainly from my ignorance. Today is Black Friday, one of my favorite days of the year to buy books. One boo...
New
saif
Hello everyone, Long time lurker first time poster here. I’ve recently begun working on Elixir full-time again! :raised_hands: It’s been...
New
Rustixir
Hi everyone, im working on find best language/framework/system for high concurrency, high performance and stable performance after wor...
New

Other popular topics Top

vonH
When I run the Plug and I recompile I wind up having to use Ctrl C to quit iex and start again. Witht the help of rlwrap I can use the cu...
New
ashish173
I am using Ecto timestamps with postgres, I can see the timestamps() use the :naive_dateime but for my use case I wanted to store the ti...
New
joeerl
Hello again - after a longish gap I’ve decided I really must dig into Elixir and see what’s been happening here - so I have a few questio...
New
bsollish-terakeet
Credo is smart enough to check for (something like) this: assert length(the_list) == 0 with this response: Checking if an enum is empt...
New
TunkShif
This post is an instruction guide to help you setup your Neovim for Elixir development from scratch. It includes general information on h...
274 42576 114
New
sergio
Kind of like when jquery came out, it was super necessary. Existing drag and drop libraries have a bunch of baggage to support old browse...
New