RenkoLineBreakVsRSI_EA
This EA trades based on the RenkoLineBreak indicator trend direction confirmed by RSI divergence from the 50 level. It places buy stop or sell stop pending orders when the RenkoLineBreak shows a sustained trend and RSI is sufficiently far from the midpoint. Positions are closed when the trend reverses or RSI crosses the opposite 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 core strategy uses the RenkoLineBreak custom indicator to determine trend direction, confirmed by RSI divergence from the 50 midpoint as a filter. RenkoLineBreak reads buffer index 2 values: positive indicates uptrend, negative indicates downtrend, with TO_UP/TO_DOWN representing trend transitions. Entry conditions are: open a buy stop when trend is UP and RSI is below 50 minus the vertical shift, or open a sell stop when trend is DOWN and RSI is above 50 plus the vertical shift — this is a trend-confirmation-with-momentum-pullback logic. Exit conditions are: close longs when trend transitions to TO_DOWN or RSI exceeds 50 plus the shift, and close shorts when trend transitions to TO_UP or RSI falls below 50 minus the shift. Position sizing uses a fixed lot volume specified by InpVolume, with pending stop orders placed at prices derived from the high/low of the previous 3 bars plus an indent offset. Stop loss is set at the extreme of the previous 3 bars plus/minus indent, and take profit is a fixed pip distance. Although the code declares an MM_MODE enum with FIXED_LOT and FIXED_PERCENT options and includes MoneyFixedLot.mqh, it never actually instantiates or uses the money management class, relying solely on the input volume parameter.
Strengths
- Dual-indicator filtration (RenkoLineBreak trend + RSI momentum) reduces false signals
- Pending order entry mechanism ensures price confirmation before execution, avoiding chase entries
- Explicit stop loss and take profit settings provide defined risk per trade
- Automatically deletes old pending orders and closes positions on trend reversal, avoiding counter-trend exposure
Weaknesses
- MM_MODE enum declares FIXED_PERCENT mode but it is never implemented, creating a mismatch between interface and code
- MoneyFixedLot.mqh is included but never used, leaving a redundant dependency
- DeleteAllOrders iterates the order list while deleting elements, which can skip orders due to index shifting
- CheckPosition uses PositionGetInteger without first calling PositionSelect on the correct ticket, potentially reading stale position data
- No slippage protection or spread filter, which may cause unexpected fill prices during volatile conditions
Possible improvements
- Implement the FIXED_PERCENT money management mode or remove unused enum and include file to maintain code consistency
- Fix the iteration-while-deleting bug in DeleteAllOrders by iterating backwards or collecting tickets first then deleting
- Call PositionSelect with the correct ticket before reading position properties in CheckPosition to ensure accurate data
- Add spread filter and slippage control parameters to avoid placing orders under adverse trading conditions
Risk assessment
Overall risk: Medium
- DeleteAllOrders iteration-while-deleting bug may leave some orders undeleted, causing unexpected order fills
- Incorrect position selection in CheckPosition may read wrong position attributes leading to erroneous closes
- No spread filter mechanism, potentially filling at unfavorable prices during high-volatility periods
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
InpMinBoxSize | 500 | Minimum box size for RenkoLineBreak indicator |
InpRsiPeriod | 4 | RSI indicator period |
InpRsiVShift | 20 | RSI vertical offset from 50 midline for signal filtering |
InpTakeProfit | 1000 | Take-profit in points |
InpIndentFromHL | 50 | Pending order offset from high/low in points |
InpVolume | 1.0 | Fixed trading lot size |
Similar Trend Following EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.