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.


  • Topics

  • Posts

    • Date: 29th March 2024. GBPUSD Analysis: The Pound Trades Higher But For How Long? The global Stocks Markets are closed due to Easter Friday (Good Friday). The NASDAQ continued to follow the sideways trend while other indices again rose. The SNP500 reaches an all-time high, but the NASDAQ remains under pressure from Tesla, Meta and Apple. The Euro continues to trade lower against all major currencies including the US Dollar, Euro and Japanese Yen. The British Pound is the best performing currency during this morning’s Asian session. However, investors are largely fixing their attention on this afternoon’s Core PCE Price Index. GBPUSD – The Pound Trades Higher but For How Long? The GBPUSD is slightly higher than the day’s open and is primary due to the Pound’s strong performance. At the moment, the British Pound is increasing in value against all major currencies. However, the US Dollar Index is also trading 0.10% higher and for this reason there is a slight conflict here. If investors wish to avoid this conflict, the EURUSD is a better option. This is because, the Euro depreciating against the whole currency market avoiding the “tug-of-war” scenario. The GBPUSD is trading slightly lower than the 2-month’s average price and is trading at 49.10 on the RSI. For this reason, the price of the exchange is at a “neutral” level and is signalling neither a buy nor a sell. The day’s price action and future signals are possibly likely to be triggered by this afternoon’s Core PCE Price Index. Analysts expect the Core PCE Price Index to read 0.3% which is slightly lower than the previous month but will result in the annual figure remaining at 2.85%. The PCE rate is different to the inflation rate and the Fed aims for a rate between 1.5% to 2.00%. Therefore, even if the annual rate remains at 2.85%, as analysts expect, it would be too high for the Fed. If the rate increases, even if only slightly, the US Dollar can again renew bullish momentum and the stock market can come under pressure. This includes the SNP500. Investors are focused on the publication of data on the UK’s gross domestic product (GDP) for the last quarter of 2023: the quarterly figures decreased by 0.3%, and 0.2% over the past 12-months. This confirms the state of a shallow recession and the need for stimulation. The data, combined with a cooling labor market and a steady decline in inflation, increase the likelihood that the Bank of England will soon begin interest rate cuts. In the latest meeting the Bank of England representatives did not see any members vote for a hike. USA500 – The SNP500 Rises to New Highs, But Cannot Hold Onto Gains! The price of the SNP500 rises to an all-time high, before correcting 0.33% and ending the day slightly lower than the open price. Nonetheless, the index performs better than the NASDAQ which came under pressure from Tesla, Meta and Apple which hold a higher weight compared to the SNP500. For the SNP500, these 3 stocks hold a weight of 9.25%, whereas the 3 stocks make up 14.63% of the NASDAQ. The SNP500 is also supported by ExxonMobil’s gains due to higher energy prices. The market will remain closed on Friday due to Easter. However, the market will reopen on Monday for the US and investors can expect high volatility. Investors will also need to take into consideration how the PCE Price Index and the changed value of the US Dollar is likely to affect the stock market next week. Always trade with strict risk management. Your capital is the single most important aspect of your trading business. Please note that times displayed based on local time zone and are from time of writing this report. Click HERE to access the full HFM Economic calendar. Want to learn to trade and analyse the markets? Join our webinars and get analysis and trading ideas combined with better understanding on how markets work. Click HERE to register for FREE! Click HERE to READ more Market news. Michalis Efthymiou Market Analyst HFMarkets Disclaimer: This material is provided as a general marketing communication for information purposes only and does not constitute an independent investment research. Nothing in this communication contains, or should be considered as containing, an investment advice or an investment recommendation or a solicitation for the purpose of buying or selling of any financial instrument. All information provided is gathered from reputable sources and any information containing an indication of past performance is not a guarantee or reliable indicator of future performance. Users acknowledge that any investment in FX and CFDs products is characterized by a certain degree of uncertainty and that any investment of this nature involves a high level of risk for which the users are solely responsible and liable. We assume no liability for any loss arising from any investment made based on the information provided in this communication. This communication must not be reproduced or further distributed without our prior written permission.
    • MT4 is good and will be good until their parent company keep updating the software, later mt4 users will have to switch to mt5.
    • $SOUN SoundHound AI stock at 5.91 support area , see https://stockconsultant.com/?SOUN
    • $ELEV Elevation Oncology stock bull flag breakout watch , see https://stockconsultant.com/?ELEV
    • $AVDX AvidXchange stock narrow range breakout watch above 13.32 , see https://stockconsultant.com/?AVDX
×
×
  • Create New...

Important Information

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