Firstly, PowerTrade measures how long each bid/offer limit orders stay live for a given market-maker h over the current reward epoch (the current rewards epoch is 14 days). There is then a maximum spread requirement in order for the quantities to be taken into account. If values fall outside these parameters (spread to mid is too high) they are excluded from the calculations.
δibid, δjask measures the proportional length of time the bid/ask order has remained live over the epoch.
For each strike, expiry and call put product K,T,CP the following quantities are computed over the time length of the entire epoch:
QBid(K,T,CP)=δ1bidSprBid1BidDepth1+δ2bidSprBid2BidDepth2+...
QAsk(K,T,CP)=δ1askSprAsk1AskDepth1+δ2askSprAsk2AskDepth2+...
QMIN(K,T,CP)=MIN(QAsk,QBid)
Qstep1h=∑CP∑T∑KQMIN(K,T,CP)
UpTimeepochh=Δ(Qstep1h)
Where Δ represents the fraction of time over the epoch when the liquidity provider has placed some meaningful two-way liquidity. Notice, PowerTrade measures time with nanosecond precision.
πepochh=TVT∑i=1mVh(i)
Where TVT = Total Volume Traded over the period for all options, πepochh represents the portion of traded volume that the market-maker h has won over the period in volume terms (m are the total trades that the market-maker has filled).
1MinMakerVolume(h)=1 if πepochh>minMaker
else, 1MinMakerVolume(h)=0
(Δ(Qstep1h)>0.75)
then 1MinUpTimeDay(h)=1 else 1MinUpTimeDay(h)=0
Finally, all these quantities are put together in order to form another intermediary step in the calculations for the final score of each individual market-maker h:
Qstep2h=Qstep1h(K,T,CP)×(UpTimeepochh)1/2×πepochh×1MinUpTime(h)×1MinMakerVolume(h) QfinalScoreh=∑hQstep2hQstep2h If the total liquidity rewards for Options in PB for the epoch is Roptions, the individual market-maker reward is:
Roptionsh=Roptions×QfinalScoreh Total depth over spread of two way liquidity at every nano-second are recorded at each Futures expiry T:
Q(fut)Bid(T)=δ1bidSprBid1BidDepth1+δ2bidSprBid2BidDepth2+
Q(fut)Ask(T)=δ1askSpr1AskDepth1+δ2askSpr2AskDepth2+
Q(fut)MIN(T)=MIN(Q(fut)Askmin,Q(fut)Bidmin)
Qstep1h(fut)=∑TQ(fut)MIN(T)
Rewards liquidity providers who provide most uptime liquidity over the period, with a minimum required of up-time: if less than 75% of the time per day, excluded from reward programme (see below):
UpTimeepochh=Δ(Qstep1h(fut))
Where Δ represents the fraction of time over the epoch when the liquidity provider has placed some meaningful two-way liquidity. Notice, PowerTrade measures time with nanosecond precision.
Maker Volume:
πperiodh=TVT∑i=1mVh(i)
Where TVT = Total Volume Traded over the period for all futures, πepochh represents the portion of traded volume that the liquidity provider $h$ has won over the period in volume terms.
1MinMakerVolume(h)=1 if πepochh>minMaker
else, 1MinMakerVolume(h)=0
Minimum up-time is 75% over the epoch:
This is measured as follows.
If:
(Δ(Qstep1h(fut))>0.75)
then 1MinUpTimeDay(h)=1 else 1MinUpTimeDay(h)=0
Finally, all these quantities are put together in order to form another intermediary step in the calculations for the final score of each individual market-maker h:
Qstep2h(fut)=Qstep1h(fut)×(UpTimeepochh)1/2×πepochh×1MinUpTime(h)×1MinMakerVolume(h) QfinalScoreh(fut)=∑hQstep2h(fut)Qstep2h(fut) Rfuturesh=Rfutures×QfinalScoreh(fut) Total depth over spread of two way liquidity at every nano-second
Q(spot)Bid=δ1bidSprBid1BidDepth1+δ2bidSprBid2BidDepth2+
Q(spot)Ask=δ1askSprAsk1AskDepth1+δ2askSprAsk2AskDepth2+
Q(spot)MIN=MIN(QAsk(spot),QBid(spot))
Qstep1h(spot)=Q(spot)MIN
UpTimeepochh=Δ(Qstep1h(spot))
Where Δ represents the fraction of time over the epoch when the liquidity provider has placed some meaningful two-way liquidity . Notice, PowerTrade measures time with nanosecond precision.
πperiodh=TVT∑i=1mVh(i)
Where TVT = Total Volume Traded over the period for all spot trades, πepochh represents the portion of traded volume that the liquidity provider h has won over the period in volume terms.
1MinMakerVolume(h)=1 if πepochh>minMaker
else, 1MinMakerVolume(h)=0
Minimum up-time is 75% over the epoch:
This is measured as follows.
If:
(Δ(Qstep1h(spot))>0.75)
then 1MinUpTimeDay(h)=1 else 1MinUpTimeDay(h)=0
Finally, all these quantities are put together in order to form another intermediary step in the calculations for the final score of each individual market-maker h:
Qstep2h(spot)=Qstep1h(spot)×(UpTimeepochh)1/2×πepochh×1MinUpTime(h)×1MinMakerVolume(h) QfinalScoreh(spot)=∑hQstep2h(spot)Qstep2h(spot) If the total liquidity rewards for Spot in PB for the epoch is Rspot, the individual market-maker reward is:
Rspoth=Rspot×QfinalScoreh(spot) Total depth over spread of two way liquidity at every nano-second
Q(perps)Bid=δ1bidSprBid1BidDepth1+δ2bidSprBid2BidDepth2+
Q(perps)Ask=δ1askSpr1AskDepth1+δ2askSpr2AskDepth2+
Q(perps)MIN=MIN(Q(perps)Ask,Q(perps)Bid)
Q)step1h(perps)=Q(perps)MIN
UpTimeepochh=Δ(Qstep1h(perps))
Where Δ represents the fraction of time over the epoch when the liquidity provider has placed some meaningful two-way liquidity . Notice, PowerTrade measures time with nanosecond precision.
πperiodh=TVT∑i=1mVh(i)
Where TVT = Total Volume Traded over the period for all spot trades, πepochh represents the portion of traded volume that the liquidity provider h has won over the period in volume terms.
1MinMakerVolume(h)=1 if πepochh>minMaker
else, 1MinMakerVolume(h)=0
Minimum up-time is 75% over the epoch:
This is measured as follows.
If:
(Δ(Qstep1h(perps))>0.75)
then 1MinUpTimeDay(h)=1 else 1MinUpTimeDay(h)=0
Finally, all these quantities are put together in order to form another intermediary step in the calculations for the final score of each individual market-maker h:
Qstep2h(perps)=Qstep1h(perps)×(UpTimeepochh)1/2×πepochh×1MinUpTime(h)×1MinMakerVolume(h) QfinalScoreh(perps)=∑hQstep2h(perps)Qstep2h(perps) If the total liquidity rewards for Perps in PB for the epoch is Rperps, the individual market-maker reward is:
Rperpsh=Rperps×QfinalScoreh(perps)