I've given this a little thought a few times. I'm not ready to fully investigate it yet, but here are my thoughts.
1) Time frame.
If you are a legit pattern day trader. No problem. However, if you have to deal with avoiding being labeled a pattern day trader and you have to comply with T+3, these facts have to strongly factor into a stop-loss strategy. You don't want to end up being penny-wise and pound-foolish. (Being stopped out to protect a small profit, only to miss the run up due to T+3 or pattern day trading restrictions.
2) Statistics.
With point #1 in mind, perhaps one can do a statistical analysis on the GDX price action to determine the "normal" price range, and act when prices are near/out-of said range. This can both lock in profits and stop losses.
3) Brute-force Simulations.
What I do with most things trading. This method would take a model that's already built and "re-run" it 100's/1,000's of times with different profit-taking and stop-loss settings. It would then report the settings that were most profitable.
4) Manually.
Simply Brute-forcing in slow motion, without the need for a trading system/model. Review previous trades. Do "what-if" scenarios with different stop settings. Keep a database of the results so that the next trade can be added to it, and the results then recalculated.