• The issue has been fixed and hopefully you can post screen shots again
  • Hi Guest Just in case you were not aware I wanted to highlight that you can now get a free 7 day trial of Horseracebase here.
    We have a lot of members who are existing users of Horseracebase so help is always available if needed, as well as dedicated section of the fourm here.
    Best Wishes
    AR

Horse Racing Data, Strategy, and AI Harnessing

View attachment 173197

A Ajit Whatever you already have will work.

Since we are on a horse racing forum, all data related to horse racing is fine.

On the screenshot, you can see a list of what I currently have, so it would be fine if you have something new, or if it's classic sources like Timeform or Racing Post that are now protected by Cloudflare Guard or Captcha, I simply haven't had time to reprogram for those yet.

My posts on this thread use three different data sources, but I would also like to extend my model using entirely new data.
I've sent you a message regarding timeform and racing post.

MY package is a private git repo. I don't mind select people tying in to it but I don't want to publish it on a free-to-view forum page obviously.
You will have to give me some time to map it to an api. I suppose ideally sending a pre-agreed json schema to the endpoint could resolve to the required output json but I don't have any thoughts at the moment as to what that might look like. Leave it with me.

It's php/python/javascript so json is the way to go if you're tied to F# or C# as seems to be the case.

edit: I haven't sent you a message in fact because I can't seem to work out how to do it.
 
1794142324549.png

Over the last few days, Dave Dave posted a series of posts about RaceIQ Explained, so I would like to show how I conduct initial research based on any post or idea found on the forum.

RaceIQ Explained, Part 1: Reading the Sectionals

First, I ask the AI to summarize the main ideas and goals, integrating my available data that the agentic bfexplorer app can retrieve for an AI. The AI then generates a system prompt that I execute, and if the idea proves promising, I proceed with testing. If the strategy appears profitable, the second step is assisted coding of the exact strategy on my trading platform.

Above is a screenshot of this initial prompt execution.
 
Thanks, A Ajit; no problem—please take your time.

What I wanted to present was a way to show how different systems can be integrated into a single working workflow.

For instance, many of you use Machine Learning and Python packages, but for quick tasks, we also utilize AutoML. In these cases, the integration is achieved through an exposed REST API that runs the ML model in Python using Flask.

The attached screenshot shows both code samples: the ML API server and the F# strategy consuming the API.

1794143940648.png
 
After reading the ELO Ratings post, and since I lacked a complete database of race results, I created my own variation strategy called "Form Trajectory."

Since RaceIQ data are mentioned in many posts, I have found a source and plan to implement the necessary data parsing.

I currently have five different strategies, and for each one, there are two variations of model probability calculations—that means I need to test ten different sets of data. I still don't have an ideal way to test them; right now, I just switch from one strategy to another every day.

Therefore, I really need a strategy dashboard app at least to check the profit variances across those ten strategies.
 
After reading the ELO Ratings post, and since I lacked a complete database of race results, I created my own variation strategy called "Form Trajectory."

Since RaceIQ data are mentioned in many posts, I have found a source and plan to implement the necessary data parsing.

I currently have five different strategies, and for each one, there are two variations of model probability calculations—that means I need to test ten different sets of data. I still don't have an ideal way to test them; right now, I just switch from one strategy to another every day.

Therefore, I really need a strategy dashboard app at least to check the profit variances across those ten strategies.
Let me know if I can help with the results problem
 
I've sent you a message regarding timeform and racing post.

MY package is a private git repo. I don't mind select people tying in to it but I don't want to publish it on a free-to-view forum page obviously.
You will have to give me some time to map it to an api. I suppose ideally sending a pre-agreed json schema to the endpoint could resolve to the required output json but I don't have any thoughts at the moment as to what that might look like. Leave it with me.

It's php/python/javascript so json is the way to go if you're tied to F# or C# as seems to be the case.

edit: I haven't sent you a message in fact because I can't seem to work out how to do it.
As a new member you cannot send messages to other members.
 
Here is a description of the fields in the data

If you are interested in how the various ML alogorithms work then Josh
Starmer has produced some excellent videos on Youtube. Simply go to Youtube
and in the search bar type in StatQuest Logistic Regression
-----------------------------------------
MODEL ABBREVIATIONS
GBM - Gradient Boosting Machine (classification)
LightGBM - LightGBM (classification)
NeuralNet - Neural Network (classification)
RandForest - Random Forest (classification)
RForestReg - Random Forest (regression)
HuberReg - Huber Regression (regression)
KNN - K Nearest Neighbor (classification)
AdaB - AdaBoost (classification)
LogRegr - Logistic Regression
NBay - Naive Bayes (classification)
GBMreg - Gradient Boosting Regression
LogGAM - Logistic Generative Model (classification)
LinGAM - Linear Generative Model (Regression)
XGBoost - Extreme Gradient Boosting (classification)
XGBReg - Extreme Gradient Boosting Regression
Voting - Combined ensemble voting predictions from your choice of models
histGBM - GBM classifier that bins feature values, faster than GBM
RidgeReg - Ridge Regression (regression)

TTDrift - Train Test Drift measure of TT distribution difference
-----------------------------------------
INPUT FEATURES
*** required with same name or other name if user supplying own data
raceId - Number identifying individal races ***
trackTimeDate - Useful for those that want to merge in own data
raceType - type of race eg Handicap
RTypeLTO - race type last time out
raceSex - Male only = 1 mixed = 2 female only = 3
track - track
year - year of race
month - month of year
week - week of year
raceClass - race class
raceDist - race distance
surface - Race surface eg turf
going - race going
raceValue - race win purse / 1000
draw - stall draw
drawValue - Value of draw at track and dist
runners - Number of runners in race
horse - horse name
weightDiff - top weight minus horse weight
OR - Official Rating
bestORDiff - Best win OR (turf/AW) minus todays OR
ORDiff - Difference between top OR in race
nat - horse nationality
avgBeat - Lifetime horses in front / horses behind
goingDiff - 1 means yes 0 means no from last race
goodRunGoing - On todays going previous good runs / runs
classMove - race class minus last race class
weightDiffLto - todays weight minus weight LTO
runnersPrev - number of runners in previous race
runnersRatio - runners in previous race / runners today
hgToday - wearing headgear in current race 1 = yes 0 = no
chgHg - change of headgear from last race 1 = yes 0 = no
hgFirst - First time headgear 1 = yes 0 = no
hgChanges - Count of headgear changes from all prev' runs
weight - horse weight / topweight
pdsBtnLto - how far beaten in last race in pounds
daysLto - days since last run
daySinceGR - days since last good run
prevLto - days between last run and previous run
age - horse age
prevRaces - Number of previous races for code ie Flat
exposure - Number of previous races / race average
hasPlacedTrack - has placed form at the track
trainer - trainer name
trSwitches - horse lifetime trainer switches
TRSR - Trainer strike rate at time of race (min 50 runs)
TRinrace - trainer strike rate (SR) / top TRSR in race
TRTrackPCent - trainer track wins / trainer track runs
TRrolling - rolling win & place SR, sample based on trainer runs
TRageRatio - SR% with this horse age / TR overall SR%
TRPrizeRatio - Trainer average win prize money / race prize
JockSR - Jockey SR at time of race (min 50 runs)
avgJockSR - Average Jock SR derived from all previous runs
avgJockRatio - ratio of this jock SR to all previous average SRs
jockRatio - this jock strike rate / previous jock strike rate
Jockinrace - Jock strike rate / top Jocksr in race
JockRolling - rolling win and place SR, roll based on jockey runs
SireSR - Sire strike rate at time of race
Sireinrace - sireSR / top sireSR in race
SireDistAge - % of placed runs at distance by sire for 2yo, 3yo+
SireSurf - placed runs on surface turf fibre poly / surf runs
DamSireSR - Dam sire strike rate at time of race
DamSireSurf - placed runs on surface turf fibre poly / surf runs
Sex - sex of horse eg g c f m
SexMF - sex M male F female
beatLTO1 - LTO runner count minus finPos / runner count
beatLTO2 - as above for second last run
beatLTO3 - as above for third last run
entries - number of 5 days entries for horse
jockSame - 1 if same jock to previous run 0 if not
jockMinus - 1 if jock SR% is less than last run jockey
distUp - 1 if race dist greater than last race dist 0 if not
distSame - 1 if same race dist to previous run 0 if not
goodRunRate - ratio of good runs to runs
preFinPos - All previous fin positions / Previous opponents
preFinPos3 - Last 3 fin positions / last 3 oppponents
prevBFSP - BFSP in last race
logPrevBF - natural log of chance according to last BFSP
BFSP - Betfair SP in this race ***
finClose - SeeHelp 1 if horse won or < rDist/10 lgths of winner
can be used as alternative to finPos as target to give more balanced data
do not use as an input feature
priceDrift - 1 if pre race average betfair price < BFSP
priceDriftRatio - BFSP / average betfair price
paceDiff - pace figure from last race minus pace from pelutimate
paceFig - RunStyle from last flat race 0 heldUp to 5.6 madeAll
avgRacePace - average race pace figure for this race
avgClassPace - average winning pace fig for handicap class
avgTrackWinPace - average track winn pace fig for handicaps
horseSize - average = 1 bigger horse > 1 smaller < 1
IPDropLTO - 1 if horse dropped below its BFSP in running LTO
IPDropPercent - % of horse IP Min < BFSP all prev races
dropLast3Avg - average of last 3 runs in running drop %
IPDrop20 - Alt' target (BFSP minus IPMin) / BFSP = 1 if >= 0.2
IPDrop40 - Alt' target (BFSP minus IPMin) / BFSP = 1 if >= 0.4
IPDrop60 - Alt' target (BFSP minus IPMin) / BFSP = 1 if >= 0.6
lgthsBtn - lengths behind winner or zero if won this race
pdsBtn - pounds behind winner,alternative target feature
finPosFull - full numeric finishing position
placed - 1 means horse placed,alternative target feature
IPReturn - finPos minus (1/BFSP) alternative target feat
finPos - 1 for winner 0 for loser ***
-----------------------------
MISSING DATA
Some fields may have missing rows eg daysLto if a horse has never run before
This is not unusual in Machine Learning problems. MySportsAI replaces missing
values or NaN's as they are called with the median for that column and that median is
applied going forward to test data and daily decs data. You can specify other
replacement methods eg mean if you wish.
-----------------------------
USING YOU OWN DEC'S
If you wish to run your model against your own daily runner declaration file you
can do this by
1. loading your saved model in MySportsAI
2. Click Run Model
3. For the supplied test file select your dec's file
4. Save test results
<a href = "Log In">More useful short videos</a>
 
MySportsAI MySportsAI How do your subscribers run different strategies automatically using your app?

Since you utilize ML models, every race requires input features for predictions; therefore, this entire process must be automated. I assume the bets are placed on Betfair Sportsbook Exchange—does your app handle that execution?
 
MySportsAI MySportsAI How do your subscribers run different strategies automatically using your app?

Since you utilize ML models, every race requires input features for predictions; therefore, this entire process must be automated. I assume the bets are placed on Betfair Sportsbook Exchange—does your app handle that execution?
The software does not automatically place bets for you, it allows you to build models and then run those models on todays data to produce probabilities/ratings. I personally automate my bet placements but that is using my own code and the Betfair API. I can possibly see where you are going with this and it makes perfect sense
 
The test of the 'Form Trajectory Strategy' yesterday went very wrong, so I had to switch to the 'Crowd Trade Strategy.'

However, I did manage to implement new data parsing code for RaceIQ. This now provides me with a significant amount of comprehensive data for any given race: race card details, horse performance metrics, and the last-race data for every participating horse—including their individual metrics and opponent data within the RaceIQ system.

Today, I need to read ELO rating posts and similar resources to gather ideas for my new data strategy.
 
The test of the 'Form Trajectory Strategy' yesterday went very wrong, so I had to switch to the 'Crowd Trade Strategy.'

However, I did manage to implement new data parsing code for RaceIQ. This now provides me with a significant amount of comprehensive data for any given race: race card details, horse performance metrics, and the last-race data for every participating horse—including their individual metrics and opponent data within the RaceIQ system.

Today, I need to read ELO rating posts and similar resources to gather ideas for my new data strategy.
You should consider different k values for different racecodes because they are all quite different.
Also, whilst predictive, Elo is not optimal for horse-racing without so much modification as to render it something else entirely. Elo was designed explicitly to measure outcomes featuring 2 participants.
 
Back
Top