Exp_TSICloud
This EA trades based on the TSI Cloud indicator, which uses double-smoothed momentum (TSI) with configurable smoothing methods. It opens buy positions when the upper TSI line crosses above the lower line and sell positions on the opposite crossover, with optional signal inversion and separate close-on-reversal logic.
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
None of the usual blow-up patterns were found in the code, 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 concept is based on the crossover of two TSI (True Strength Index) Cloud indicator lines, classifying it as a momentum-based trading system. Entry conditions: a buy signal is generated when the upper line crosses above the lower line, and a sell signal on the opposite crossover, with an optional signal inversion (Invert) feature that swaps the buffer readings. Exit conditions are triggered by reversal signals controlled by BuyPosClose and SellPosClose parameters, along with fixed stop-loss and take-profit levels in points. Position sizing supports multiple modes including fixed lot size (LOT), balance-based percentage, and free margin-based percentage, governed by the MM and MMMode input parameters. Money management leverages standardized functions from the TradeAlgorithms.mqh library with a default risk ratio of 0.1. The system checks for crossover signals on each new bar or at a specified signal bar index, preventing per-tick redundant calculations, but it lacks scaling in/out or partial position management mechanisms.
Strengths
- Supports 10 smoothing algorithms (SMA/EMA/JJMA/JurX/T3 etc.), flexibly adapting to different market conditions
- Independent entry and exit switches allow fine-grained control — can open-only, close-only, or both
- Uses IsNewBar() mechanism to avoid per-tick redundant signal calculations, reducing computational load and repeat trade risk
- Signal inversion feature (Invert) enables convenient use of the same indicator logic for counter-trend strategies
- Standardized money management module supports multiple position sizing modes
Weaknesses
- Lacks spread filtering, which may result in unfavorable entries in high-spread environments
- Stop-loss and take-profit use fixed point values without ATR-based dynamic adjustment for volatility
- No maximum position count limit, potentially leading to overexposure in choppy markets with consecutive entries
- Depends on external custom indicator TSICloud and two include libraries, increasing deployment complexity and dependency risk
- Signals are only detected on bar completion, which may delay entries during fast market moves
Possible improvements
- Add ATR-based dynamic stop-loss/take-profit and spread filtering to improve adaptability across volatility regimes
- Implement maximum simultaneous position limits and cooldown periods to prevent consecutive losing entries in choppy markets
- Add trailing stop functionality to lock in floating profits during trending markets
Risk assessment
Overall risk: Medium
- No spread filter may cause unfavorable fills during low-liquidity sessions
- Fixed stop-loss/take-profit doesn't adapt to volatility changes — may be too wide in low-vol or too tight in high-vol environments
- No maximum position limit could lead to accumulated risk from consecutive entries in extreme market conditions
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
MM | 0.1 | Money management ratio (lot or percentage) |
MMMode | LOT | Margin mode: free margin/balance/net margin/net balance/fixed lot |
StopLoss_ | 1000 | Stop loss in points |
TakeProfit_ | 2000 | Take profit in points |
Deviation_ | 10 | Maximum slippage tolerance |
BuyPosOpen | true | Allow buy positions |
SellPosOpen | true | Allow sell positions |
BuyPosClose | true | Allow buy-side close (close sell on opposite signal) |
SellPosClose | true | Allow sell-side close (close buy on opposite signal) |
Invert | false | Invert buy/sell signals |
InpInd_Timeframe | PERIOD_H4 | Timeframe for indicator calculation |
First_Method | MODE_SMA_ | First smoothing method |
First_Length | 12 | first levelsmoothing period |
First_Phase | 15 | First smoothing phase parameter |
Second_Method | MODE_SMA_ | Second smoothing method |
Second_Length | 12 | second levelsmoothing period |
Second_Phase | 15 | Second smoothing phase parameter |
IPC | PRICE_CLOSE_ | Price type for indicator calculation |
Shift | 0 | Indicator vertical shift |
TriggerShift | 1 | Trigger offset for crossover detection |
SignalBar | 1 | Bar index for signal detection (0=current, 1=completed) |
Similar Momentum EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.