TradeChannel (GO)
This EA calculates a composite momentum indicator called GO, derived from the weighted sum of price deviations across multiple moving averages (Close, Open, High, Low) multiplied by volume. It opens a buy when GO exceeds a configurable positive level and opens a sell when GO falls below the negative of that level, closing positions when the GO value crosses back past a separate closing threshold.
Open the interactive view (equity curve, symbol switch)Key facts
Backtest results (H1, about 1 year)
| Symbol | P&L | Annual | Max DD | Trades | Win rate | Sharpe | Recovery | Losing streak | Per trade | Status |
|---|---|---|---|---|---|---|---|---|---|---|
| EURUSD | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | Not convertible yet |
| GBPUSD | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | Not convertible yet |
| USDJPY | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | Not convertible yet |
| XAUUSD | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | Not convertible yet |
Why this EA never traded: no entry rule survived the conversion.
Converted from MQL5 to Python and run with the same rules for every EA. Positions use MT5 lot sizes (100,000 units per FX lot, 100 oz per gold lot) with 1:100 leverage, one order at a time, and a stop-out below 10% of the starting balance. Sharpe is computed from the equity curve. Results marked as unreliable are shown for completeness only.
Blow-up risk: No blow-up pattern found
- Has no stop loss or trailing stop
On its own this is not a typical blow-up pattern, and the account was not stopped out in our backtests. That is not a guarantee: any EA can lose money.
High: stopped out in our backtest, or martingale/grid sizing without a stop loss. Elevated: martingale or grid sizing with a stop loss, or several positions at once without a stop loss. What the label means and what we found →
Strategy analysis
The strategy centers on the GO indicator, calculated as GO=((C-O)+(H-O)+(L-O)+(C-L)+(C-H))*V, where C, O, H, L are moving average values of Close, Open, High, and Low prices respectively, and V is the volume of the signal bar. This formula essentially measures how much price deviates from the open and whether the close leans toward the high or low, then weights the result by volume to capture momentum with volume confirmation. Entry conditions trigger a buy when GO exceeds OpenLevel and a sell when GO falls below -OpenLevel; with the default OpenLevel of 0, any positive GO opens a long and any negative GO opens a short. Exit conditions close a long position when GO drops below (OpenLevel-CloseLevelDif) and close a short when GO rises above -(OpenLevel-CloseLevelDif). Position sizing supports both fixed lot mode and a risk-based mode that calculates lots from free margin multiplied by MaximumRisk divided by 1000. StopLoss and TakeProfit default to zero, meaning positions have no protective stops, which is a significant risk deficiency. Lot normalization rounds the calculated lot size to the symbol's volume step and clamps it between minimum and maximum volume limits.
Strengths
- The GO indicator integrates multi-dimensional price deviations with volume confirmation, providing more information than a single indicator
- Supports dynamic position sizing based on risk percentage with a proper lot normalization function
- Uses completed bars (Shift=1) as signal source, avoiding repeated signals from unformed bars
Weaknesses
- StopLoss and TakeProfit default to zero, leaving positions completely unprotected during extreme market moves
- Critical bug: sell order block mistakenly calls SolveBuySL/SolveBuyTP instead of SolveSellSL/SolveSellTP, resulting in wrong SL/TP calculation
- The GO formula has mathematical redundancy — expanding (C-O)+(H-O)+(L-O)+(C-L)+(C-H) simplifies to 3C-2O-L, making the multi-component presentation misleading
- No drawdown control, maximum position limits, or consecutive loss protection mechanisms exist
Possible improvements
- Fix the sell order block to call SolveSellSL/SolveSellTP instead of the buy variants — this is a critical correctness bug
- Add non-zero default StopLoss/TakeProfit and implement a trailing stop to protect profits
- Simplify or redefine the GO formula for clearer economic interpretation, and add signal filters such as trend confirmation or volatility thresholds
Risk assessment
Overall risk: High risk
- StopLoss and TakeProfit default to zero with no position protection, exposing unlimited single-trade loss potential
- Sell order block calls wrong SL/TP functions (buy instead of sell), potentially placing stops in the wrong direction
- No maximum drawdown limit, daily loss limit, or consecutive loss protection exists
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
Lots | 0.1 | Fixed trading lot size |
MaximumRisk | 0.05 | Risk percentage for dynamic lot sizing based on free margin |
Shift | 1 | Price jump threshold in points; exceeds to trigger reverse entry |
MAPeriod | 174 | Moving average period |
MAShift | 0 | Moving average shift |
MAMethod | MODE_EMA | Moving average method |
VolVolume | VOLUME_TICK | Volume type: tick volume or real volume |
OpenLevel | 0 | Opening threshold; GO above = long, below negative = short |
CloseLevelDif | 0 | Difference between close and open thresholds; positive lowers close threshold |
ShowGO | true | Whether to display GO value in chart comments |
Similar Momentum EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.