Broadly speaking, my approach to Food Club is very similar to a Modern Portfolio Theory approach that you might encounter in an intro to Financial Economics. That is, we want to determine the sets that lie along the Efficient Frontier -- those that minimize variance for any given average return level. In order to achieve this, I wrote an algorithm that traverses the space of all sets and estimates the average return and variance of each.
Measure of risk
One important note here is that variance of returns is my measure of risk, which is different from most bettors, who instead look mostly at bust rate, partial rate, and profit rate to measure risk. Although the two measures of risk are often quite correlated, a variance-based risk measure tends to deprioritize bust/partial/profit rates on days with particularly bad or particularly good odds. For example, on bad days, you might have a very low-variance set that still has an exceedingly high partial rate, because a partial result may still be very close to the average return. On the flip side, on good days, you might have a set with a very low bust/partial rate, which nonetheless has exceedingly high variance because some of the possible winning results are very far from the average return.
Using variance has two main advantages. First, it is far easier to calculate and to reason about, which is important for my algorithmic approach. Using threshold-based risk measures would significantly slow down my algorithm, to the point of unusability. Second, safe bettors should care more about how much their long-term ROI can vary than about how many times they bust/partial/profit. Suppose that on average, you choose a set that has TER 18, so that you expect that in the long term, you should see an ROI of 1.8. But how long term is long term? After playing for one year, what is the chance that you get super unlucky and end the year with an ROI of 1.6? Or 1.4? Minimizing variance allows us to be confident that our ROI will quickly converge to our average TER. Furthermore, for sufficiently consistent strategies, we can even construct confidence intervals using variance. On the other hand, minimizing bust/partial chance only allows us to bust/partial less frequently, but doesn't actually inherently do anything for our long-term ROI.
Algorithm
My algorithm has many parts, which I'll attempt to summarize succinctly. In total, it is several thousand lines of Python, and it draws on techniques from statistics, machine learning, algorithms, and financial economics.
- Estimate closing odds - I have trained a statistical model using thousands of rounds of historical data to predict what the likelihood of each pirate ending the round at each particular odds will be. For example, on a particular day where Buck opens at 4:1 odds, my model will output what the chance is that Buck will close at 2:1 odds, the chance at 3:1, all the way up to 13:1. This is of course only an estimation, and not the true chances of each outcome. This estimation is important because it affects the payout we can expect when betting on this pirate.
- Estimate win probabilities - Likewise, I have trained a statistical model to predict what the likelihood of each pirate winning will be. For example, on a particular day where Federismo, Orvinn, Gooblah, and Dan are head-to-head in Shipwreck, my model will output what the chance is that each of the four pirates will win. Again, this is only an estimation. This estimation is useful for obvious reasons; we care how likely each pirate is to win.
- Calculate means and covariances - There are a total of 3,125 possible single bets on any given day. Using the outputs of the two models above, I calculate the average return of each single bet, as well as a covariance matrix between all pairs of bets. It's hard to explain why these are useful to a general audience; please contact me if you want to dig into the math!
- Construct efficient frontier - I traverse the space of all sets, starting from the set with the highest average return and walking in decreasing order of average return. I utilize the list of means from above in order to achieve this traversal. Then for each set, I use the covariance matrix from above to calculate the variance of the set, and thus construct the efficient frontier containing the lowest-variance sets at each average return level.
- Score sets along efficient frontier - For each of my four categories of sets, I have a scoring system designed to maximize ROI and minimize risk for a particular risk tolerance and time horizon. I use these four scoring systems to calculate four scores for each set along the efficient frontier. Then, for each of the four categories, I output the best set as determined by that category's scorer.
Performance
For some basic stats, you can check the boxes underneath each category in the Categories section. For a much more in-depth deep dive, please visit my FC Recaps page.
By nature, Food Club is an extremely high-variance game. When optimizing for high TER sets, standard deviation of returns will often be several times larger than the actual average return. As a result, when you evaluate the historical performance of dozens of bettors over several months, even if they all target similar TERs, their performances are bound to be scattered across a very wide normal distribution. In other words, bettors that overperform or underperform their TER can be attributed to luck rather than actually strong strategies. I would personally not be convinced that a bettor can systematically outperform their TER without a demonstration of the statistical system used.
As we know, the two standard safe bettors that have been playing for a long time (JKR and Garet) achieve around 1.8~1.9 ROI over the very long term. I would argue further that it is impossible to reliably achieve an ROI that is much higher than 1.9 over the long term. When deciding which bettor to follow, it is not very informative to look at how well they performed in the last few months. Even if a bettor has an ROI of 2.5, you should not expect to also achieve an ROI of 2.5 by following them for a month, or even a year.
Because of my strategy of minimizing variance, I do not hope to (and probably cannot) ever top the charts for historical performance. That is because the whole idea of minimizing variance is to minimize the effect that luck has on long-term performance. Even if I were to get a lucky stretch, there will always be several bettors with higher variance strategies that also hit lucky stretches and achieve higher ROIs in the short term. But on the flip side, even if I hit an unlucky stretch, I don't expect my ROI to slump far below my TER either. In other words, what I hope to provide to you with my sets is a similar long-term performance as the other popular bettors, but with more consistency, such that if you follow me, good months aren't that good, but bad months also aren't that bad.
Comments
Post a Comment