Replies: 3 comments 4 replies
-
To add to this: I think we can use Bitcoin's |
Beta Was this translation helpful? Give feedback.
-
Not totally related, but I thought I'll mention it.
source: https://www.investopedia.com/terms/m/margin.asp I was thinking if we could achieve a setup where instead of deducting the recurring interest from an open position we could opt for adding "fresh" money in interest payments to keep the position open. I guess this it not possible, because we cannot add additional UTXOs to lock once it is there, and since |
Beta Was this translation helpful? Give feedback.
-
I'd like to discuss the idea of rollover being triggered by the maker instead of the taker. We need to charge a funding rate on every rollover. The interval doesn't matter but with rolling over, we are extending the user's contract so we need to charge them for this service. The maker decides the funding rate. I think from that we conclude that the maker also has an opinion on when to charge this funding rate which means, they should decide when rollover happens. By default, our taker implementation should always follow through with rollover. At some point, we might add controls to the user interface for the user to set a maximum funding rate they are willing to pay. With such controls in place, a maker initiated rollover might fail in which case, the maker would force-close the position. Similarly, if the taker is not online, the position will be force-closed. As an optimization, we might later add the pre-computation of rollovers IF the maker can afford locking in a funding rate ahead of time. That is effectively a risk evaluation against the market and depends on the maker's trading / hedging policy. @da-kami @bonomat @klochowicz Input welcome. |
Beta Was this translation helpful? Give feedback.
-
After a discussion with @thomaseizinger and @klochowicz about #1066 we came to the conclusion that our current implementation of auto-rollover + funding-rate is not very user friendly.
At the moment we trigger a rollover every hour. This means, if a user initially paid for 24h (which we would have to charge based on the expiry of the CFD), the user would have additional costs after one hour again. This is not "wrong", because after that one hour the user has 24h (i.e. the CFD extended by one hour) again, but it is weird.
I as a user, would expect that, if I pay for an initial 24h I get charged after 24h. Not after one hour.
A solution to this problem is, to align the settlement interval with the funding round.
Instead of rolling over every hour, we would rollover in the last hour before the expiry. So, upon opening a position, the user would be charged for 24h and the next round would be set to 23h from now. Once the last hour is hit rollover is triggered, and another 24h us charged.
On top of that we could timelock the new (rolled over) transactions to be only usable after the oracle event.
This leads to the "problem", that a user has to come online in exactly the last hour to be able to roll over.
One solution to overcome this, could be to pre-compute future rollovers at the time of opening the CFD. Since everything builds on the initial lock transaction, and we know all the fees that will incur we can actually pre-compute and store X rollovers directly (or even during) opening a position.
This would allow the taker to be offline for longer, and still have a perpetual position.
Beta Was this translation helpful? Give feedback.
All reactions