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

    • TDUP ThredUp stock, watch for a top of range breakout above 2.94 at https://stockconsultant.com/?TDUP
    • TDUP ThredUp stock, watch for a top of range breakout above 2.94 at https://stockconsultant.com/?TDUP
    • NFLX Netflix stock watch, local support and resistance areas at 838.12 and 880.5 at https://stockconsultant.com/?NFLX
    • Date: 8th April 2025.   Markets Rebound Cautiously as US-China Tariff Tensions Deepen     Global markets staged a tentative recovery on Tuesday following a wave of volatility sparked by escalating trade tensions between the United States and China. The Asia-Pacific region showed signs of stability after a chaotic start to the week—though some pockets remained under pressure. Taiwan’s Taiex dropped 4.4%, dragged lower by losses in tech heavyweight TSMC. The world’s largest chipmaker fell another 4% on Tuesday and has now slumped 13.5% since April 2, when US President Donald Trump first unveiled what he called ‘Liberation Day’ tariffs.   However, broader sentiment across the region turned more positive, with several markets rebounding sharply after Monday’s dramatic sell-offs. Japan’s Nikkei 225 surged over 6% in early trading, rebounding from an 18-month low. South Korea’s Kospi rose marginally, and Australia’s ASX 200 gained 1.9%, driven by strength in mining stocks. Hong Kong’s Hang Seng rose 1.6%, though still far from recovering from Monday’s 13.2% crash—its worst day since the 1997 Asian financial crisis. China’s Shanghai Composite added 0.9%.   In Europe, DAX and FTSE 100 are up more than 1% in opening trade. EU Commission President von der Leyen repeated yesterday that the EU had offered reciprocal zero tariffs on manufactured goods previously and continues to stand by that offer. Others are also trying again to talk to Trump to get some sort of agreement that limits the impact.   Much of the rally appeared to be driven by dip-buying, as well as hopes that the intensifying trade war could still be defused through negotiations.   China Strikes Back: ‘We Will Fight to the End’   Tensions reached a boiling point after Trump threatened to impose an additional 50% tariff on all Chinese imports unless Beijing rolled back its retaliatory measures by April 8. ‘If China does not withdraw its 34% increase above their already long-term trading abuses by tomorrow... the United States will impose additional tariffs on China of 50%,’ Trump declared on social media.   If implemented, the new tariffs would bring total US duties on Chinese goods to a staggering 124%, factoring in the existing 20%, the 34% recently announced, and the proposed 50%.   In response, China’s Ministry of Commerce issued a stern warning, stating: ‘The US threat to escalate tariffs is a mistake on top of a mistake... If the US insists on its own way, China will fight to the end.’ The ministry also called for equal and respectful dialogue, though signs of compromise on either side remain scarce.   Beijing acted quickly to contain a market fallout. State funds intervened to support equities, and the People’s Bank of China set the yuan fixing at its weakest level since September 2023 to boost export competitiveness. Additionally, five-year interest rate swaps in China fell to their lowest levels since 2020, indicating potential for further monetary easing.   Trump Talks Tough on EU Too   Trump’s hardline approach extended beyond China. Speaking at a press conference, he rejected the European Union’s offer to eliminate tariffs on cars and industrial goods, accusing the bloc of ‘being very bad to us.’ He insisted that Europe would need to source its energy from the US, claiming the US could ‘knock off $350 billion in one week.’   The EU, meanwhile, backed away from a proposed 50% retaliatory tariff on American whiskey, opting instead for 25% duties on selected US goods in response to Trump’s steel and aluminium tariffs.     Volatile Wall Street Adds to the Drama   Wall Street experienced wild swings on Monday as investors processed the rapidly evolving trade conflict. The S&P 500 briefly fell 4.7% before rebounding 3.4%, nearly erasing its losses in what could have been its biggest one-day jump in years—if it had held. The Dow Jones Industrial Average sank by as much as 1,700 points early in the day but later climbed nearly 900 points before closing 349 points lower, down 0.9%. The Nasdaq ended up 0.1%.   The brief rally was fueled by a false rumour that Trump was considering a 90-day pause on tariffs—rumours that the White House quickly labelled ‘fake news.’ The market's sharp reaction underscored how desperate investors are for any sign that tensions might ease.   Oil Markets in Focus: Goldman Sachs Revises Forecasts   Crude prices also reflected the uncertainty, with US crude briefly dipping below $60 per barrel for the first time since 2021. As of early Tuesday, Brent crude was trading at $64.72, while WTI hovered around $61.26.   Goldman Sachs, in a note dated April 7, lowered its average price forecasts for Brent and WTI through 2025 and 2026, citing mounting recession risks and the potential for higher-than-expected supply from OPEC+.       Under a base-case scenario where the US avoids a recession and tariffs are reduced significantly before the April 9 implementation date, Goldman sees Brent at $62 per barrel and WTI at $58 by December 2025. These figures fall further to $55 and $51, respectively, by the end of 2026. This outlook also assumes moderate output increases from eight OPEC+ countries, with incremental boosts of 130,000–140,000 barrels per day in June and July.   However, should the US slip into a typical recession and OPEC production aligns with the bank’s baseline assumptions, Brent could retreat to $58 by the end of this year and to $50 by December 2026.   In a more bearish scenario involving a global GDP slowdown and no change to OPEC+ output levels, Brent prices might fall to $54 by year-end and $45 by late 2026. The most extreme projection—based on a simultaneous economic downturn and a full reversal of OPEC+ production cuts—would see Brent plunge to below $40 per barrel by the end of 2026.   Goldman noted that oil prices could outperform forecasts significantly if there was a dramatic shift in tariff policy and a surprise in global demand recovery.   Cautious Optimism, But Warnings Persist   With both Washington and Beijing showing no signs of backing down, markets are likely to remain volatile in the days ahead. Investors now turn their attention to upcoming trade meetings and policy decisions, hoping for clarity in what has become one of the most unpredictable trading environments in recent years.   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 of how markets work. Click HERE to register for FREE!   Click HERE to READ more Market news.   Andria Pichidi 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 Leveraged 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.
    • CVNA Carvana stock watch, rebound to 166.56 support area at https://stockconsultant.com/?CVNA
×
×
  • Create New...

Important Information

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