You could develop a program like this, but the end result would be a fair odds line of YOUR OPINION OF THE RACE. The odds line that the program spits out is a direct function of the data you input, and the data to input is not always clear cut. Too often (like on every single horse), you have to make a decision as to what \"top\" to use--recent or lifetime, turf or dirt-- or which probability distribution to use (%top, %pair, %off, %x). Those decisions reflect your opinion.
I have toyed with this (more like \"obsessed over this\") for about 20 years now. I speak from experience. For a short period, a friend and I bet using the same simulation program. 9 times out of 10 we would land on a different set of key horses. The reason for the differences always boiled down to how we \"read\" the horses in question. Do you use the Turf top on a Turf race? Always? Do you use the 90+ trainer thoro-pattern for a layoff horse? What if it\'s a late 2yo and you feel the horse is ripe to explode off the layoff but the thoro-pattern for 90+ (which includes ALL AGES) does not really indicate that?
At the end of the day, whoever read the race right (OPINION) ended up cashing.
My point is that even with a magic black box, there will always be a human element to the handicapping game.
Good luck to you.