@origamitech_ So we talk about the history, but I'd like to proceed to the present day.
Tomorrow, I'll talk about current metrics, technologies, and some more general things about our @origamitech_ platform
@origamitech_ Actually, we haven't resolved the problem yet. 😅
The uncovered part is the conditional expressions inside the function call with args, such as coin names.
I will talk about it while describing the current architecture✌️
@origamitech_ The next problem we found was the data: it is quite simple to subscribe to/poll data from the exchange if you KNOW what you need.
But when we talk about AST DSL, we have to parse all the code to verify that we have subscribed to the data.
@origamitech_ So, as it was generally ok for the internal system, it was totally unsafe for the public project like Origami.
After some research, we decided to choose the AST parser from Python to parse code and execute only whitelisted commands
Initially, we had Python code running on top of sympy, and everything was pretty good, but there was a catch: eval() was running under the hood. 🥰🥰
For those who don't know what it is technically: it's a command to execute arbitrary code. Any. Сode.🫡
For everyone curios, this bot is already published in @origamitech_ presets. All you need to do is:
> register
> add account
> set up bot
> select preset "Futures | Hedge Mode | Grid Bot"
https://t.co/JHgf4D7Hd1
I want to start a series of posts about the @origamitech_ platform.
It could be a bit too technical, so your questions are welcome (if someone will read it) =)
Ok, let's start.
First part below
@origamitech_ This is how the idea of DSL for a trading bot was born, which could be used by anyone familiar with mathematics.
Along this path, we have started from the simple sympy analyzer that made an eval() call (that's always unsafe), and finished with a self-coded AST analyzer using Rust
@origamitech_ Sitting in my hookah bar, I lazily wrote another strategy and puffed on a mint-flavored smoke (icy like snow at the North Pole).
Why not give quants the ability to write strategies themselves, but in a way that prevents them from crashing the smth by making O(n^3) calls?
@origamitech_ So, let's go back in time to about two years ago, as I wrote before
The team spent 50% of their time swapping "plus for minus" and "multiplication for division," and another 30% was spent integrating new exchanges.
So what decision did we come to?
@origamitech_ btw, you know how annoying it is:
😡 to implement ~ the same things time after time?
🤬 to create MR-s containing only replacing one constant with another, because quants made a mistake in the task?
Multiply this pain by 2 years, and you will understand how we felt 2 years ago.
4 years ago, we started developing a simple trading bots.
You know, it's a well-known story about algos, parameters, and other things that are hated by ~all developers. Quants created strategies and provided some parameters for them -> developers took over the implementation.