steemit / steem

The blockchain for Smart Media Tokens (SMTs) and decentralized applications.
https://steem.com
Other
1.95k stars 786 forks source link

30 minute threshold for liquidity rewards penalizes real liquidity being provided #175

Closed jl777 closed 7 years ago

jl777 commented 7 years ago

https://steemit.com/steem/@jl777/does-liquidity-reward-really-require-bid-to-be-there-for-30-minutes

So while real liquidity thousands of STEEM <-> SBD gets traded before 30 minutes and gets zero liquidity points, a bot that selftrades at 30 minutes + 1 second will get all the points.

I posted in https://steemit.com/trading/@jl777/steem-dollars-discount-why-is-it-always-below-open-market-price solutions to this, ie. use distance from realtime implied price and duration of bid as factors.

Still not right but at least in that case I would be getting more than 0 liquidity points for providing liquidity.

jl777 commented 7 years ago

abit is clearing out both my bids and asks prior to the 30 minutes to ensure I get no liquidity points.

https://steemit.com/hack/@jl777/i-am-being-attacked-on-liquidity-provider-points

mvandeberg commented 7 years ago

Liquidity rewards are there for the accounts that are providing depth to the market. If your orders are being filled too soon then perhaps you should place them a little deeper in the spread.

The problem with the 1 minute requirement is that accounts that were playing the spread were also getting the majority of the liquidity rewards and essentially "double dipping". The minimum time needs to be such that it is difficult to profit on both the spread and on liquidity rewards. Perhaps 30 minutes is too long and there are legitimate liquidity providers that are not being rewarded. We have plans on making the minimum requirement votable by witnesses and able to change without an update.

jl777 commented 7 years ago

with 30 minutes, abit is clearing out the spreads for the other market makers so they get no points and then selftrades to get the points.

Is there no possibility to address this issue in a way that is effective? As it is you might as well rename the liquidity rewards to the abit reward. I believe he has gotten nearly 100% of them for quite a while and now has a lot of capital to use against the other market makers.

And he is. https://steemit.com/market/@jasonmcz/the-good-the-bad-and-the-ugly-a-day-as-an-steemit-market-maker#@abit/re-jl777-re-jasonmcz-the-good-the-bad-and-the-ugly-a-day-as-an-steemit-market-maker-20160718t093004495z

Now assuming the points system actually works I am all for following it. However, do you seriously think that the liquidity points as it is currently is working and should be finalized, set in stone. If so, just allocate 1 million STEEM per month to abit as he will be able to totally dominate all others with the current rules.

I thought you were interested in finding a solution to this, but if you are convinced the current incentive system is so good that it cant have any flaws, then I will have to stop trying to be a market maker.

And everybody else will do the same.

THAT is the effect of the current system. If that is not a bug, then I guess it isnt a bug

mvandeberg commented 7 years ago

We were discussing liquidity rewards this morning internally. It is obvious there are flaws with how the rewards are currently working. We do not know if it is a fundamental problem with our design or simply an artifact of the current market conditions. Regardless, we are convinced that the current state of liquidity rewards is not achieving the design goals we had for them, so we will be temporarily disabling liquidity rewards while we reconsider the design and work towards a more permanent solution.

jl777 commented 7 years ago

Thanks!

I do have a fair amount of experience and would be happy to provide feedback on the next iteration. Before it goes live.

The current incentives suffers from the N@S problem. The market maker obtains rewards without taking risks. Maybe a workable approach is to measure the risk taken by each market maker and allocate points based on that. Also, instead of a winner takes all approach have an allocation. Additional ideas are to use distance from the realtime implied price from external price feeds and to use the duration of a bid in seconds (with a cap) as a non-linear factor

I try to join slack, but that is disabled. But I do have many ideas on how it can be fixed or at least made so that it cannot be dominated by a single party

abitmore commented 7 years ago

@jl777 you're so funny. I had ever setup 15k STEEMs buy wall and sell wall in the market, with a tight spread less than 0.1%, you say I'm not providing real liquidity? Then you cleared my walls out, because the spread is too tight, you're able to do that with few cost. Okay. I reset walls with 1% spread. Then you dumped 15k STEEMs on my buy wall, but you still think I'm not providing liquidity? Without my wall, how were you managed to dump your token? After the dump, Steem price dropped from 3.1$ to 2.7$, you say I'm not taking risks? Do I have to reset the sell wall on 2.7$ so you can buy back the STEEM you just dumped? You said you want to help provide liquidity, where are your orders now in the market? 2.5, 2.25, 2.0. Good job.

jl777 commented 7 years ago

I dont have an automated market maker yet and I do have to be offline at times, so I parked the funds away from market.

How much have you gained from the liquidity awards? Using the reward funds that you got to put up walls, ok, yes you are doing that. Everyone else has to use STEEM they paid for with BTC or earned from posts. Not exactly a level playing field

EDIT: I bought back in at market and made a manual order at .001 spread

EDIT: do you really have to downvote me and clear out all my bids to make sure I never get any liquidity points?

abitmore commented 7 years ago

As I provided most of liquidity (includes that one you took), I think I deserve the reward. That's by design, right?

My initial liquidity funds came from other ways as well. No need to hide or complain.

When you have your bot up and ready to keep 0.001 spread around the median feed, I'll donate 10k STEEM for running it as promised. I appreciate your efforts and willing to help, however, it's not wise to play against the market.

By the way, I downvoted your post because I think the language in it is too aggressive, thus not worth so much content reward.

And I've never earn $10k+ by posting. TBH I'm not good at that.

//Edit:

clear out all my bids to make sure I never get any liquidity points?

Don't take it wrong, it's competition and trading strategy. By taking orders inside my wall I'm betting on better spread. I'm not doing it at non-risk, there are trade offs, for example you would have earned spread from that action.

jl777 commented 7 years ago

any chance you can let me get at least some points? it isnt any competition if you get 100% of all the points and I have no way to get any points. making spread is insignificant compared to the liquidity reward.

I coded most of the automated market maker, just need to get the order submission tested.

Fbtc 673.011957 -> 667.279088, implied SBD 0.001499 Ebtc 661.572272 -> 667.285956, implied SBD 0.001499 Bsteem 0.005464 -> 0.005452, implied SBD 3.637853 Psteem 0.005446 -> 0.005454, implied SBD 3.639344 Bsbd 0.001570 -> 0.001594 implied BTC 627.239910 arb 0.000071 Psbd 0.001620 -> 0.001595 implied BTC 627.070156 arb 0.000121 Fbtc 673.120298 -> 667.314403, implied SBD 0.001499 Ebtc 661.552413 -> 667.318268, implied SBD 0.001499 Bsteem 0.005470 -> 0.005455, implied SBD 3.640548 Psteem 0.005438 -> 0.005454, implied SBD 3.639822

The problem is that I dont have enough capital to move past your walls, so it wont be apparent that my bot is pegging to the realtime price. What is required to earn the 10K bounty?

abitmore commented 7 years ago

@jl777 I'm not the only competitor. Market is not charity. Currently there are more than 10 traders trading in the market and everyone has her own strategies. You should work out yours and find your place in the market. By the way currently I haven't set high walls in the market, perhaps other have (I'm not saying I won't set walls forever). If you're not powerful enough, perhaps better not play against the market. IMO it's not good to dump in order to reach the median feed price.

jl777 commented 7 years ago

jl777 paid 0.103 SBD for 0.029 STEEM from adm jl777 paid 1 STEEM for 3.435 SBD from adm

4500.000 15457.500 16950.660 3.435000 8997.975 31941.011 8997.975 3.549813 2996.426 10636.751 11994.401

Well somebody called adm has walls that are pretty large. I had thought you controlled "adm". What do I have to do in order to qualify for your 10K bounty? If you are saying I need to blast past your walls to qualify, then the offer for 10K bounty is not a real offer.

abitmore commented 7 years ago

Yes adm is my account. I set a wall up just now after saw a wall setup by others.

TBH the offer for trading around peg is not really an offer. If you come up with better idea, I'm wiling to provider another offer.

jl777 commented 7 years ago

I have deployed the automated market maker at low volume (0.777 STEEM) Now I calculate an implied price based on all the markets, so assuming the markets are arbitraged, then this automated market maker will do fine. I think it would make sense for it to disable itself during fast markets (ie when arbitrages are possible in the external markets), but for now it is low volume enough and it is useful as it posts the adjusted implied price regularly.

I believe this is a better idea and I hope you will honor your bounty offer

abitmore commented 7 years ago

@jl777 please put your bot online so I can check if it's acting properly.

jl777 commented 7 years ago

it has been online, but just once per 10 minutes. I can increase frequency

update: deployed a once per minute version

abitmore commented 7 years ago

OK. 100 STEEM on your way. Can you increase your order size?

jl777 commented 7 years ago

maybe I can 10x the ordersize, but if to run unattended could run out of capital one the SBD side

ok, updated to 7.77 ordersize, once per minute. max exposure is 3x capital at this level, but unless market goes one direction for 10hrs+ should be ok

abitmore commented 7 years ago

Saw your action. But all bid orders are taken by my taker bot. I'm not sure if my bot is acting in a profitable way though.

jl777 commented 7 years ago

that is because your bot is away from the theoretical value Bsteem 0.006363 -> 0.006391, implied SBD 4.274032 adjusted 3.156866

if you moved your orders away a bit, you will see it, https://steemd.com/@jl777 shows it has been consistently chipping away at your walls as our bots have a different idea of the theoretical value

!! thank you for the partial bounty !!

abitmore commented 7 years ago

I'd like to suggest that you separate the arbitrary logic to another bot. Many times your bot is taking but not making, thus earns you negative liquidity reward points.

jl777 commented 7 years ago

so one account for buying and another for selling?

I guess the way it is now, it usually fills one side and leaves the other side on the books. I didnt realize there is a cumulative tracking of taking.

thanks, that is good idea.

abitmore commented 7 years ago

On account for making and another for taking. Not always buying or selling.

jl777 commented 7 years ago

yes, I changed it to be only making and not taking for now.

jl777 commented 7 years ago

made a new account called "taker" (yes it is backwards, but "maker" was already taken) and it expires orders after an hour, so at most 60 orders at 7.77 as it is one minute frequency

as a fresh account that never takes, it should be earning points, but due to 30 minute delay it seems it gets 0

jl777 commented 7 years ago

https://steemd.com/@taker

@mvandeberg the 30 minute requirement prevents "taker" bot from getting many points. it actually never takes and is always a maker. it does get lucky sometimes, but hopefully the algorithm can be changed so a bot that doesnt self-trade will at least get decent amount of points

jl777 commented 7 years ago

it seems new hardfork temporarily disabling the liquidity awards is coming soon, so I will close this issue since the 30 minute time is being disabled along with everything else