Create a cryptocurrency trading bot in Elixir (YouTube videos, ebook pay what you want)
#Elixir#Cryptocurrencies#AlgorithmicTrading
Looking for a real-world Elixir/OTP project to gain hands-on experience?
This video series/book will take you on a journey to create a cryptocurrency trading bot in Elixir. You will be able to see first-hand, how complex systems are designed and developed as we will build them together!
As the book grows and people start to add suggestions/errata/dependencies updates, etc. I realized that publishing the book via the Leanpub platform is not best suited to maintain this book long-term for the benefit of the community.
Taking the above under consideration, I decided to make my book publicly available online(as a website - you can still download the PDF and EPUB through it) as well as open-source the markdown files for the book itself
I would like to say that I’m gratefully thankful for all the support from the Elixir community with this project(both book and videos) - I couldn’t do this without you!
I see that book is currently at 40%, is there a completion forecast?
I am currently with the elixir/phoenix base, I still lack more knowledge and practice but I will take into account your book to learn otp, processes and more elixir.
Thanks
Thanks for your comment, it’s quite tricky to estimate when this book will be finished as it’s based on YouTube videos and those are still ongoing and I would assume they will be for a new few(3-4?) months so you can expect that this book will also be topped up for next 4-5 months.
I would say that you need some understanding of OTP and with this book, you can see how to apply your knowledge, so in the end, you have the first project behind your belt and should feel more comfortable that you can build some non-trivial apps.
We will focus on creating a supervision tree around our streamer processes that will allow us to start and stop streaming on a symbol. To keep things in sync with the improvements made to the Naive application in the last episode, we will also introduce the autostarting functionality based on the settings from the database.
I’ve also redone the 12th video and uploaded it again so it follows the style of the series a little bit closer.
I guesstimate it to be about 75% finished and with 15 chapters, it’s 200+ pages long.
Newest release contains 3 additional chapters:
“Abstract duplicated supervision code” - we will venture into abstracting away the supervision logic that we copied in the previous chapters by leveraging refactoring and macros. This chapter contains a full refactoring session.
“Store trade events and orders inside the database” - we implement a new application that will be responsible for storing data from the PubSub topics. Additionally, we will look into how we could make the supervision tree even better by introducing Elixir Registry.
“Backtest trading strategy” - based on improvements from previous chapters we will be able to implement an extremely simple backtesting method that will stream trade events from the database to PubSub topic
I would like to say that I’m gratefully thankful for all the support from the Elixir community with this project(both book and videos) - I couldn’t do this without you
We will focus on refactoring the duplicated logic responsible for supervising(starting, stopping, and autostarting) the dynamic processes inside the naive and the streamer applications. First, we will abstract away all the generic code leaving just a boilerplate inside the naive application. Next, we will look into the “using” macro which we will leverage to get rid of that boilerplate. This video was released for educational purposes as the proper way of solving this problem would be to use the Registry(which will be the focus of the next episode).
It’s this time again I just release the 15th video in the series dedicated to creating a cryptocurrency trading bot in Elixir - this time we will focus on refactoring the data warehouse, naive, and streamer applications to leverage the Elixir Registry. What we will end up with is a very slim layer of implementation on top of the Registry module as well as we won’t need to use thousands of atoms for names and run out of memory(as atoms are not garbage collected by Erlang VM!).
Don’t forget to smash that like button if you like it
As the book grows and people start to add suggestions/errata/dependencies updates, etc. I realized that publishing the book via the Leanpub platform is not best suited to maintain this book long-term for the benefit of the community.
Taking the above under consideration, I decided to make my book publicly available online(as a website - you can still download the PDF and EPUB through it) as well as open-source the markdown files for the book itself
I would like to say that I’m gratefully thankful for all the support from the Elixir community with this project(both book and videos) - I couldn’t do this without you!
I know it’s been a while since I posted any updates about my “soon to be finished” book. In all honesty, it took me on a personal journey to get the new three chapters finished, but I’m proud to let you know that I released a new version of my “Hands-on Elixir&OTP: Crytocurrency trading bot” book!
It now has 20 chapters spanning across 286 pages, and it’s feature complete (the remaining content that I would like to add is more like “appendixes” than additional chapters).
The version contains thoroughly reworked diagrams across the whole book together with three additional chapters:
Chapter 18 - Functional Elixir Focused on revising the code to group the business logic into a separate module and refactoring to push side effects to the edge. We then compare pure FP(managing effects) vs pragmatic Elixir features.
Chapter 19 - Idiomatic OTP Focused on looking into the different implementations of new aggregation functionality. The idea here is to show that there’s a delicate balance between the number of processes used and something less is more.
Chapter 20 - Idiomatic trading strategy For me, this one is an absolute game changer. It’s a complete rethinking of the usage of processes in achieving parallelism with an additional focus on purity. It’s a love child of the 18th and 19th chapters in action.