
Price Action for EA: The Unsolved Challenge! Why This Automation Attempt Failed.
## What Was the Idea? Quantifying Price Action
A beginner-friendly summary of the verification: “Price Action for EA: The Unsolved Challenge! Why This Automation Attempt Failed.”.
What Was the Idea? Quantifying Price Action
We’ve all seen those popular trading textbooks and courses that talk about “Price Action” (PA). Things like a long wick (or “shadow”) on a candlestick signaling price rejection, or an engulfing candle suggesting a reversal. These patterns are often touted as powerful tools for discretionary traders. But can we actually turn this intuitive “reading” of candlesticks into hard, mechanical rules for an Expert Advisor (EA)? That was the big question for this research!
Our goal was to take these common PA patterns – specifically, long wicks indicating rejection and engulfing candles suggesting a turnaround – and quantify them at the individual candlestick level. Think of it as trying to teach a computer to “see” what a human trader sees when they spot these patterns.
We then wanted to see if adding this quantified Price Action as a “confirmation” filter would improve our already robust trading system. We’d previously identified genuinely strong horizontal levels (from Research 73, specifically those we rated level >= 20 for their historical significance) as a fantastic edge. So, the hypothesis was: if price hits one of these strong levels AND we see a specific PA pattern, would that make for an even better trade signal?
How We Tested It: Adding PA as a Filter
To test this, we took our existing system, which relied purely on those robust horizontal levels (let’s call it level20 for short). This system had already proven itself quite effective. Then, we integrated our newly quantified Price Action patterns.
The idea was to only take trades at our level20 horizontal zones if a specific PA pattern (like a rejection wick or an engulfing candle) also confirmed the move. It was like adding an extra layer of scrutiny to our trade entries.
We then put this combined level20 + PA system through a rigorous forward test. For those new to EAs, a forward test is crucial: it means testing your system on fresh, unseen market data that wasn’t used during development. This helps confirm if your EA is truly robust and not just “curve-fitted” to past data. We looked at its performance across multiple independent time periods to see how consistently it generated profits.
What Happened? A Disappointing Twist!
Here’s where things got interesting, and not in the way we hoped!
First, let’s look at our baseline: the level20 system, relying solely on those robust horizontal levels, was a fantastic performer. It delivered a +42.2% profit and was profitable in 5 out of 6 forward test periods. In other words, it was consistently making money and proving its edge in almost every new market segment we threw at it. This was a really solid foundation!
Now, for the moment of truth: what happened when we added our quantified Price Action confirmation?
- The
level20 + PAsystem managed only +12.1% profit and was profitable in just 3 out of 6 forward test periods. Ouch! That’s a significant degradation in performance. In simple terms, instead of making our good system even better, adding Price Action actually made it worse – much worse, in fact! It cut our profits by more than half and made the system far less consistent. We also tested other variations, like adding PA with a different lookback period (+PA(lb2)) which gave +14.3%/4-6, and even PA patterns by themselves (PA only) which yielded +17.7%/4-6. None of these came close to the performance of our robust horizontal levels alone. The conclusion was clear: adding Price Action as a confirmation actually degraded the robustness of our system. It took something that was consistently profitable (5/6 periods) and made it inconsistent (3/6 periods). This was similar to what we observed when trying to mechanize diagonal channels – they just reduced the number of trades and hurt consistency. So, despite its popularity in discretionary trading, quantified Price Action, in this context, was a definite “no-go.” We’re rejecting it from our automated system.
The Bigger Picture: Summing Up Our Discretionary Mechanization Series
This test was part of a larger series (Research 71-76) where we’ve been tackling a fascinating question: Can we take the “art” of human discretionary trading, as taught in textbooks, and translate it into precise, mechanical rules for an EA? We’ve systematically tried to mechanize three core elements of discretionary trading and filter them using forward testing. Here’s what we’ve learned:
- Dow Theory + Multi-Timeframe (MTF) Analysis: We successfully “rediscovered” the trend using Dow Theory principles combined with Multi-Timeframe (MTF) analysis (looking at price across different timeframes to get a broader view). It showed a decent correlation (0.65), indicating it could help identify trend direction. It was useful, but not a game-changer on its own.
- Horizontal Levels (Prominent Highs/Lows): This was the absolute winner! Our method for identifying significant horizontal levels (think obvious past highs and lows where price reacted strongly) proved to be a genuine, robust edge. It passed 5 out of 6 forward test periods, showed consistent performance even when we tweaked its parameters, and had excellent metrics: a Profit Factor (PF) of 1.63 (meaning it made $1.63 for every $1 lost – very good!) and a Sharpe Ratio of 1.16 (indicating a good risk-adjusted return). This was a major breakthrough, as it successfully challenged the common belief that “pullback systems” (strategies that buy on dips in an uptrend, or sell on rallies in a downtrend) often fail in forward tests. Our horizontal levels proved they could work!
- Diagonal Channels: Unfortunately, efforts to mechanize diagonal trend lines (channels) failed. Even the textbooks admit these are “weak” compared to horizontal levels, and our forward tests confirmed that they didn’t add a robust edge.
- Price Action (PA): As we just saw, mechanizing specific candlestick patterns like long wicks and engulfing candles also failed. They degraded the performance of our strong horizontal levels.
What I Learned: Discretionary Trading – Intuition vs. Logic
This entire series was a direct answer to a user hypothesis: “Can discretionary trading be broken down into logic and numbers, and then mechanized, rather than just being ‘intuition’?” Our research provides a clear, albeit nuanced, answer: Yes, it can be, but only partially and in specific ways. We’ve definitively shown that the “structural core” of discretionary trading—things like understanding the overall trend direction (via Dow Theory) and identifying truly effective horizontal support/resistance levels—can be mechanized. These elements represent a real, robust edge that stands up to rigorous forward testing. This finding is particularly significant because it overturns the common belief that “pullback systems tend to disappear in forward tests.” Our horizontal levels proved otherwise, showing that these fundamental market structures can indeed be exploited mechanically for consistent profit. However, we also learned a critical lesson: finer-grained execution details of discretionary trading, such as reading subtle diagonal channels or specific candlestick patterns (Price Action), tend to degrade performance when reduced to simple mechanical rules in forward tests. This aligns with previous research (like Research 33, where Machine Learning selection failed in a similar context). Think of it this way:
- Higher-level discretion (like understanding the overall market “sentiment” or identifying major, obvious support and resistance levels) is logical and can be effectively mechanized. It’s about the big picture, the structural backbone of the market.
- Lower-level, micro-discretion (like interpreting the subtle nuances of individual candlestick patterns or the exact angle of a diagonal line) seems to involve a “higher-dimensional judgment” that can’t be fully captured by simple, low-freedom mechanical rules. Trying to force it into such rules often leads to overfitting – where your system becomes too specific to past data and fails on new data, like trying to memorize every single move in a chess game instead of understanding the underlying strategy.
This research has left us with some incredibly valuable permanent assets: code modules like
dow_structure,levels.py, andchannels.py. These tools allow us to continue forward-testing and refining discretionary trading methods for the future. For now, our confirmed trading system remainsv1.1.0. While our “level-filtered yosuga” concept is high-quality, its correlation (0.52) with the core strategy means it doesn’t strictly exceed the core’s performance, so we’re sticking with the proven, robust foundation. The journey to mechanize discretion continues, but we now have a much clearer map of what works and what doesn’t!
How this connects
This verification builds on earlier ones (what failed before and what I tried this time, comparisons between approaches).