Made famous by the Turtles, this system is a Price Channel breakout also known as a Donchian Channel breakout. As trends develop and the price begins to make new highs or new lows, the price will break through the upper or lower price channel. The system enters and has a secondary price channel working as a trailing exit. This EA uses Percent Volatility position sizing to be able to treat any symbol or tick value the same to keep losses small with a fixed risk percentage as the lot size is calculated with the stop. If the price moves in favor of your position, additional lots are added (optional via input) as the system pyramids.
Although the Turtles used this system in the Futures market with strict settings and correlation rules, this EA allows you to change the inputs to optimize to your MetaTrader symbols and timeframes. The Turtles had the option to trade their System 1 (20 bar entry, 10 bar exit), System 2 (55 bar entry, 20 bar exit), or a blended approach mixing System 1 and System 2. This EA lets you choose any number of bars for the entry and exit but does not limit you to System 1 or System 2. This EA will only close positions that it has opened (only matches to its magic number).
Note: The default input values are not optimized. Demo the EA and adjust the inputs to find the optimized combination for your risk tolerance and to maximize profitability. Trend Following systems are designed around long term probabilities. Although Trend Following systems have lower win rates, profitability comes from large trends as Trend Following cuts losses short and lets winners run. Test on a portfolio of symbols as profits from trending symbols will offset the small losses and provide profits when other symbols are not trending.
Entries and Pyramiding
Entries occur when the price exceeds the highest high or the lowest low of the price channels from the Entry_Periods input. The EA adds the position as soon as the price makes a new high or new low and does not wait until the following bar. Using the example of the turtles, their system 1 entered long position when the price broke above the 20 bar upper price channel or in other words, the price went higher than it had gone in the past 20 bars. System 1 went short when the price broke below the 20 bar lower price channel. System 2 went long when the price broke above the 55 bar upper price channel. System 2 went short when the price broke below the 55 bar lower price channel. If you set the Max_Units input above 1, additional entries will occur and pyramid in ATR increments specified by the ATR_between_Pyramids input.
Exits are trailing and use the price channels from the Exit_Periods input. As the price reverses and reaches the exit price channel, this EA exits all positions including the pyramid positions. Using the example of the turtles, their system 1 exited long positions when the price touched the 10 bar lower price channel. System 1 exited short positions when the price touched the 10 bar upper price channel. System 2 exited long positions when the price touched the 20 bar lower price channel. System 2 exited short positions when the price touched the 20 bar upper price channel.
Position Sizing and Stops
This EA calculates the position sizing using the Percent Volatility method, which is directly tied to the stop. The stop uses the ATR_Periods and Stop_Range_ATR inputs to calculate the ATR and then multiply the two values to set the stop distance from the entry price. Stops are not coded into the position but this EA closes out the position if the price reaches the stop value. As additional units are added through pyramiding, the stop moves to correspond to the latest entry price. Using the stop value, the Risk_Percent input, and your account information (tick size, lot size, digits, etc.), the position sizing uses the monetary value of the distance from entry to stop and keeps the number of lots limited to the percentage you specify. This allows every symbol, price, volatility to be treated equally. As your account size changes through profits or drawdowns, the position sizing will account for the change.
- Entry_Periods: The number of bars back to calculate the highest high and lowest low to use for the entry breakouts.
- Exit_Periods: The number of bars back to calculate the highest high and lowest low to use for the trailing exits.
- Risk_Percent: The percent risked per position if the price reaches the stop. Example: If you want 2% of your equity to be risked per position, enter 2 to this input.
- ATR_Periods: The number of bars to use in the ATR calculation.
- Stop_Range_ATR: This value will be multiplied by the ATR to determine where the stop will be from the entry price. Example: If you want your stop to be set at 2* ATR from the price, enter 2 to this input.
- Max_Units: The maximum number of entries (including the initial entry) as the position gains profits and the EA adds pyramid positions.
- ATR_between_Pyramids: This value will be multiplied by the ATR to use for calculating when to add the next position through pyramiding. Example: Set this to 1.5 and the next pyramid position would be added when the price reaches your entry plus (1.5 * ATR) for long positions or entry minus (1.5 * ATR) for short positions.
- Slippage: Amount of allowable slippage when entering position.
- Reduction_Percent: Enter an amount, by which to reduce your equity for the position sizing calculation. Example: If you are in a drawdown period, you can enter 20 to this input, and the position size will be 20% less than without the reduction. The position sizing calculation would treat your equity as 80% of what it really is to lower your risk until the drawdown is over.
The chart screenshot below shows first a long entry that is stopped out on the long candle, second on a same candle a profitable long entry with multiple pyramid positions and exit, third a short entry that exits with one pyramid being profitable, and additional entries that are stopped out as the price goes into a trading range. The chart uses our free price channels
Disclaimers: Trading is speculative in nature and not appropriate for all investors. Investors should only use risk capital that they are prepared to lose as there always exists the risk of substantial loss. Investors should fully examine their own personal financial situation before trading. Past performance does not guarantee future results. Hypothetical or simulated performance results have certain limitations. Unlike an actual performance record, simulated results do not represent actual trading. Also, since the trades have not been executed, the results may have under-or-over compensated for the impact, if any, of certain market factors, such as lack of liquidity. Simulated trading programs in general are also subject to the fact that they are designed with the benefit of hindsight. No representation is being made that any account will or is likely to achieve profit or losses similar to those shown.