Read up!

As described in previous post I went back to the drawing board and redesigned my models. To get some inspiration and motivation I bough a few books and read them carefully. I did not anticipate to get complete “+110% ROI MEGA DELUXE MODELS” but my hope was to get some inspiration which I could use when creating my own models and strategies. The books I read were by James Butler and Joseph Buchdahl and I can certainly recommend them if you are into the game of betting .


“Programming for Betfair” & “Betfair trading techniques” by James Butler, “Squares & Sharps, Suckers & Sharks” by Joseph Buchdahl.

Some of the new things in my models would not have been there without these books, thanks James and Joseph!




A beautiful view!

Usually I only take a quick look at my bot once or twice a day to make sure that it is up and running. Often I just see a quite boring screen with no action, but when I looked yesterday I saw this:

Following 45 markets, with live bets on at least 13 of them. Most of them still being green at the end of the match, and a total exposure of around 36000 SEK. Did some reflecting yesterday: It would be impossible for me to manually trade all these markets, bot betting makes it possible for me to follow huge amount of markets and therefor it is also sufficient to only have a small edge to see some actual positive change on my bank. I calibrate my models to hit around ROI 101%, a target which I achieve because I have great data and I have excluded markets and situation when building my models. My models are niche models, and they are really good in their niche. I consider this to be the only possibility for me to build successful models, if I would try to model all markets and all live situations I would probably have a poor losing model (being an amateur with limitations in time and money I would be outperformed by the bigger syndicates).

If I were to give you a few tips how to be successful in your model building:

  1. Model one or few markets, and focus on a certain events/situations there.
  2. Settle with a low ROI, and maximize number of bets instead.
  3. Keep your costs low, don’t pay a lot of money for data, software or other. Your profit will vanish!



Evaluating my bot bets with hit-rate

During the last few weeks I have noticed a drop in turnover and especially in number of bets placed by my bot. Is my edge vanishing? What is the problem?!

To answer these questions I needed to create three KPI’s that describes how my models are performing in terms of generating bets and turnover; Hit-rate%, Try-rate% and Model%. I define them as:

Hit-rate = # Matched markets / # Potential markets
Try-rate = # Amt req markets / # Potential markets
Model-rate = # Potential markets / # Followed markets

The gross number of markets followed by the bot is labeled “Followed markets”, the number of markets that are within my risk appetite (meaning a betting situation can occur) is labeled “Potential markets”, “Amt req markets” are the number of markets where I asked for a bet and finally the “Matched markets” is the number of markets where I at least got a bet partially matched.

Plotting these KPI’s for the last couple of years:


From the above chart we can see at least three important things:

a. The difference between my Try-rate and Hit-rate is constant => I still get at least partially matched in 90 % of my bets.
b. There seem to be a lift in hit-rate/try-rate in January 2017, which is contrary to what my intuition says. A rise from around 10 % to 15 %, which can be explained by the new strategies I have added for 2017 (they are only tested with minimum stakes and therefor their presence is only visible here and not in turnover).
c. The Model-rate is also constant at around 85%, meaning that my risk appetite have the same impact in relative terms as previous years.

In the above chart we see the absolute number of markets followed and markets within my risk appetite. We can clearly see two things:

a. The cyclic nature of soccer markets, with many markets played in April and October and less markets in December/January/June.
b. The increase of markets followed by the bot during the last years, explained mainly by improving my code and therefor making it possible to follow more markets simultaneously.

From these two charts I conclude that the low in bets generated is simply a problem with few markets played. When a market is followed I still have the same probability to find a betting opportunity and the same probability to get a bet through. I am also positive surprised that the test strategies lifts my hit-rate from 10 % to 15 %, now I only hope that they also will deliver a ROI of +101%.



This is the fifth post in the following series:

1.Introduction to Logistic Regression
2.Setting up a model
3.Testing and optimising the model
4.Evaluating the model

Lets assume we have an implementable model. The implementation phase have shown many times to be a real challenge for me, small errors in the implemented model have generated huge miss-pricing in the model. Just as one example I accidental used betting stakes at 50% of my capital instead of 5%…. just a pure miracle that I didn’t empty my bank (instead it actually became very profitable by pure luck, but I strive to replace luck with skills :)).

To avoid problems and to discover errors I do :

– Lower the betting stakes on the new implemented model
– Cross reference the bets generated by the bot with simulated bets from another system
– Implement one model at a time
– Implementation phase limited to one day every quarter

The cross reference is done by running my model in both VB environment as well as SAS environment, the VB model executes the bets and the SAS model works as a reference. As soon as the calculations deviates I get notified.

When it comes to the betting stakes I currently run a normal model at 3% of my capital on each bet, a newly implemented model runs on 0.3% instead.

Down below you see a picture of my bot in action tonight at around 22.00. In a later post I will guide you through the structure and features of my bot. It is really cool!