Structural vs Indicator-Based Trading Logic — Seeking Real Practitioners’ Insight

 

I’m not looking for recycled opinions from YouTube or X.
I want to hear from traders who are actually in the trenches—building EAs, testing ideas, filtering noise, and continuously trying to understand how the market really moves.
If you’re one of those people, I would truly value your perspective.
My Core Question
Where does real edge come from?
Is it:
1. Structural logic
Key support/resistance
Role reversals
Double tops/bottoms
Dow Theory trend structure
Trendline breaks
Or:
2. Indicator / oscillator-based systems
From both a performance and implementation standpoint:
Which approach is more robust?
Which is more realistic to systematize into an EA?
My Background & Current Struggle
I come from a discretionary trading background, mainly focused on structural analysis.
And to be honest—I’ve felt an edge there.
But:
It requires time
It’s mentally demanding
Consistency is hard
That led me to EA development.
When I backtested simplified versions of my ideas, I saw signs of stability. Enough to believe:
“If I can translate this properly into code, it could work.”
The Conflict
Most EAs I see are built on indicators.
Many traders have told me:
“Structural logic is too complex to code.
Stick to simple indicator combinations.”
So I tried.
Using ChatGPT, I built and tested multiple indicator-based strategies.
Result:
I didn’t feel a real edge.
Where I Am Now
My structural logic is not yet coded well enough to test properly
My testing process and system design still need improvement
I know this is a skill issue I need to overcome
And realistically, I expect the answer is:
A hybrid of structure + indicators
But Here’s My Belief
Structural logic feels closer to the true mechanics of the market.
Which makes me think:
It might be harder… but ultimately more powerful.
What I Want to Learn From You
How do you approach the market?
Have you successfully encoded structural concepts into systems?
Do you rely more on indicators, structure, or a combination?
Where do you believe real edge comes from?
I’m not looking for “right answers.”
I’m looking for real experiences, real failures, and real thinking.
 

Focus on what works. Even if it is difficult, it is not impossible. There is no such thing is too complex to code, eventhough there are often simple solutions for the same problem. You can train AI for example to detect pullback patterns but it is computationally expensive while a simple deviation threshold yields the same results.

No indicator has an edge in itself, Indicators are just tools and should be used as such. I am employing tick based algorithms with no indicator, just a very simple mathematical model. Using optmizier i brute-force search (or align if you will) for market structures. This works wel but the downside is it does require a real market tick feed. It does not work on hodge podge market maker broker feed, so it is very broker specific.

As of late i am trying to expand to less broker dependent strategies and entered into the realm of bars and indicators, with varying degrees of success. Best results where abtained based on a simple but sound ideas even using lagging repainting indicator. So my epxerience is the same as yours, structure is the main driver.

As to the edge, it can come from many places. It does not mattrer what you trade, but how you trade it somebody once said, and i agree. For example there are quite a few people profitable with a breakout strategy while others keep on yapping about false breakouts. So the edge can be as simple as the profit taking/ minimize loss mechanim, al else being equal (ie trading the same price levels).

 
エンリケ・ダンジェルー # :

Focus on what works. Even if it is difficult, it is not impossible. There is no such thing is too complex to code, eventhough there are often simple solutions for the same problem. You can train AI for example to detect pullback patterns but it is computationally expensive while a simple deviation threshold yields the same results.

No indicator has an edge in itself, Indicators are just tools and should be used as such. I am employing tick based algorithms with no indicator, just a very simple mathematical model. Using optmizier i brute-force search (or align if you will) for market structures. This works wel but the downside is it does require a real market tick feed. It does not work on hodge podge market maker broker feed, so it is very broker specific.

As of late i am trying to expand to less broker dependent strategies and entered into the realm of bars and indicators, with varying degrees of success. Best results where abtained based on a simple but sound ideas even using lagging repainting indicator. So my epxerience is the same as yours, structure is the main driver.

As to the edge, it can come from many places. It does not mattrer what you trade, but how you trade it somebody once said, and i agree. For example there are quite a few people profitable with a breakout strategy while others keep on yapping about false breakouts. So the edge can be as simple as the profit taking/ minimize loss mechanim, al else being equal (ie trading the same price levels).

Thank you again for your insights — I really appreciate it 😊
Your approach resonates with me a lot, especially the idea that structure is the main driver and that simple models can be aligned with the market.
One thing I’m currently struggling with is how to translate discretionary, structural concepts into something a computer can actually understand and optimize.
For example, concepts like: ☆ trend structure (higher highs / higher lows)
☆ pullbacks
☆ key support and resistance levels
☆ role reversals
These are relatively intuitive for humans, but difficult to define precisely in code.
So my question is:
How do you translate “market structure” into concrete numerical rules or parameters that an optimizer can actually work with?
For example: ☆ How do you define a trend in numerical terms?
☆ How do you quantify a pullback?
☆ How do you determine whether a level is “significant”?
I’m very interested in how you approach this problem in practice.
 
JUNHAYAKAWA #:
These are relatively intuitive for humans, but difficult to define precisely in code.
You've clearly identified the crux of the issue here. As Enrique Dangeroux has already mentioned:
Enrique Dangeroux #:
There is no such thing is too complex to code...

Any technical or fundamental analysis can be incorporated into MT5─using MQL5's standard code elements, MQL5's OOP code elements, Windows DLL files, Python, etc.

Of course, a new coder can't very well start out as an advanced coder, so you have to start somewhere. This usually involves feeding off of the work of others, and there is nothing wrong with that. There's nothing preventing you from continuing to manually trade while learning to code.

As a side note... If you're trading a demonstrably profitable manual strategy and having trouble automating it, you'll likely have little problem finding a coder to implement it in an EA. As potential caveats to farming-it-out, you won't be learning much about coding and you'd be sharing your strategy with at least one other person.

Regarding use of AI, there is an analogous principle in legal trial work─"If you're unable to precisely frame your question, then you can't get your desired answer." My point is that you have to possess some knowledge about the code that you seek in order to precisely frame your prompt(s), including follow-up corrections, to AI. Every AI bot has its own data sharing policy but then, so does Google which recently got hit with a class action lawsuit for violating its own privacy terms. Personally, I prefer to write code myself rather than to attempt to depose AI. 

 
JUNHAYAKAWA #:
For example: ☆ How do you define a trend in numerical terms?
☆ How do you quantify a pullback?
Here is the general idea: Create an array of structures to store all your trend data:
struct Trend{
   int direction;
   double price;
   datetime time;
   double distance;
   int interval;
} trends[];
Next, you need to define the criteria for when a pullback within the current trend turns into a new opposite trend. There are two main approaches: either the price exceeds a certain distance from the last extreme point, or a time interval is exceeded. If the limit is reached, you add a new element to the array - this is your new trend. As new quotes arrive, update the data as needed. If you want to track waves within this trend, you would need to nest another array of structures inside the current structure.