The 3 Duck's Trading System

but if you can define a rule in specific terms and not just “It doesn’t feel right”, then it can be programmed.

This part is just plain wrong.
I make my living as a software developer and I have to say, that not everything is codable just because you can describe it with specific terms.

For example support and resistance. You can’t code clear and well respected support and resistance levels. My rules do cover the situation and I can handle it, but you can’t code everything, at least not in such a way like a manual evaluation of the situation.

The 3ducks approach isn’t meant to be traded automatically, there are to many things you have decide personally (to trade or not, which movement is likely, which high has to be broken etc.).

But hey, you can do what you want. I am pretty sure that won’t work, but maybe I’m wrong. Maybe you can do it, I would congradulate you, but I don’t think this will happen in the long run.

I agree detecting support and resistance won’t be easy, I have a few ideas, and you’ll no doubt notice that I did broach the subject elsewhere on the forum. I’d be interested in hearing your rules, and how you define them?

The reason this system can’t be back tested is due to the fact its discretionary and not mechanic.

I can’t say I will take trade in pair x/y if the 60sma on the 4h is above a 60% slope for example, I make a judgement call on each trade and sometimes the pair with the steepest sma is not the pair I choose.

You must have a set of rules that you can’t think of at the moment but could be written down and back tested.

I have some guidelines I like to see but nothing that is quantifiable as to be able to backtest it.

Your high regard for the power of a predefined set of rules ignores the uncertainty which always exists, and the chaos which sometimes exists, in markets. If you lock yourself into a rigid set of rules which specify “if this, then that”, you will disable your most powerful tool — your active brain.

It is your brain which perceives that the market is not conforming to your orderly template, and then looks for opportunities to “snatch victory from the jaws of defeat”. Try programming that step:

Step #39 - Snatch victory from the jaws of defeat.

In the military, we often heard the saying, “No battle plan survives first contact with the enemy.” That saying was variously attributed to Emperor Napoleon, General George Patton, or General Dwight Eisenhower.

The saying actually originated (in a less succinct form) from the Prussian Field Marshal Helmuth Von Moltke (1800-1891), who is regarded as the creator of a new, more modern method of directing armies in the field. Von Moltke wrote (in German), “No plan of operations extends with certainty beyond the first encounter with the enemy’s main strength”.

General Patton (of WWII fame) and many other military leaders since Von Moltke’s time* have used that saying (in its shortened, snappier version) to instruct their troops, because it contains a universal truth: It’s impossible to foresee the changing circumstances on an active battlefield.

I think we can apply that military analogy to the “combat” we face in the market. No programmed set of rules, no matter how elaborate, can define the “fog of war” and how to cope with it — on the battlefield, or in the market. That’s why armies are led by generals, not by computers. And that’s why the unique capabilities of the trader’s brain — common sense, intuition, instinct, gut-feel — can never be captured in a rule book.

  • excluding Napoleon, who died when Von Moltke was only 14 years old.

.

Thanks Clint,

My opinion is this is the difference between back-testing and real markets.

I’m not a military man, but to me the analogy is that the back testing, is the planning, and training for the battle, the more scenarios and eventualities you cover here, the better you are prepared for the battle.

When it comes to the battle you might have a 40pip profit, and see a turn forming on the chart, and bail, even though the plan said wait for 50pips, unless you can see into the future neither is the wrong decision, but where I differ from most people, is that I will most likely take the 40 pips and run, then try and quantify why I took the pips, then try and backtest that decision. I reckon most people would take the pips and be happy they got 40 pips, and think no more of it.

Ofcourse even though I back test it, and prove that I should have waited 95 times out of 100, when I see the same thing happening next week do I follow my gut, or stick to the plan?? Only the battle will prove that :slight_smile:

It’s like rindoan said, there are guidelines, no hard rules. Because hard rules don’t work well with the market dynamics.

When it comes to the battle you might have a 40pip profit, and see a turn forming on the chart, and bail, even though the plan said wait for 50pips

But this isn’t always the case, it depends on many facts every time. How the turn is shaped, if there is a nearby support or resistance etc. The situation is different every time, so a strict ruleset won’t cover all of them. And with that, your backtest might generate profit or losses, where a manually traded approach wouldn’t even open a trade, it might cut winners, cut losers and so on, which maybe wouldn’t happen, when manually traded.

You won’t be able to reliably code something like “take the 40 pips instead of waiting for the 50”. This will work sometimes and many times, it won’t.

I still believe the automated approach won’t work, not as an ea and not as a backtest, too.

I think we are going to have to agree to differ, my opinion is that manual may be better in the real world, but the more eventualities you can deal with in you backtest the better your plan.

What does surprise me is that as a software developer, you are giving ideal examples of programmable rules, as things that you say can’t be programmed. When surely you realise that the rule would be something much more like “if the curve fits ABC, and your within X% of target, close position”

I think what we are actually touching on is a fundamental difference in the way people trade, I want logic, it would appear most people prefer gut feel.

It could well be that, by experimenting with different stops and targets, you may come across an optimum number with a high success rate.
Certainly worth trying at the least, best of luck :slight_smile:

I think you’re also forgetting the fact that market behaviour changes over time, volatility comes and goes. What works one month or year, may not work the next. That’s why back testing a method like this won’t work.

Also when you compare two charts, even though the slope of the sma or position of price relative to it may be similar, there may be differences in structure which determine which one you would prefer to trade.

However, certain patterns do repeat with higher probability outcomes but I need to watch for them with my eyes rather than rely on a signal. Certainly an algorithm could give you a heads up but I’d need my eyes on the chart to make a final decision.

That why back testing is essential to cover as many eventualities as possible, not just the last few days while I’ve been using a practice account.

Even if the back testing suggests you stay out of the market for the next 6 months, atleast you know, and don’t burn money in an unsuitable market.

Certainly it won’t hurt to spend time looking at historical charts but you’ll probably see more clearly that this method works best when a a market is trending. If it’s not trending then stay out.

My filters are very simple - if within a few seconds of looking at a chart it looks like it’s going up, then it probably is. That’s your high probability candidate for trading the 3 ducks. And watch out if the price is pulling too far from the sma - look for pullbacks on the 4 and 1 hour and how far price has already moved on the day. The stochastic hook discussed earlier helps with that but your eyes can see the pullbacks when you get used to them. And again, if they aren’t jumping out at you, then move on. This is then a very safe way to trade - you will miss opportunities but you will also bag many high probability winners.

Why not just drop the whole discussion about back testing.

Obviously people are not going to agree so there is no point in keep arguing the fact since the pros and cons have already been listed.

Lets instead discuss how nicely all the EUR pairs are trending at the moment for us 3 duck traders!

Drum, let me try to give you a trade selection process, which you can try to program. You can find more details and examples in my recent posts.

The below checklist is for a [B]SHORT[/B]. It is inline with the philosophy of the 3-ducks, as I interpret it:

[B][U]1) Trend direction[/U][/B]

D - close of previous day is below 200SMA [one of my personal filters - remove or adapt as necessary for more trades, could use 60SMA]
4hr - Close of current candle is below the 60SMA [First duck]
1hr - Close of current candle is below the 60SMA [Second duck]

[B][U]2) Setup & Entry[/U][/B]

  • At 6am GMT, identify the low of the last 3 bars on the 1hr chart (could try 4hr chart also - havent tried)
  • Entry short anytime during the day that the low of the most recent 3 bars is penetrated by 5 pips
  • Stop trade entry loop if no trade by 4pm GMT or if Trend Direction criteria are invalidated

(if you want, you can also check for a 5min filter prior to entering a trade, like so:

  • 5min - close of previous candle is below 60SMA [Third duck] )

[B][U]3) Trade management[/U][/B]

  • Stop Loss: 30 pips
  • Take profit: 100 pips
  • Trailing stop: break of high of last 3 bars +5pips
  • Can only take 2 loss making trades on any given currency for each day
  • Can only have 2 concurrent positions

[Can play around with the TP target using a formula based on ATR(14) for the currency, for example 80% of the ATR to have higher probability of being achieved. I would still keep Reward:Risk over 2 at a minimum]

[B][U]4) Position size[/U][/B]

  • Risk 1% of your account NAV per trade
    (can modify according to your risk tolerance)

You can try this and see what you come up with. Trend direction is set in stone to keep you on the right side of the trend, everything else can be adapted to your particular circumstances.

The most difficult part to get right is Setup & Entry obviously.

Remember, this is a version based on my interpretation of the system. If you want the canonical version, check out the free e-Book.

[B][U]THE DISCRETION ELEMENT:[/U][/B]

Nonetheless, I agree with the previous posters about the need for discretion in a method such as this one.

In my mind, there are two areas for discretion:

  1. deciding whether to trade or not to trade on a given day (overall or specific pairs)
  2. deciding which pairs to trade - the 3-ducks system is big on selecting the top trade candidates for the day. This gives you the best opportunities for success in a portfolio context.

In his advanced course, Andy includes a methodical approach to select the best candidates for the day and trade criteria to decide whether to trade / not trade a currency pair. He also gives further guidelines on trend identification on the 4hr chart, which I have not included in the above checklist. I found this additional information very helpful in my implementation of the 3 ducks.

Hope the above helps. Let us have your comments / results.

And that’s the problem: the “rule” isn’t that simple. It depends on support, resistance, volatility, upcoming new, chart pattern and so on.

But as the other guys said. Let’s stop about that. You think you can and should do an automated backtest, I think otherwise. So everyone in this discussion should do, whatever he wants.

Sorry for the slightly slower response I was away most of yesteday collecting son from university, hopefully back on course now, probabably with a few more distractions though lol.

Thanks fxsnowball, you given me a set of rules that can definitely be programmed, and some that as you are more discretionary, it will be interesting to compare the two, once I’ve got my back testing upto speed. I’m going to try and use your rules as a starting point, so we can have a direct comparison, then it will be intersting to see if I can “improve” in develop rules to cover your discretionary areas

And that is all I’ll say on the subject of automated backtesting, as I don’t think this is thread for the pros/cons subject that was developing.

Now for the rules

All Good There

I guess your either not UK based or an early riser, I’m UK based so tend to get into the swing of things between 8 or 9, maybe automation is the answer :lol:
Is point one, the 6am rule, duplicated by the second rule, or have I misunderstood something.

I’ll probably use the 5min rule aswell, it’s called the 3 ducks, so I’ll stick with that for now, can always disable that test for a comparison later.

I’ll have to code trailing stops, haven’t written that code yet :slight_smile: I’m guessing when you say last 3 bars you mean on the 1 hr chart.
When you say only 2 loss making trades, I assume you mean after 2 losses on a currency you decided the makret doesn’t suit you that day, and call it quits for that currency till tomorrow.
I assume 2 concurrent positions are in all pairs, and that you only have one in any single currency at any one time. Ill focue on just the once currency because I suspect that when tuning later on, some of the fine tuning that can be done could be specific to the currency etc.

All good there, I was working with 2% but this shouldn’t really effect way the statergy works, just the amount of money in play. etc.

I will come back to the rest once I have got the basic back-testing sorted.

Hopefully over the weekend, when the markets are closed I’ll get my head seriously into this and have some preliminary results late next week.

Hey Drum,

Liquidity starts picking up around 7am GMT when the London session opens. However, I find that it’s best to have completed my analysis and be monitoring for a position at least by 6:30GMT, to capture early breakouts. Can always go back to bed once your algorithm is running! :slight_smile:

It’s the same, this is the starting point to set the initial trade entry.

Then, the algorithm should check every hour if the entry criteria are met and adjust the trade parameters accordingly.

You will find this is redundant. By the time you have a low of the last 3 bars on the hourly, price is below the 5min SMA by design. But you can check this yourself.

You can try two backtests, one with fixed stop loss & take profit and one with trailing stops. See which one gives better results for you.

I like to bank pips consistently, which is why I move my stop loss to breakeven after 30 pips in my favor and trail my stop loss. Sometimes I am stopped out, but this method of trading suits my temperament. Horses for courses, I guess :slight_smile:

A trend-following system’s worse enemy are whipsaws. This is my way of enforcing risk management and limiting the damage to my account on any given one day.

I also use max loss days or drawdown per week in my personal trading, after which I just take the week off and wait for sunshine (better trend following conditions) next week. No reason to force trades in a market thunderstorm.

Which platform / language are you programming this in? I have been thinking of automating the entry / trailing stop / exit part, so that I can run from a VPS once the discretionary part of trade selection is completed each morning. Will probably use Multicharts or Ninjatrader.

Let us know how it goes.

Thanks for clarifying those few little bits.

I’m a coder\web developer by trade to tend to wite my own stuff alot of the time, at the moment I’m using python, which suits me and it works with the API from my broker to get current prices (infact I can stream prices directly to it), although for back test I just keep a databse of previous prices, so that step through them and get results.

Well I’ve done some very preliminary tests based on fxsnowballs rules.

So far the tester, stay out of the markets on weekends and bank-holiday. And won’t enter into a trade, 6hrs before high impace noew or 2 hrs after.
I only look to open traded between 06:00 and 16:00 GMT but I monitor any open trades 24hrs a day.

Then I do all my SMAs on the 5 min chart but I multiply up to give 200x1day, 60x4hr,60x1hr and 50x5min

I only have 1 trade open at once

I then tested on approx the last 4 months

[B]Using Fixed Stop Loss and Profit stop at 30 and 100[/B]

The system loses approx 0.5% but has a max draw down 3%

[B]Using a Trailing 30pip Stop Loss and fixed 100pip Take Profit[/B]

The system also loses approx 0.5% but has a max draw down of only 1%

[B]Using a Trailing 30pip Stop Loss triggered at 30pip profit and a fixed 100pip Take Profit[/B]

The system loses about 1% with max draw down of 1.5%

Before anybody starts bleating these are purely first run, on the code and will most likely improve with some tweaking.