## Details
While bidbots have been around for a while, when @yabapmatt released his [Bot Tracker](steembottracker.com) tool, bidbot usage become much more accessible and understandable to Steemit users. Bidbot usage, however, involves a certain amount of speculation. A bid placed is often placed with the intention of profit. Profit is predicated on STEEM and/or SBD prices remaining constant (or going up) until the purchased vote pays out. So how do price fluctuations align with bidbot usage? That's the question that this analysis seeks to answer. Using blockchain data going back 6 months, I analyzed bidbot usage over time alongside price performance and fluctuation. Here are my findings.
## Outline
- 6 Month Performance: The Big Picture
- 2 Month Performance: Recent History
- Historical Fluctuations: 8/15/2017-10/15/2017
## Scope of Analysis
The data extracted included the most commonly-used bidbots from SteemBotTracker.com.
I query'd the blockchain using SteemData's Operations collection, pulling 6 months of data spanning from July 28, 2017 at 3:04 AM to January 26, 2018 at 11:17 AM.
## Tools
For this analysis, I used a combination of steem-python, SteemData, and Tableau.
The script used works in several parts:
### The boring parts
This section imports the modules I used for the rest of the script, and defines the nodes for the steemd instance I use to pull block numbers.
---
```
import os
import pandas as pd
from steem.blockchain import Blockchain
from datetime import datetime, timedelta
from steemdata import SteemData
from steem.steemd import Steemd
db=SteemData().db
std=Steemd(nodes=['https://rpc.buildteam.io/','https://gtg.steem.house:8090','https://steemd.minnowsupportproject.org','https://rpc.steemliberator.com','seed.bitcoiner.me:2001',])
os.chdir('/Users/Jared/bidbotproject')
N = 6
timestring = datetime.now() - timedelta(days=N*365/12)
bc=Blockchain(steemd_instance=std)
```
---
### Getting the right stuff
This section queries the blockchain, and estimates (roughly) the block number for the time period I am trying to capture. It also defines the bidbots I want to investigate, and the mongoDB projection for the data I pull.
---
```
now_block = bc.get_current_block()['timestamp']
now_block_num = bc.get_current_block_num()
now_block_time = steem.utils.parse_time(now_block)
print(now_block_time)
delta = now_block_time - timestring
block_delta = delta.total_seconds() / 3
guess_block = int(round(now_block_num - block_delta))
print(guess_block)
print(now_block_num)
blockRange = range(guess_block,now_block_num)
bidbots=[
'votebuster','voterunner','smartsteem','appreciator','kittybot','mrswhale','seakraken','postpromoter','mercurybot','discordia','ipromote','upyou','levitation','adriatik','booster','bid4joy','boomerang','upmyvote','upgoater','minnowhelper','lovejuice','pushup','sneaky-ninja','aksdwi','msp-bidbot','jerrybanfield','moneymatchgaming','shares','yourwhale','minnowvotes','hellowhale','buildawhale','upmewhale','upme','allaz' ]
projectionA = {
'_id': 0,
'amount': 1,
'timestamp': 1,
'from':1,
'to':1}
```
---
### The fun part
This section defines the variable to be used in the iterations. Then it iterates through each of the bidbots, saving individual information (which I hope to use later), and then combining it in one file, which is what I use for this analysis.
---
```
bids=[]
fullDF=pd.DataFrame([])
for x in range(len(bidbots)):
print(bidbots[x])
bids=list(db.AccountOperations.find({'account':bidbots[x],'block':{'$gt': guess_block, '$lte':now_block_num},'type':'transfer','to':bidbots[x]},projection=projectionA))
bidsDF=pd.DataFrame(bids)
tempDF=pd.DataFrame([])
tempDF['bidAmount'] = bidsDF['amount'].apply(lambda x : dict(x))
bidsDF = bidsDF.drop('amount', axis=1)
Df3=tempDF['bidAmount'].apply(pd.Series)
result = pd.concat([bidsDF, Df3], axis=1)
print(result)
result.to_csv('bidbotanalysis_%s.csv' % bidbots[x], index=False)
fullDF=fullDF.append(result)
fullDF.to_csv('fullbidvot.csv', index=False)
```
---
## Results
We will show here that the value of SBD and STEEM does seem to have an effect on the use of bidbots, with higher values correlating with higher usage.
##### 6 Month Performance: The Big Picture

The 6-Month picture shows a very strong correlation between SBD & STEEM currency values and bidbot usage. We see the trend most strongly in December, with usage rising steadily as currency values increase. You may notice on this chart that there is a dip in usage around December 31st that directly correlates with the dip in price at the same time. The tail end of the chart shows usage decreasing steadily as confidence in the market drops off and prices fall.
##### 2 Month Performance: Recent History

This view shows a more detailed view of the past two months, which shows bidbot usage being less reactive to currency on a more minute scale. We still see fluctuations, with price decreases seeming to have more predictable impacts than increases. As the chart gets into mid-January, the lack of confidence might be potentially tied to the overall lack of confidence in the cryptocurrency market, but more data will be needed to determine if this is a factor. Another interesting trend to note is that STEEM usage does not seem to be as sensitive to price fluctuations as SBD. My hypothesis is that this is due to SBD being a more liquid asset, making it more likely in general to be used.
##### Historical Fluctuations: 8/15/2017-10/15/2017

On the 6-Month chart, you may have noticed some interesting fluctuations in usage between August and October of 2017. As you can see here, these fluctuations occur mainly with bidbot usage of STEEM specifically. As you may also notice, the price of STEEM during this time period fluctuated much more than that of SBD.
## Conclusion
### Price fluctuations *do* seem to affect bidding volume for upvote bots
While the volume is not as sensitive to prices on a micro scale (day-to-day), it seems that market price (at a macro level) is a reliable indicator of bidding trends.
#### Findings to explore going forward
- Volatility as an indicator of bidding activity
There may be a connection, based on the fluctuations seen in the historical chart in comparison with those seen in the last 2 months, between volatility and the type of currency that is most commonly used for bidding.
- Cryptocurrency market as a whole as an indicator of bidding activity
Declining activity this month seems to indicate that overall crypto market trends may impact bidding activities.
- Bidding as a speculative activity
It would be interesting, based on the findings of this analysis, to investigate large-sum bidding trends as investment activities.
<br /><hr/><em>Posted on <a href="https://utopian.io/utopian-io/@jaredcwillis/bidbot-usage-correlation-with-steem-and-sbd-prices">Utopian.io - Rewarding Open Source Contributors</a></em><hr/>