Well, inevitably, as Slayr continues to make steady profit I’ll keep posting results. Here’s November output. It’s at times like this that you wish you had bigger stakes on with two profitable months. I’m still not convinced it’s a long term winner, juggling it in my mind, risky with charts like this, but I’m only on for fractions, market capacity is there for loads more, even on Betdaq. That’s decided then, I’ll up stakes and not get involved if there’s a bit of a down move, leave it to play December.
Slayr is continuing and has been backing at low stakes since mid September. I haven’t really paid much attention to it, the data collected is not as illuminating as I’d hoped. Below is the chart for October. It finishes OK but the large ups and downs are not what I want to see from any strategy, it could so easily have ended at a loss.
The following two charts are modified from my results to show the outcome if I had been backing all along. They don’t account for the spread so the losses would be greater in reality.
With a new stoploss set, the bot will continue to run. I’m not sure how long for as I intend reviewing my whole setup in an attempt to set clear goals.
Edit: I know the name is derived from the fact it was a laying bot and now it’s backing. I’m not changing the name.
I’d said in a comment that I was likely to stop Slayr due to results and it was never meant to be a bot anyway (see here). However, in my usual “everything-takes-forever-to-do” mode of operation, it’s been left running. I’ve also adjusted stakes twice, raising both times, with my bank currently around where it started. Sitting at the computer listing my car on eBay, I soon drifted onto the betting and, after some time wrestling with the poor file format from Betdaq, I got this chart using a level stake and accounting for 5% commission –
Pleasantly surprised was my reaction. I will now change the stake, once more, to a percentage of bank and starting around the current level. I’ll also set the minimum balance stop to 1.5 times the down trend seen mid chart (as it’s the largest down run in this chart), approximately 14x stake.
I’ve been using a small stake of ￡0.10 to test Slayr. Betdaq charge 5% commission but round up, meaning I’m paying ￡0.01 or 10%. This could swing the strategy from win to lose. I’d be looking for a small overall profit margin on this type of bet so it’s important to get a realistic result from testing. I’ve increased the stake to ￡0.20 for testing.
After the initial run, the results have settled into a more regular pattern. It’s still only a small quantity of results and longterm I’d expect to see a slight downward drift overall.
The chart represents a lay strategy, however the initial 13 bets were actually backed. Following these results I switched to lay.
The title shows the average odds against actual results.
After 2 more loses yesterday (taking results to 1 win in 14 bets) using my simple bet code, I’ve decided to set it going alone whilst I work on the Bot 3 code. I’ve taken the (I think) wise decision to switch it to lay whilst still using the same indicators. I’m calling Bot 5 Slayr (Simple LAY Robot) purely for entertainment.
I’ve been recoding my horse racing form bot (Bot 3), trying to get it to work without errors. It scrapes a lot of data for each race – runner form, jockey form, track data, going, weather. Having got it to a point where it runs okay with me sat in front of it, I decided to run it live on the VPS but without placing bets, allowing performance and data collection checks. To keep things separate I’m running this on Betdaq with a slow refresh and, as I’ve not used it for a while, I’ve added a short section of code to place some pointless bets based on where the market odds are, nothing to do with the bots purpose but hopefully keeps the exchange happy.
The results so far are good and the bot is gathering most of the data without error. Any missing data isn’t causing the bot to stop, however, I’d like it to make multiple attempts to gather it, so some adjustments are needed. The algorithm for choosing a selection to back or lay is operational but requires refining. I’m basically calculating my own ‘betting forecast’ and backing or laying a selection depending on how far away from my suggested odds it is trading.
The interesting part comes from the short bet placement code I added. Of the 12 bets it placed over the five days testing, only 1 of the selections won. Obviously I’d backed them all.
My theory for this code was – if I place bets in efficient markets (which I thought close-to-off horse racing markets were), I will likely lose at a rate around my commission (5%) plus half the spread position. Therefore stakes of £0.1 are a small price for testing.
I know the small sample is hardly proof but with average odds of 3, none greater than 3.5 and results at 12, I’m going to keep this little code running to see how it pans out and update the blog on results. It will be interesting to find out if I just happened to drop into the strategy during a 10 long losing streak.
I don’t do serious betting on horses but have a dabble on some big events just for fun. I got Blaklion yesterday which was good. Anyway, I picked four today and had a multiples, done on Betdaq. I thought I’d see how much I’d get with Betfair, expecting it to be more. Look at the difference though, same selections. £68k Betdaq and £40k Betfair – don’t do multiples on Betfair!
After a lot of messing about I decided to start again with the data collecting code. I’d got to a point where there was so much going on with the array that I was hitting error after error. So I thought a fresh start was a good plan and go back to my first idea of just collecting the data for later analysis.
As mentioned previously there is a lot of data to collect. My solution is to create and name a new workSheet after a new event is selected, then record the data for that event to it’s own sheet. I wanted the sheet name to be relevant to me and as there is a limit to the number of characters that can be used, I chose the event start time as the sheet name. I grab this from the first cell as passed to excel. To prevent an error if there are two events with the same start time, my code checks to see if the sheet already exists before creating it. At the end of each day the event sheets are saved as a separate file and deleted from the bot, ready for the next day’s trading.
Another problem I came up against was how to paste an array to a sheet that isn’t active. I don’t want to activate a sheet, paste data then activate the main sheet as this is very slow. After some googling I found that, for example, .range(Cells(1, 1), Cells(10, 10)) is actually read as .range(ActiveSheet.Cells(1, 1), ActiveSheet.Cells(10, 10)). So I replaced the “ActiveSheet” bit with the sheet name I wanted. It works.
I want to do some more testing before I make this live as I’ve only tested on some Betdaq markets.
I’m also planning on adding a page to the blog to put code examples for different problems as I spend too much time searching for things I’ve used before but can’t remember. It might help others too.
Bot4 has been running on Betdaq for the purpose of testing. It was trading UK and IRE horse racing win markets. I’ve stopped it now as, in its current form, it isn’t looking profitable. Saying that, the chart I’ve produced (see below) shows a good level of consistency which I think can be worked on to turn a profit. I’m not going to set it going again with only minor changes, this is one that will definitely benefit from my planned data collection and optimization work.
Despite the loss, I am pleased with the level of activity on Betdaq and the close back lay prices, without this my bot wouldn’t trade. It suggests to me that Betdaq is more than a mirror of Betfair and that there is an alternative exchange to participate in. When I get round to upgrading and running Bot1, I’ll restart Bot4 with the same capabilities.