Episode 1: Why does EA stop working when market conditions change — Why USDJPY Ultimate chose the "royal road" (the "proper way") — (All 6 Parts)
After starting to use automated trading (EA), the performance was good at first, but after a while it stopped performing well. If you have experience using EAs, you may have faced this situation at least once.
One of the possible causes is overfitting to past market conditions “over-optimization (curve fitting)”. Even if past data show excellent results, if it is not a universal logic that works against the market, “a logic that fits a specific period”, when market conditions change, it may fail to perform as expected.
That is why, when designing an EA, I believe it is important not only to consider “how much money it made in the past” but also to ask “why that logic could possibly work.”
Therefore, in USDJPY Ultimate, we centered our design not on chasing short-term price fluctuations, but on a relatively simple and testable “trend-following” approach. In this article, we take one trend-following EA as an example to explain why we chose this design and how we design not only how to enter but also how not to enter.
14-day free trial version is available
You can verify the design introduced here in your own environment.
The “classic” trend-following
Trend-following is one of the representative concepts that has been used in financial markets not only in FX. When prices begin to move in a certain direction, there is a likelihood that the movement in that direction will continue to some extent, and you follow that momentum. It is a very simple idea.
Of course, trend-following does not always make profits. In ranges where no trend exists, it has a clear weakness of responding to price movements without a directional bias.
“Using trend-following” rather than
“In what situations should you use trend-following?”
In USDJPY Ultimate, we adopt the idea of “not relying on a single indicator to judge everything.”
Independently designed “Smoothed RSI (SRSI)”
The foundation for EA signal generation is our independently designed “Smoothed RSI (SRSI).”
While RSI is a clear indicator for capturing price momentum, it tends to react to short-term price moves as well. Therefore, we apply smoothing to RSI to smooth out some short-term noise and aim to capture the momentum direction.
What’s important here is not to decide buy/sell solely on SRSI. SRSI is just the starting point for signals. We then combine multiple conditions to narrow down the actual entry points.
Narrowing entries with a “4-Filter”
Even if SRSI generates a signal, we do not enter on that alone. We require four conditions with different characteristics, and only enter when all conditions are satisfied.
Each indicator by itself is not particularly exotic. What matters is not relying on a single indicator to judge everything. SRSI measures momentum, MA indicates direction, ADX shows trend strength, and the daily RSI indicates overheating. Each plays a distinct role, and we enter only when all conditions are met simultaneously to avoid dependence on a single indicator.
Designing to “enter” by not entering
When evaluating EA performance, we tend to focus on where to enter. However, in real markets, it is equally important to consider situations where you should not enter.
Markets do not always trend. There are conditions such as ranges with no directional bias, rapid price moves, and insufficient trend strength, which are not compatible with trend-following.
“Create conditions where signals appear but you do not enter.”
This is the opposite of simply increasing the number of trades. However, when thinking long-term, it is important not only to consider how many trades you take, but also how you design which market conditions you should not trade in.
Manage losses as well as grow profits
Of course, entry conditions alone do not complete EA design. No matter how carefully you enter, not every trade will be profitable. Therefore, USDJPY Ultimate includes multiple mechanisms for both settlement and risk management.
Stop loss linked to ATR
We use ATR for the stop loss width, automatically adjusting it according to market volatility. When the market moves a lot, we do not use the same fixed SL as when price movements are small; we design to consider the current price action’s magnitude.
Take profit and trailing stop
For take profit, we set a certain profit width, and if unrealized gains extend to a certain level, we use a trailing stop. We combine a mechanism to lock in profits with a mechanism to extend profits if the trend continues.
Account-wide risk management
We manage not only individual trades but also the overall account risk. If the total unrealized loss across the account exceeds a certain threshold, positions are automatically liquidated. Additionally, you can enable a daily loss cap to automatically stop trading for that day.
In EA discussions, the focus is often on “increasing profits.” I believe it is equally important to consider “how to manage large losses.”
The choice to publish parameters
Another aspect USDJPY Ultimate emphasizes is“transparency”. An EA has multiple parameters, including RSI period, smoothing width, various thresholds, SL/TP, and filter ON/OFF. We allow users to review and adjust these.
However, this does not mean“you can win simply by changing settings if the market gets worse.” Rather, if you tweak the parameters too finely to past data, it may lead to the over-optimization mentioned at the start.
The purpose of publishing parameters is not to provide a “future profits guaranteed” setting. It is to enable users to verify by testing across multiple past periods, observe how results change with different settings, re-evaluate with strategy testers, and perform forward testing.
Rather than presenting a black box with “this setting will win,” we choose to present it as “We designed it with this reasoning, so please verify it yourself.”
There is no “absolute” in EA
To those who have read this far, there is one thing I’d like to emphasize. No matter how many filters you combine, trend-following does not work in every market. In ranging markets, false signals may increase. Sudden price moves may cause losses larger than expected. And past backtest results do not guarantee future performance.
That is why I do not think of EA as“a magical winning program”. Instead, I view it as“a mechanism to execute trades based on a consistent approach without being swayed by emotions.”
What matters is not only achieving flashy results. Clarifying the entry conditions, the conditions for passing, and how losses are managed is essential for long-term validation and operation of an EA.
Summary — Why we chose the “classic” approach
What USDJPY Ultimate adopts is not an avant-garde trading logic. Based on the relatively simple and testable trend-following concept, it combines the following:
- Momentum determination with SRSI
- Fourfold filtering using confirmation candles, MA, ADX, and daily RSI
- Not only the entering conditions but also the not-entering conditions
- Stop loss using ATR
- Profit management with trailing stops
- Account-wide risk management
- Publication of major parameters
The goal is not to create an EA that wins in any market. Such an EA does not exist. The aim is an EA that can explain why it trades under certain conditions and that users can verify themselves. That is why USDJPY Ultimate adopts the “classic” design philosophy.
For those who want to see actual movement first, we have a 14-day free trial available.
14 days free trialActual logic, parameters, and verification results are published on the product page. If you’re interested, please take a look here as well.
【USDJPY専用】王道のトレンドフォロー型EA「USDJPY Ultimate」※This article does not recommend investing or trading in any specific financial product. It aims to introduce the design philosophy of the EA. Trading involves the risk of loss, and past verification results or backtest performance do not guarantee future performance. When engaging in actual trading, please use your own judgment and responsibility after fully understanding the risks.