trading strategies and money management discussion, code, results

Moderator: moderators

daedalus
rank: <50 posts
Posts: 17
Joined: Thu Jul 12, 2007 6:07 pm
Reputation: 0
Gender:
One thing I make sure I NEVER do is scale out of trades. Its sounds good in theory, and feels even better in practice, but it doesn't hold up in profit area as far as i'm concerned. A lot of traders will scale out and continue to do so because it makes them feel as though they have won their trade before they actually have.

The problem with scaling out is eventually you're going to be flat out wrong on a trade and not get to your first scale out price level. You'll be out for your initial stop on all your contracts and that is going to be a devastating blow to your account because all of your winning trades you've taken less and less profit off the table than you would've holding all of your contracts.

The Math (as proposed by my Trade Mentor):

50% Win Ratio Using Two Contracts
Two ES contracts: 50% win ratio
+4pt profit target = both contracts: \$400
-2pt initial stop = both contracts: (\$200)

Two ES contracts: 50% win ratio
+2pt profit target = one contract: \$100
+4pt profit target = one contract: \$200
-2pt initial stop = both contracts: (\$200)

We easily see that scaling out of trades at different stages results in worse performance than the straight exit strategy.

===

50% Win Ratio Using Four Contracts
Four ES contracts: 50% win ratio
+4pt profit target = all contracts: \$800
-2pt initial stop = all contracts: (\$400)

Four ES contracts: 50% win ratio
+2pt profit target = two contracts: \$200
+3pt profit target = one contract: \$150
+4pt profit target = one contract: \$200
-2pt initial stop = all contracts: (\$400)

The result of scaling out of trades is much worse in this scenario.

In each case the straight exit produces better results than scaling out. We see results fared even worse than the simpler two-stage exit profiled earlier. This time, the overall expected results went from one-half to roughly one-third of a straight exit at the expected profit target.

Perhaps that's just an anomaly for systems or methods with a 50% correct profit expectancy. Maybe results are far different when it comes to trading methods with a higher percentage of accuracy?

80% Win Ratio Using Two Contracts
Two ES contracts: 80% win ratio
+4pt profit target = both contracts: \$400
-2pt initial stop = both contracts: (\$200)
Average profit x eight winning trades: \$3,200
Net loss x two losing trades: (\$400)

Two ES contracts: 80% win ratio
+2pt profit target = one contract: \$100
+4pt profit target = one contract \$200
-2pt initial stop = both contracts (\$200)
Average profit per eight winning trades: \$2,400
Net loss per two losing trade: (\$400)

Four ES contracts: 80% win ratio
+4pt profit target = all contracts: \$800
-2pt initial stop = all contracts: (\$400) net
Average profit per eight winning trades: \$6,400
Average loss per one losing trade: (\$800)

Four ES contracts: 80% win ratio
+2pt profit target = two contracts: \$200
+3pt profit target = one contract: \$150
+4pt profit target = one contract \$200
-2pt initial stop = all contracts (\$400)
Average profit per eight winning trades = \$4,400
Average loss per two losing trades: (\$800)

Scaling out exit tactics with high % win achieved are nearer the straight exit results than examples in 50% accuracy methods, but still inferior. Worse yet are the standardized results for traders who are working too hard at getting out of performing trades in stages for too little net gains.

Is there any reason to use partial-profit exits? Perhaps the true magic of this approach lies in systems or methods with less than a 50% correct profit expectancy? Care to guess how those raw data results might calculate?

Two ES contracts: 40% win ratio
+4pt profit target = both contracts: \$400
-2pt initial stop = both contracts: (\$200) net
Average profit per four winning trades: \$1,600
Average loss per six losing trades: (\$1,200)

===

Two ES contracts: 40% win ratio
+2pt profit target = one contract: \$100
+4pt profit target = one contract \$200
-2pt initial stop = both contracts (\$200) net
Average profit per four winning trades: \$1,200
Average loss per six losing trades: (\$1,200)

===

Four ES contracts: 40% win ratio
+4pt profit target = all contracts: \$800
-2pt initial stop = all contracts: (\$400) net
Average profit per four winning trades: (\$3,200)
Average loss per six losing trades: (\$2,400)

Four ES contracts: 40% win ratio
+2pt profit target = two contracts: \$200
+3pt profit target = one contract: \$150
+4pt profit target = one contract \$200
-2pt initial stop = all contracts (\$400)
Average profit per four winning trades: \$2,200
Average loss per six losing trade: (\$2,400)

These results are the worst by far. Why? The reason is simple: maximum profits are essential to overcoming the greater net percentage of unprofitable trades. Cutting profits short in a system or method that wins less than 50% of the time will actually accelerate losses. The worst possible scenario is a multiple-contract trading approach based on a strategy of partial profit exit levels.

Personally I've been using -2pt ES initial stops, break even after +2, and picking full exits using some discretion based on time of day, current chart pattern, and the rules I adhere to in my trading methodology.

dbw451
rank: 50+ posts
Posts: 50
Joined: Sun Jul 22, 2007 9:45 pm
Reputation: 0
Gender:
4x=0,

I don't know of good ways to streamline the management of stops. Price movement and structure is dynamic and I constantly analyze what is currently going on and manage my stops based on how I percieve the current price movement.

By 'fixed number', I thought your analysis was being done by always using 65 pips as your TP2 rather than set by current price structure.

Regards,

David

dbw451
rank: 50+ posts
Posts: 50
Joined: Sun Jul 22, 2007 9:45 pm
Reputation: 0
Gender:
daedalus,

Thanks for sharing thoughts and providing calculations to back them up. Through backtesting, I've found some systems do work best with a single target. However for other systems, particularly systems that try to catch trends, multiple targets can provide better overall system profitability with lower risk.

Your calculations assume that system probabilities are the same for all targets. In reality, this is never true. Using your 50% system example, a 4 point target is reached 50% of the time. However a 3 point target would be reached more than 50% of the time and a 2 point target would be reached an even greater percentage of the time. Rather than average trade profit, system expectancy is a better system comparison metric. System expectancy is:

Exp = (probability of wins) * (amount won) - (probability of loss) * (amount loss)

So let's assume my system is as follows:

50% - probability of hitting 4 points (50% prob of loss)
65% - probability of hitting 3 points (35% prob of loss)
80% - probability of hitting 2 points (20% prob of loss)
2 point stop

My system expectancy for a single target at 4 points for 4 contracts would be:

Exp = (0.5 * 4 contracts * (4 pts * \$50)) - (0.5 * 4 contracts * (2 pts * \$50))
Exp = \$400 - \$200

Now if I scale out with 2 contracts at 2 pts and 1 contract at 3 and 4 points using the above probabilities, my system expectancy would be:

For 2 point profit target (2 contracts):

Exp = (0.8 * 2 * (2 *\$50)) - (0.2 * 2 * (2 * \$50))
Exp = \$160 - \$40
Exp = \$120

For 3 point profit target (1 contract):

Exp = (0.65 * 1 * (3 * \$50)) - (0.35 * 1 * (3 * \$50))
Exp = \$97.5 - \$52.5
Exp = \$45

For 4 point profit target (1 contract):

Exp = (0.50 * 1 * (4 * \$50)) - (0.50 * 1 * (4 * \$50))
Exp = \$100 - \$50
Exp = \$50

Total system expectancy would be the sum of the above expectancies:

Total Exp = \$120 + \$45 + \$50
Total Exp = \$215 per trade

For this totally hypothetical system, the expectancy of \$215 per trade is better than the single target system of \$200 per trade.

Hopefully all my math is correct and you can see that is is possible for scaling out to outperform a single target system.

As a final note, scaling out frees up capital which in some cases allows additional scale-in trades to be taken.

Just food for thought...

Regards,

David

vittorio
rank: <50 posts
Posts: 39
Joined: Thu Feb 15, 2007 4:09 pm
Reputation: 0
Location: Italy
Gender:
Just food for thought...

Regards,

David

Thank you for the information David.
Just curios what tool do you use for backtesting ?

dbw451
rank: 50+ posts
Posts: 50
Joined: Sun Jul 22, 2007 9:45 pm
Reputation: 0
Gender:
Hi vittorio,

I use AmiBroker Pro for backtesting. I started with MetaStock many years ago. Then I purchased Tradestation (before they became a broker) and tried to write and backtest systems without much success.

Then I tried AmiBroker. The AB formula language is basically C. It's speed must be at least 10x TradeStation Easy Language. Once I started using AmiBroker, I realized I had wasted a lot of money on the TradeStation license (the hardware dongle is sits on the back of my old NT computer).

I've used almost every major charting package and most are the best at something. I keep coming back to AmiBroker for backtesting because I am comfortable with the programming language and I have not seen anything that beats it's speed (especially for the price). I've written a few plug-in DLL functions in C++ and I've come to realize that the native AB language executes nearly as fast.

Regards,

David

dbw451
rank: 50+ posts
Posts: 50
Joined: Sun Jul 22, 2007 9:45 pm
Reputation: 0
Gender:
4x=0,

What are basket orders? is this something I could use to automatically cancel/replace specific orders when price reaches x price?

A basket is simply a predefined group of securities with defined number of shares or contracts that can be traded together as a group. Thus when you go long on a basket of stocks, the order entry software automatically purchases all the securities with their defined proportions in the basket. This would not help with automatically canceling or replacing orders.

A bracket order is what I use to automatically place a stop and targets the instant a position is opened. Order entry software sends a bracket order as an OCA (one cancels all) order which is actually two or more limit orders; one set of orders for the stop(s) and one or more orders for the target(s). If either the target or stop is hit, the cooresponding OCA limit orders are automatically canceled.

Regards,

David

4x=0
rank: 150+ posts
Posts: 410
Joined: Tue Oct 17, 2006 10:53 pm
Reputation: 0
Gender:
dbw451 wrote:A basket is simply a predefined group of securities with defined number of shares or contracts that can be traded together as a group. Thus when you go long on a basket of stocks, the order entry software automatically purchases all the securities with their defined proportions in the basket. This would not help with automatically canceling or replacing orders.

A bracket order is what I use to automatically place a stop and targets the instant a position is opened. Order entry software sends a bracket order as an OCA (one cancels all) order which is actually two or more limit orders; one set of orders for the stop(s) and one or more orders for the target(s). If either the target or stop is hit, the cooresponding OCA limit orders are automatically canceled.

Regards,

David

I use TTO (threshold trigger order) for my entry but it is more limited than the OCA, I can only specify one stop and TP.

The current order placing process when using the discretionary exit spreadsheet is as follows:

1. enter with limit or stop limit

2a. place TTO for TP1
2b. place TTO with same stop but with TP2+3 profit level and quantities

3a. once TP1 is hit, cancel the remaining TTO
3b. update/submit TTO order stop price and quantity for TP2 level
3c. update/submit TTO order quantity and TP3 level

4a. go to bed

albeit the time frame will determine at what pace order changes are necessary.

The way the spreadsheet determines the quantity for TP1 is as follows:

(number_of_losses/number_of_wins)*percentage_of_expenses_covered

if 2 losses (and by loss I mean TP1 is not hit) occur out of 20 trades then

2/18 is .11111 or 11% which means you need to take off a quantity that earns you 11% of the total loss of equity of 2 losing trades.

For a long position the spreadsheet then multiplies the entry quantity by the stop size and the percentage of quantity to cover expenses (11%). This gives you the value of 11% of a current loss in \$ amount, which is then divided into the number of pips in TP1.

4x=0 wrote:Imagine if you move your stop to BE every time TP1 is hit (never let a winner turn into a loser). All of your losses that do not hit TP1 are covered by the ones that do hit TP1. The trades that hit TP1 and then stop out at BE do not hurt you. What is left are the trades that hit TP1 then TP2 and maybe even TP3.

Remember, the closer your TP is to you entry, the more likely it is to get hit, but you will also have to lump more of your position on TP1 because it is so low in pips. Conversely, you do not need to take much of your position off on TP1 when it has more pips between it and your entry, but it is at more risk of not being hit. This is the part that is up to you! Use TP2 and TP3 for your "profit" targets and TP1 as a sure way of covering your losses.

As a final note, scaling out frees up capital which in some cases allows additional scale-in trades to be taken.

Just food for thought...

Being a student of finance I can appreciate this idea. Freeing up capital for use in other investments is beneficial when there is an opportunity that can earn more than the current investment. The 100 lots you take off from position 1 will not earn you more when put on position 2, am I right?

Of course, TP2 was determined because of the chance of price reversal at that level, which in case of a reversal would result in a lower return than that of a fresh trade. Perhaps system probability of success comes into the equation again at this point.

Again thanks for the info, great material you've posted.

dbw451
rank: 50+ posts
Posts: 50
Joined: Sun Jul 22, 2007 9:45 pm
Reputation: 0
Gender:
With order entry software such as Ninja Trader, you are able to specify a strategy for order entry. The strategy handles placing all the appropriate broker order types. For a three target system, a strategy would be specified as offsets from the entry price, for example:

stop: -43 ticks/pips
target 1: 11 ticks/pips
target 2: 65 ticks/pips
target 3: 120 ticks/pips
move stop to BE at target1

When you open a position, the order entry software calculates the stop and targets from your pre-specified strategy based on the position opening price. All the OCA limit orders are automatically placed. This allows a process something like as follows:

1. initiate a trade with all contracts.
2. manually adjust stop and three targets to support current market volatility and price structure if it differs from default strategy.
3. go to bed.

All the appropriate orders are placed with the broker by the order entry software and all orders are automatically canceled once the stop is hit.

The 100 lots you take off from position 1 will not earn you more when put on position 2, am I right?

The 100 lots taken off from position 1 would be free capital available for other trades. I personally view other trades as another trade setup made by one of your systems and is traded separately from the target 1 trade.

Regards,

David