ctubio / tribeca

Self-hosted crypto trading bot (automated high frequency market making) in node.js, angular, typescript and c++
https://127.0.0.1:3000
Other
95 stars 26 forks source link

This week improvement: 5 some small improvements #126

Closed Camille92 closed 7 years ago

Camille92 commented 7 years ago

Hello Carles,

If you don't find that annoying that I'm always posting new stuff, I'm coming this week with a little list of small improvements that, IMHO can make life easier using Tribeca and raise some profits.

(If you don't mind I kind of find it funny to try to come each week with one big or a few small ideas to make Tribeca better)

Confort improvement:

1) Ak-47 bullets in % if width % is activated [PENDING] I think this one is just following the logic of "all % option" and bullets of Ak-47 is the last one not % compatible.

2) "Auto-cleaning of K orders": [FIXED] I don't know if you have the same issue but if I don't check Tribeca for some time then it takes a while to load (if it loads) because there are too many orders waiting there. I guess a tick box that would get rid of the closed orders can be a good idea (maybe keeping the last 100 and getting rid of the oldest), well tell me what you think about that

3) Labeling each line of Tribeca for its function: [PENDING] Tribeca has different strategies in it, I think it might be a bit more explicit for everyone to clearly divide the rows in the UI, so you understand what you're doing when you're touching to a row. First one: "Market Making" Second one: " Technical Analysis" Third one: "Protections" Fourth one (I hope :p): "Safeties"

Performance improvement:

1) Option Pdiv = 0 if TargetPosition > Sensibility [PENDING]

The goal is twofold, first to stop the "leaking" of profit when Tribeca is in the good direction with the market but will anyway sell or buy just because is going to try to do some market making. Sometimes it's just good to buy and hold or just stay away from the market.

Second, is to allow a bigger Pdiv for "normal market", because I'm afraid of that "leak", over time I reduced the size of Pdiv to about 5%. However, in normal market condition (when TBP is central) it is more interesting to have a bigger Pdiv. With this option, one can easily have a big Pdiv and still be sure that if the market goes strongly in one direction there will be no "leak".

I'm not sure if it should be linked to the sensibility we have already or to a separate one but I really think it's a good idea in general. If we have a separate sensibility we can choose to put that higher that TPB sensibility to only in BIG market movement you're locking Pdiv. Ie: TBP sensibility 0.5 but Pdiv lock sensitibility = 1.

2) Ewma width: [PENDING]

We all the recent improvements (Stdev and EWMA_LMS) I think this one should be quite easy to implement. I think it should take the general design of Stdev with periods in seconds and a factor. However here what we calculate is the ewma of the width.

The concept is just not to post an order with a small width if the width has been bigger before.

minAsk = FV + (ewma_width(periods)ewma_width_factor) / 2 minBid = FV - (ewma_width(periods)ewma_width_factor) / 2

I think this should work well with a small value and in complement with Stdev Fair or Top ideally because they don't take into account the width but just the evolution of the price :).

Tell me what you think about all of that!

I know it might be the most important things but I think it cool to always come with new ideas :)

ctubio commented 7 years ago

sorry had a (happy) busy week, but will read every single character multiple times (not individually)

Camille92 commented 7 years ago

Hahah no worries, I had a busy (and happy) weekend myself :)

I think the only real good feature of this list is ->> 1) Option Pdiv = 0 if TargetPosition > Sensibility

ctubio commented 7 years ago

moved to https://github.com/ctubio/Krypto-trading-bot/issues/6