In my previous post, a question was raised: How to upvote in order to maximize the payout per day?
Things could get very complicated, so we make some assumptions:
We assume that you start with a P (Voting Power, with P=1 equals 100% voting power), and we know that 100% vote costs around 2% voting power. Each 36 minutes, you get 0.5% voting power restored.
And we know that the 100% voting power generates M dollar payout. If you only upvote T times and that happens only in a specific N-hours timespan e.g. from 10:00AM to 10:00PM (after that, you go to sleep).
The straightforward voting strategy will be to use all T upvotes at the beginning of the timespan.
The payout equation will be:
Sum P*M*(1-0.02*(i-1)) for i=1..T
For example, when T=2, upvoting twice immediately after start will be:
P*M + P*M*(1-0.02)
Translated into Javascript, the code explains the idea:
1 2 3 4 5 6 7 8 9 10 11 12 | // P - Current Voting Power e.g. 100% // M - Payout at 100% unit $ // T - Number of Upvotes // N - Number of Hours (Interval) function calcPayout0(P, M, T, N) { var x = 0; for (var i = T; i > 0; -- i) { x += P * M; P -= 0.02; // 2% voting power decrease } return x; } |
// P - Current Voting Power e.g. 100% // M - Payout at 100% unit $ // T - Number of Upvotes // N - Number of Hours (Interval) function calcPayout0(P, M, T, N) { var x = 0; for (var i = T; i > 0; -- i) { x += P * M; P -= 0.02; // 2% voting power decrease } return x; }
However, if the starting power is not 100%, it is always wait till the end of the timespan, when we have bigger voting power. With a line added, we have a better version:
1 2 3 4 5 6 7 8 9 10 11 12 13 | // P - Current Voting Power e.g. 100% // M - Payout at 100% unit $ // T - Number of Upvotes // N - Number of Hours (Interval) function calcPayout1(P, M, T, N) { var x = 0; P = Math.min(1, P + 0.005 / 0.6 * N); // Maximum 100% voting power for (var i = T; i > 0; -- i) { x += P * M; P -= 0.02; // 2% voting power decrease } return x; } |
// P - Current Voting Power e.g. 100% // M - Payout at 100% unit $ // T - Number of Upvotes // N - Number of Hours (Interval) function calcPayout1(P, M, T, N) { var x = 0; P = Math.min(1, P + 0.005 / 0.6 * N); // Maximum 100% voting power for (var i = T; i > 0; -- i) { x += P * M; P -= 0.02; // 2% voting power decrease } return x; }
Every 36 minutes we got 0.5% voting power back, that is we restore 0.005/0.6 each hour. Another strategy is to divide the N hour time span into T-1 slots, so with the energy restores at each slots, the equation becomes:
Sum P*M*(1-0.02*(i-1)+R) for i=1..T
R is the energy restored per N/(T-1), using JS explains better.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | // P - Current Voting Power e.g. 100% // M - Payout at 100% unit $ // T - Number of Upvotes // N - Number of Hours (Interval) function calcPayout2(P, M, T, N) { var x = 0; var sp_restored = 0; if (T == 1) { P = Math.min(1, P + 0.005 / 0.6 * N); } else { var sp_restored = 0.005 / 0.6 * (N / (T - 1)); } for (var i = T; i > 0; -- i) { x += P * M; P -= 0.02; // 2% loss per 100% upvote P += sp_restored; // each 36 minutes restore 0.5% } return x; } |
// P - Current Voting Power e.g. 100% // M - Payout at 100% unit $ // T - Number of Upvotes // N - Number of Hours (Interval) function calcPayout2(P, M, T, N) { var x = 0; var sp_restored = 0; if (T == 1) { P = Math.min(1, P + 0.005 / 0.6 * N); } else { var sp_restored = 0.005 / 0.6 * (N / (T - 1)); } for (var i = T; i > 0; -- i) { x += P * M; P -= 0.02; // 2% loss per 100% upvote P += sp_restored; // each 36 minutes restore 0.5% } return x; }
The equation can be uniformed by extracting M which is like a constant. We use M=270 because @abit gives roughly 270$ per 100% upvote. A bigger M will make the result analysis clear.
SteemIt Upvoting Strategy Data Analysis
Disclaimer: I am not responsible for your payout.. These are just for your references (and may contain error).
When you only upvote once
1 2 | var T = 1; var N = 10; |
var T = 1; var N = 10;
You can upvote when you wake up, or when the VP restores – vote before you go to bed. If P=0.9, the three methods generate payouts of:
calcPayout0=243 calcPayout1=265.5 calcPayout2=265.5
The Voting Power cannot restore to 100% in 10 hour span, that is why the maximal payout is 265.5 instead of 270. Clearly, voting when you have a higher voting power is the best choice.
However, if the starting power is 100%, it does not make any difference, they all give $270 payout.
When you upvote 8 times per day
Starting Voting Power P=100%, T=8, N=10, The third strategy is better (vote and rest)
calcPayout0=2008.8 calcPayout1=2008.8 calcPayout2=2098.8
However, when the P is 80% at the beginning of timespan:
1 2 3 4 | var P = 0.8; var M = 270; var T = 8; var N = 10; |
var P = 0.8; var M = 270; var T = 8; var N = 10;
The second method gives a higher payout. That is, you use your 8 upvotes immediately before you go to bed when you have already restored to a higher VP for the day.
calcPayout0=1576.8 calcPayout1=1756.8 calcPayout2=1666.8
When the P is closest to 100%, the third strategy (vote and rest) is better than the second one.
1 2 3 4 | var P = 0.99; var M = 270; var T = 8; var N = 10; |
var P = 0.99; var M = 270; var T = 8; var N = 10;
Does the result surprise you?
calcPayout0=1987.2 calcPayout1=2008.8 calcPayout2=2077.2
There are, of course, other voting strategies, for example, you can use half your votes in the morning and the rest in the evening. But I guess the results are pretty much similar. My suggestions according to the fact that most Steemians won’t have a higher P at the beginning of each day:
Use your votes right before you go to bed!
Most of use won’t care so much because our M is small compared to big whales.. For example, my M = 1.7.
calcPayout0=12.512 calcPayout1=12.648 calcPayout2=13.0786666666667
The results are very close: So, don’t spend too much time considering your best voting strategy. You should spend more time in your posts on SteemIt!
You may also like: SteemIt 怎么样点赞收益最高?
–EOF (The Ultimate Computing & Technology Blog) —
loading...
Last Post: How to Use Steem API/transfer-history and IFTTT to sync to Slack?
Next Post: Simple Method to Insert Math Equations in SteemIt MarkDown Editor