This question has always bothered me, and I've never had a maths coach to guide me along the way and show me what to do next. Nevertheless, I did make top 50 nationally in my national mathematics olympiad after much hard work and learning obscure techniques and theorems of the type that would only come up on an olympiad (vieta jumping, muirhead's, and so on).
However, I still feel as if I can't solve hard problems. I can solve problems where a bit of working or checking of special cases leads the way (e.g. checking a few values and then inducting, or something similar; in fact, one of the problems I solved in the national olympiad I had seen before on artofproblemsolving), though I have never (except once or twice, on my really good days) been able to crack a hard IMO problem (say), where you need many steps to make progress.
It seems as if I can't do independent research for too long (a good skill to have with hard problems), so I cannot march into the unknown like some people do. It seems a god-given gift to be able to do this; many famous mathematicians and scientists have extremely insightful and elegent papers they wrote only when still teenagers, e.g. James Clerk Maxwell's "Oval curves" paper when he was 14, or Gauss's legendary investigations into number theory at just 19! I'm 18 now.
What can I do to become an explorer? I see IMO winners as magicians; they can paint beautiful pictures with the theorems that I know, whereas I can only use them in the prototypical situations. My background is slightly lacking in some areas, but I know this isn't what's holding me back (unless someone can convince me that learning new theorems will somehow increase my problem solving creativity, which I highly doubt).
I'm at a stage now where I need to decide between doing loads of problems that are above my head, and persevering even if I don't have any insight within hours, persevering until I discover a new method or technique by myself, and keep on doing it until I master problem solving. On the other hand, I can keep learning more new techniques and use THOSE to solve hard problems. I could also keep looking at solutions and giving up after only a few hours, until I accumulate a whole database of tricks and shortcuts which I can use to solve ever harder problems, without ever increasing my "natural" problem solving ability.
I don't want this. I want to feel like I am a master problem solver who can solve NEW problems that I have never seen anything like before.
Please help me decide what to do. Thanks!