Skip to content

Releases: Cinderella-Man/hands-on-elixir-and-otp-cryptocurrency-trading-bot

Typo fix issue - #33

11 Jan 13:57
Compare
Choose a tag to compare

Thanks to the eagle eyes of @Bodhert the book has one typo less 🚀

Bugfix for needless alias

01 Jan 11:41
Compare
Choose a tag to compare

#32 - thanks to @Bodhert for raising the issue 🙏

Typo fix

06 Dec 21:03
664cd54
Compare
Choose a tag to compare

Fixes #30

21st chapter added

06 Mar 19:59
20e268f
Compare
Choose a tag to compare

21st chapter added

New drawings, fixes to code highlighting

04 Jun 22:16
7a079ab
Compare
Choose a tag to compare

This release contains a refreshing of all drawings throughout the book(including reformatting when size changed) + fixes to chapters 18 and 19 (lack of proper syntax highlighting)

Chapters 18, 19 and 20

26 May 15:42
Compare
Choose a tag to compare

This update contains three new chapters:

Chapter 18 - Functional Elixir

In this chapter, we will venture into the functional world by looking at how could we improve our code to push side effects to the edge. We will revise the Naive.Trader code to abstract away our strategy code into a new module called Naive.Strategy. From this place, we will reorganise the code to maximise the amount of easily testable pure functions. Finally, we will explore hypothetical implementations that will allow us to inject data into function or even manage effects to aid testability. We will compare those to solutions built into Elixir like the with statement.

Chapter 19 - Idiomatic OTP

In the last chapter, we were looking into how we could reorganise the code to maximise the amount of pure code. In this chapter, we will look into different ways of implementing the OHLC(open-high-low-close) aggregator, considering similar optimisation but expanding to limit the number of processes to aid testability and maintainability.

Chapter 20 - Idiomatic trading strategy

We will use the knowledge gained in the last chapter to revise our Naive trading strategy so we will minimise the number of processes required to trade. We will move the functionalities provided by the Naive.Leader and the Naive.SymbolSupervisor into our strategy, taking care to put as much of it as possible into the pure part. In the end, our Naive.Trader will be able to manage multiple positions(trade cycles), and the vast majority of code previously scattered across multiple modules/processes will become easily testable pure functions inside our Naive.Strategy.

Small improvements, bugfixes

20 Sep 12:56
Compare
Choose a tag to compare

Improvements:

  • version of postgrex package should be specified as >= 0.0.0 (@zhulinpinyu)
  • wrong function name in chapter 3 (@Graviis) - this fix was out since it was merged but it was never mentioned in release notes

I would like to say a huge thank you to contributors ❤️

Chapter 17 added + readability updated

22 Jul 21:42
2ec08fb
Compare
Choose a tag to compare

Updates:

  • chapter 17 added - "Mox rocks"
  • line spacing increased
  • font updated to Garamond
  • PDF version updated as spacing was updated, which cause the layout to get out of whack
  • fixes to chapter 16 - environment for e2e test set to integration
  • versions of dependencies truncated after minor version to ease the pain of new non-breaking feature releases
  • DB password updated to non-default one

Currently, the book is 226 pages long 🚀

16th chapter added

17 Jun 22:20
ca56d70
Compare
Choose a tag to compare

Hi 👋

I added the 16th chapter, dedicated to end-to-end testing. On the way to implement them, we will venture into configuration(introducing test databases), downloading test assets(Protocols consolidation), and finally, getting caught by the dependency cycle between apps in our umbrella.

Decimal improvements, English grammar improvements

15 Jun 17:04
a109cb2
Compare
Choose a tag to compare

A number of changes:

  • all 15 chapters were checked using Grammarly and numerous misspellings were fixed
  • the binance module version changed to 1.0
  • the decimal module's usage limited/skipped whenever we can get away with using strings/integers (code simplified)