UPVOTE STATEGY
power
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
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
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
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))
1
2
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
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
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))
It indicates there is NOT much difference at all!
1
2
Strategy 1 Max Income = 279.67590316366
Strategy 2 Max Income = 278.9761089502