Weeks ending 24-07-16

After a slow start to the period (2 weeks), the UK dogs got into a good trend. The overall positive direction has continued from the restart in late June.

160724

The Aus markets are not doing as well. Looking back over previous charts there is noticeably more variance than on the UK dogs. I am going to respond to this by limiting the parameters before entering market. This will reduce my number of bets but hopefully increase profit (I have done a small amount of back checking to support this).

Aus160724

Testing stakes

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.

Some stats

Here are some stats from when I started in September 2015 to now.

Stats July 16

An overall PL/TV of 0.042%.

The number of markets my bot has monitored is probably double the amount it has traded in. Also the number of bets placed will by higher than those settled as I use a fill/kill.

Something else I was thinking about is how Betfair talk about the amount of money they match in events such as the Euros etc. When you place a £10 bet it is recorded as £20 matched, so including the opposite stake. My £600K would be £1,200,000, approximately. But this is done with a bank of a couple of hundred quid. So I wonder how much actual money is used to trade the millions on horses and football every week? Probably only a small proportion of the final “matched” figure.

Week ending 10-07-16

With the UK dogs restricted to higher volume markets, activity remains low compared to previous periods. Both markets ended positive with good ratios.

If trend is kept I’ll step the UK stake up to where it was previously. Currently it is just over £3 where it had been over £7.

160710

The Aus stake has climbed around 30%, due to profit, but still well below the point that caused the turnover charge warning. That was back in February, I’d planned to code around the events where the charge is applicable but haven’t yet.

Aus160710

Interesting test results

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.

My bot data

I was asked about my data here and here. This is the data I collect:-

MyDataExample

My bot collects data from each opening trade placed, attempted opening trade (unmatched) and when the market meets approx 90% criteria. The trigger includes a stoploss and tick-offset which are fired in response to the market so I don’t have any data relating to the point that they are placed.

I also record market suspension to help with analysis. I don’t record any other data about the market. If no trades are made in a market, I have no data.

The columns are as follows-

MyDataExample2

A = Market

B = Market ID

C = Time at last refresh

D = Seconds to off

E = Selection name

MyDataExample3

F thru Q = Best 3 back/lay prices (F,H,J,L,N,P) and volumes (G,I,K,M,O,Q)

MyDataExample4

R = Last price matched

S = Total matched for this selection

T = Trigger

U = My requested price

V = My stake

W = Total matched for this market

X = Timer output (time it takes for my code to run using excel’s timer)

The problem with data is how much is available. I’ve tried recording whole markets but you soon end up with megabytes of data that means nothing without refining. You first need an idea of what you want to find and then go about collecting the relevant data. For instance, I only record the data for my selection, not the other runners. You may only need data for the last 3 minutes before off, or only in-play, depending on how you want to trade. You could record prices in the morning and then at the off to look for trends. Without knowing what you want to target, data on its own is not much use. Because my data is so specific to my bot, it wont be any use to others without knowing the algorithm that picked it out.

EDIT:- below is a file of data recorded from one race. As Gruss passes the market to excel, I recorded each refresh to a sheet for each race. I only did it for a few days due to the size of the files. It’s about 280KB and taken from a day file which was 150MB in size.

recorded-data-to-share1

 

Week ending 03-07-16

Here are last weeks charts. Both performed well overall with similar mid week dips. The ratios are above average for both markets.

I’m going to leave the stakes as they are for now, having reduced them after previous losses. they are still a percentage of bank so will increase (or decrease) with balance.

Also, no US racing for now until I’m happy with dogs and Aus.

On a different note, these charts were produced automatically using VBA. The data is saved from Betfair in two files for each market and I’d been manually sorting, calculating and creating the chart. After a few hours learning some new techniques, I can download the P&L and History files, open the P&L and run a macro. Less than a second later and the chart is created, exported and saved in a separate file, ready for the blog. I really like automation .

160703

 

Aus160703

Weeks ending 26-06-16

My time is a bit limited with our new arrival (revealed here), which is why it’s been a month since my last results.

As I wasn’t keeping an eye on the bot, it went on a losing streak, hitting the minBalance level and stopped trading. Due to a coding error created after the previous error, Aus trading was also interrupted. After about a week of no trading, I finally noticed and restarted the Aus markets but left the  UK and US paused until I could look into any cause.

Having looked through all my data I can’t find any reason for the losses beyond “that’s what happens, win some, lose some”. Downward trends are to be expected as much as upward trends in the short term. I restarted the UK markets with reduced stakes at the beginning of the week. Time will tell.

160610

The trading that the Aus markets produced was below recent returns but positive.

Aus160623

I know why the US markets stopped trading before the others, the minBalance is set different and is auto adjusted periodically. However, this only auto adjusted upwards and didn’t cope with a loss just after adjustment – there wasn’t enough room to allow for regular losses and another error meant excel hit a run time error.

US160605