Jump to content

Welcome to the new Traders Laboratory! Please bear with us as we finish the migration over the next few days. If you find any issues, want to leave feedback, get in touch with us, or offer suggestions please post to the Support forum here.

  • Welcome Guests

    Welcome. You are currently viewing the forum as a guest which does not give you access to all the great features at Traders Laboratory such as interacting with members, access to all forums, downloading attachments, and eligibility to win free giveaways. Registration is fast, simple and absolutely free. Create a FREE Traders Laboratory account here.

cunparis

Is Optimizing Profit Target & Stop Loss Curve Fitting?

Recommended Posts

I took a price pattern I was trading manually and programmed it into a strategy using tradestation. It doesn't use any indicators, just price & volume. I then ran the optimizer on it and had it find the optimal profit target and stop loss.

 

My strategy report has almost 1k trades over the past 2 years. The profit factor is 1.90. Drawdown is acceptable (less than 10% of the gross profit).

 

I'm curious if this is considered "curve fitting"? In the past I've written strategies using indicators and they worked for a month or two and then died. So now I'm focusing on price and volume and I'm avoiding indicators. But I still like to optimize for the target & stop loss.

 

Looking for experience here. Thanks.

Share this post


Link to post
Share on other sites

It could be argued any optimisation is curve fitting as part performance is never indicative of future performances.... etc;

 

I think by working out the averages, and best TP and stops then it just gives you an idea of what to expect. It seems all you have done is work out the best to expect.

 

However from what I have read, and learnt myself on the subject, I could suggest you look at the instances that constitute the outliers either side of the analysis, and try and work out what causes the bigger winners, and the losers. This might give you a better idea.:2c:

 

I am sure others will give more specific replies.

Share this post


Link to post
Share on other sites
It could be argued any optimisation is curve fitting as part performance is never indicative of future performances.... etc;

 

I think by working out the averages, and best TP and stops then it just gives you an idea of what to expect. It seems all you have done is work out the best to expect.

 

However from what I have read, and learnt myself on the subject, I could suggest you look at the instances that constitute the outliers either side of the analysis, and try and work out what causes the bigger winners, and the losers. This might give you a better idea.:2c:

 

I am sure others will give more specific replies.

 

Hi, thank you for your reply. I agree about the past & future. I guess I am betting that it "won't stop tomorrow". ;)

 

Yes, it's about what to expect on the target & stop side. The reason this could stop working is due to volatility. What if the moves get bigger and the stop is hit more often? or the volatility contracts and the moves get smaller and the target is not hit?

 

I've tried using range based targets and stops but I haven't found anything nearly as profitable as constant target and stop targets.

 

there aren't really any outliers. It either hits the target or the stop, so all the wins are the same size and all the losses are the same. that's what I like about it, it's really simple. I think I can do better trading the price pattern manually, mainly cause I can exit with a small profit instead of taking a loss, but I like the idea of automating it so that I can do discretionary trading with other methods.

Share this post


Link to post
Share on other sites

If you just optimised using $ values then you are getting an "average" OK value for the ranges of volatility during those 2 years.

 

If instead of using $ values, you used something else - not an indicator - so that the changes in volatility would not impact you, you would have something more robust.

Share this post


Link to post
Share on other sites

Any optimization is a curve fitting, if is done without forward testing.

 

Never base your profit target on fixed amount, because the bars range change every day, every month and every year - they are different in size.

By optimizing, you are trying to find best values, but those values may be on the edge of the bars, so simply speaking, is better to be out, than miss big profits,

when last bar range were big enough to take $1500 instead of $500.

 

You can add a condition, that if the possible profit factor is less than your stop * 2, then do not take the trade.

 

Luk

Share this post


Link to post
Share on other sites
Any optimization is a curve fitting, if is done without forward testing.

 

Never base your profit target on fixed amount, because the bars range change every day, every month and every year - they are different in size.

 

I forward tested it like this: I reran the optimization up until 3 months ago. I then took these values and tested them for the next 3 months. Results were similar. in fact the optimal values for target & stop for the period up until 3 months ago and the period including the past 3 months are the same.

 

I'm optimizing with 1.5 years of data. Prior to that the optimal values are different. In mid-2007 the markets become more volatile.

 

can you suggest a way to not use fixed amounts? I've tried using percentages of the daily range but that did not work as well as the fixed amounts.

 

Thanks

Share this post


Link to post
Share on other sites

It might be that the markets participants react to point moves rather than average ranges (which is one of the ways of making it more self-adaptive).

 

I've found that it is often better to know what is potentially "wrong" with your system and fix it as you go along. You might run a series of optimizations every two weeks and when you get significant variation you adjust your parameters (or something - perhaps you spend some time figuring out why it has changed).

Share this post


Link to post
Share on other sites

You can use the support and resistance as first exit.

 

Second exit you can make by taking w. average range for 100 days and multiple it by 1.5 or something like that if the stop is too small, and profit target multiply by 5. This way, the stop and profit will adopt to the changing market.

Share this post


Link to post
Share on other sites

After doing lots of testing and running the optimizer to find the idea stop & target, both as a percentage of the average daily range and as a fixed percentage of the amount invested, my conclusion is that the fixed stop & target works much better.

 

I agree using S/R levels would be good but I'm working on an automated strategy and determining the S/R levels programmatically isn't easy to do.

5aa70fc2c803a_ecusingpercentofrange.png.4a24ee45d15b1ba04594818f79043696.png

5aa70fc2cd373_ecusingfixedtargets.png.db84675fcb5177c1a2007068fc1cc95b.png

Share this post


Link to post
Share on other sites

Tto find support and resistance, you can use someting like that:

 

 


vars: 	 Support	    (0), 
 Resistance   (0);


Resistance = highest(H,Length)[1];
Support 	 = lowest(l,Length)[1];


if Resistance<>Resistance[1] 	then Resistance = highest(h,Length)[1];
if Resistance=Resistance[1] 	then Resistance = Resistance[1];

If Support<>Support[1] 	then Support = lowest(l,Length)[1];
if Support=Support[1] 	then Support = Support[1];

Share this post


Link to post
Share on other sites

To find SR you can use something like this:

 


vars: 	Support	 (0), 
Resistance (0);


Resistance  = highest(H,Length)[1];
Support = lowest(l,Length)[1];


if Resistance<>Resistance[1] 	then Resistance = highest(h,Length)[1];
if Resistance=Resistance[1] 	then Resistance = Resistance[1];

If Support<>Support[1] 	then Support = lowest(l,Length)[1];
if Support=Support[1] then Support = Support[1];

Share this post


Link to post
Share on other sites

 

I agree using S/R levels would be good but I'm working on an automated strategy and determining the S/R levels programmatically isn't easy to do.

 

The way it is generally done is detect swings and store them, see if you get N within a user definable proximity. It is not too daunting and results can be 'not bad'.

Share this post


Link to post
Share on other sites
I took a price pattern I was trading manually and programmed it into a strategy using tradestation. It doesn't use any indicators, just price & volume. I then ran the optimizer on it and had it find the optimal profit target and stop loss.

 

My strategy report has almost 1k trades over the past 2 years. The profit factor is 1.90. Drawdown is acceptable (less than 10% of the gross profit).

 

I'm curious if this is considered "curve fitting"? In the past I've written strategies using indicators and they worked for a month or two and then died. So now I'm focusing on price and volume and I'm avoiding indicators. But I still like to optimize for the target & stop loss.

 

Looking for experience here. Thanks.

 

You probably (definitely) want to test out of sample. Probably wise to pick different market conditions for that out of sample data. Intuitively the results will vary with volatility....the best settings for 10 point days is likely to be different to 30 point days.

Share this post


Link to post
Share on other sites
You probably (definitely) want to test out of sample. Probably wise to pick different market conditions for that out of sample data. Intuitively the results will vary with volatility....the best settings for 10 point days is likely to be different to 30 point days.

 

This pattern only seems to work in current market conditions. I've tried on 10+ different stocks and it seems to work well on 3 of them and the rest are profitable but not worth trading. So it seems to work on a certain type of stock.

 

I have no doubt that if market conditions change that it'll probably stop working. I've done some forward testing by reserving the past 3 months and excluding them from the optimization & backtests. it forward tests fine so I'm sure I'm not curve fitting.

 

My plan is to trade this, first on sim, and then with a small amount (say $100 risk) and then slowly increase the position size. If I get a behavior that's inconsistent with the past then I'll re-optimize for the most recent 6 months or so and compare the optimal results. If a slightly smaller target or bigger stop is needed then I can make that decision. any change in market conditions should be gradual so I think it won't just stop working right away (like it would if curve fitting indicator parameters). Plus running the strategy on a basket of 3 stocks will help to spread the risk and detect any problems.

 

The strategy is profitable with SPY but not as profitable as some of the stocks but it's good to know it works with SPY that makes me more confident.

 

It's all pretty exciting. I gave up automation a year ago but that was because I was using indicators. Now that I'm indicator free things make a lot more sense and I feel it's more robust.

 

Thanks for the tips on the S&R, I'll try to code that up and see if I can improve results.

Share this post


Link to post
Share on other sites
Now that I'm indicator free things make a lot more sense and I feel it's more robust.

.

 

I dont want to make any judgements but Its amazing how often I hear that.

 

Also there is nothing wrong with a pattern that works well in one particular type of market.

bear, bull and range bound markets do trade differently. You just need to know when to turn them on or off.

Share this post


Link to post
Share on other sites
I dont want to make any judgements but Its amazing how often I hear that.

 

Also there is nothing wrong with a pattern that works well in one particular type of market.

bear, bull and range bound markets do trade differently. You just need to know when to turn them on or off.

 

The problem is I don't know exactly what type of market is making this work. I'm still trying to figure it out but I really can't explain the drawdowns or the fact that it started working towards the end of 2007.

 

this isn't the first time i've had a strategy not work before mid to end 2007 and then work well after that (even curve fitting). i guess that's when they became more volatile.

Share this post


Link to post
Share on other sites
The way it is generally done is detect swings and store them, see if you get N within a user definable proximity. It is not too daunting and results can be 'not bad'.

 

Could you post an easy example that work please?

 

Is it possible to built something that search it in different time frame?

 

Regards

Share this post


Link to post
Share on other sites
cunparis,

which price pattern are u trading ? maybe we can forward test it with u. u don't have to give the EA, i will make one from scratch and try different options.

 

Sorry I missed this before. I actually programmed this for another trader so I prefer not to talk about the specific pattern.

 

To update the thread, my strategy is currently in drawdown. I don't think this is due to curve fitting but rather a change in the market. I believe this because I started forward testing in early december and it worked great and then I started trading with real money and it continued. However sometime in January it started failing miserably and had a drawdown bigger than any it had experienced before. I pulled the plug in January and ended up breakeven. Had I started in January I would have lost a lot, as I ended up giving back what I made in December.

 

I'm now monitoring it and when the equity curve makes a new high I'll consider trading it again. It has to prove it can make it out of the biggest drawdown.

Share this post


Link to post
Share on other sites

Here is how I differentiate optimization vs curve fitting, regardless of the input parameter being used:

 

Curve fitting is when the output achieves a maximized output as a result, with no other considerations.

 

Optimization is when the output follows a bell curve around the increments above and below the optimized input value.

 

For instance: I recently tested a strategy that produced max profit when the profit target was 12 ticks. However, looking at the results both above and below that target value did not produce a 'rolling off' of the optimized output. Therefore, the 12 tick target in this can be considered 'curve fitting.'

 

On the other hand, if my tested input target values were: 10,11,12,13,14 ticks profit, and the output results, respectively, were: 800,900,1000,900,800 then it is far more likely that curve fitting is not what I was doing.

Share this post


Link to post
Share on other sites

it seems to me that curve fitting is what exactly you were doing Uli. You fitted taget parameter into past market action.

 

To answer the original question - if Cunparis optimised function F(target, volatility) then it will be NOT curve fitting...

 

Running a strat bare with different targets is curve fitting.

Share this post


Link to post
Share on other sites
if Cunparis optimised function F(target, volatility) then it will be NOT curve fitting...
Because presumably it will work on many market modes and conditions automatically.

Share this post


Link to post
Share on other sites
I see that no updates were posted since a lot of time. I'd be curious to know how cunparis' strategy did in the next months.

 

It didn't work. :evil tongue:

 

The answer is yes optimizing profit target & stop loss is curve fitting, at least to an extent. If the stop and target are just random numbers that are optimized then it's curve fitting.

 

I'm now working on a semi-automated strategy. I put in my levels and the basic idea and my strategy picks entries & stop loss. Since it uses my levels which are done manually, there is no backtesting and so no optimization. I've only been doing it for a few weeks and I'm working out little bugs but so far I'm encouraged. Market action wasn't great the past few weeks and I only run it the last 3 hours of the trading session so it'll take a while longer to get enough data.

 

So if anyone is interested in automation.. I do not believe it's possible. The markets change. high volatility, low volatility, trend days, balanced days, etc. I've never seen anyone have a successful automated strategy long term, at least without massive drawdowns that would cause most to pull the plug. I think the best route is to give up trading, but if that's not an option, it's best to learn to trade manually and then look to automate parts of the trading slowly.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.