The most common goals I've seen are:
- to learn a new tech: API / framework / language / etc.
- to build a random side project
- to solve a small personal pain point
- to begin to solve a larger problem that many people in the world experience (i.e., an idea with potential to become a startup) [1]
- just to win prizes
1: A lot of people think this is the only way to compete in a hackathon, or will go out of their way to present their product or idea as if it were a potential company, even if that's unrealistic. I don't think this is the best or only way to participate.
You could run the trades on a simulated network or just print out the trades and calculate when/if the bot can beat the market.
1: Much automated trading these days is very high frequency, on the order of milliseconds (https://www.technologyreview.com/s/416805/trading-shares-in-...).
This part about the best hackathons having no constraints is pretty baseless.
Every hackathon needs someone to pay for food / drinks / space / ideally prizes. Unless candidates cover this themselves (roughly Startup Weekend style), there will be sponsors. And sponsors do these events for marketing and exposure and sometimes feedback on their API. They will always want you to try their tech.
If there is a prize that requires using sponsor tech, it's almost always a smaller side prize vs. the main prize(s) for the event.
I think the best solutions build a sponsor's tech into another idea instead of being built around that tech itself.