We all know that each 100% vote costs your 2% voting power, and every 24 hours, your voting power restores 20%. This means that you can vote 10 times at 100% one day and the voting power will remain the same the next day.
The question comes: Given a 30 days period, and approximately 60% voting power at the day 1, is there a much bigger gain to restore your voting power to 100% (wait 2 days) ?
I always thought there is not much difference in terms of total curation earnings until today.. I wrote a VBScript that reveals the truth.
The first strategy, just vote 10 times 100% per day every day in the 30 days’ period. Assume 10K SP 100% gives 1 SBD. And suppose the 10 votes are done in a row (the VP restored during upvotes can be ignored)
1 2 3 4 5 6 7 8 9 10 11 12 | Function Strategy1(ByVal sp, ByVal vp, ByVal days) income = 0 While days > 0 For i = 1 To 10 income = income + sp * vp / 10000 vp = vp - 0.02 Next vp = vp + 0.2 days = days - 1 Wend Strategy1 = income End Function |
Function Strategy1(ByVal sp, ByVal vp, ByVal days) income = 0 While days > 0 For i = 1 To 10 income = income + sp * vp / 10000 vp = vp - 0.02 Next vp = vp + 0.2 days = days - 1 Wend Strategy1 = income End Function
The second strategy, let’s wait a few days before the VP is restored, adding a parameter rest in the unit of days.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | Function Strategy2(ByVal sp, ByVal vp, ByVal days, ByVal rest) days = days - rest vp = vp + 0.2 * rest ' 1 day restores 20% If vp > 1 Then vp = 1 ' voting power can only be maximum 100% End If income = 0 While days > 0 For i = 1 To 10 income = income + sp * vp / 10000 vp = vp - 0.02 Next vp = vp + 0.2 days = days - 1 Wend Strategy2 = income End Function |
Function Strategy2(ByVal sp, ByVal vp, ByVal days, ByVal rest) days = days - rest vp = vp + 0.2 * rest ' 1 day restores 20% If vp > 1 Then vp = 1 ' voting power can only be maximum 100% End If income = 0 While days > 0 For i = 1 To 10 income = income + sp * vp / 10000 vp = vp - 0.02 Next vp = vp + 0.2 days = days - 1 Wend Strategy2 = income End Function
In my case, I have 10K SP so let’s assume these values:
1 2 3 4 | steempower = 10000 votingpower = 0.6 daysofcuration = 30 restoredays = 2 |
steempower = 10000 votingpower = 0.6 daysofcuration = 30 restoredays = 2
So the simulation gives:
1 2 | WScript.Echo ("Strategy 1 Max Income = " & Strategy1(steempower, votingpower, daysofcuration)) WScript.Echo ("Strategy 2 Max Income = " & Strategy2(steempower, votingpower, daysofcuration, restoredays)) |
WScript.Echo ("Strategy 1 Max Income = " & Strategy1(steempower, votingpower, daysofcuration)) WScript.Echo ("Strategy 2 Max Income = " & Strategy2(steempower, votingpower, daysofcuration, restoredays))
1 2 | Strategy 1 Max Income = 152.999999999999 Strategy 2 Max Income = 254.799999999999 |
Strategy 1 Max Income = 152.999999999999 Strategy 2 Max Income = 254.799999999999
This is a BIGGGGGGGGG difference! The lower voting power, longer periods, the bigger difference! So…. you might consider letting your upvoting robot take a few days’ rest…
Correction @tumutanzi told me my understanding was not exactly right. The 2% loss is to the current voting power, so instead of vp = vp – 0.02 the correct version is vp = vp * 0.98.
So the correct version to emulate the SteemIt curator is (you can vote 11 times per day)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | Function Strategy1(ByVal sp, ByVal vp, ByVal days) income = 0 While days > 0 For i = 1 To 11 income = income + sp * vp / 10000 vp = vp * 0.98 Next vp = vp + 0.2 If (vp > 1) Then vp = 1 End If days = days - 1 Wend Strategy1 = income End Function |
Function Strategy1(ByVal sp, ByVal vp, ByVal days) income = 0 While days > 0 For i = 1 To 11 income = income + sp * vp / 10000 vp = vp * 0.98 Next vp = vp + 0.2 If (vp > 1) Then vp = 1 End If days = days - 1 Wend Strategy1 = income End Function
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | Function Strategy2(ByVal sp, ByVal vp, ByVal days, ByVal rest) days = days - rest vp = vp + 0.2 * rest If vp > 1 Then vp = 1 End If income = 0 While days > 0 For i = 1 To 11 income = income + sp * vp / 10000 vp = vp * 0.98 Next vp = vp + 0.2 If (vp > 1) Then vp = 1 End If days = days - 1 Wend Strategy2 = income End Function |
Function Strategy2(ByVal sp, ByVal vp, ByVal days, ByVal rest) days = days - rest vp = vp + 0.2 * rest If vp > 1 Then vp = 1 End If income = 0 While days > 0 For i = 1 To 11 income = income + sp * vp / 10000 vp = vp * 0.98 Next vp = vp + 0.2 If (vp > 1) Then vp = 1 End If days = days - 1 Wend Strategy2 = income End Function
And this gives totally different results,
1 2 3 4 5 6 7 | steempower = 10000 votingpower = 0.6 daysofcuration = 30 restoredays = 2 WScript.Echo ("Strategy 1 Max Income = " & Strategy1(steempower, votingpower, daysofcuration)) WScript.Echo ("Strategy 2 Max Income = " & Strategy2(steempower, votingpower, daysofcuration, restoredays)) |
steempower = 10000 votingpower = 0.6 daysofcuration = 30 restoredays = 2 WScript.Echo ("Strategy 1 Max Income = " & Strategy1(steempower, votingpower, daysofcuration)) WScript.Echo ("Strategy 2 Max Income = " & Strategy2(steempower, votingpower, daysofcuration, restoredays))
It indicates there is NOT much difference at all!
1 2 | Strategy 1 Max Income = 279.67590316366 Strategy 2 Max Income = 278.976108950286 |
Strategy 1 Max Income = 279.67590316366 Strategy 2 Max Income = 278.976108950286
You may also like: 最佳点赞策略 SteemIt 能量需要恢复满么?
–EOF (The Ultimate Computing & Technology Blog) —
loading...
Last Post: R Tutorial - Knowing when a Steem Whale vote?
Next Post: The SteemIt SP Delegation Tool