Exp_CyclePeriod
This EA trades based on the CyclePeriod custom indicator, which measures the dominant cycle period of price action. It opens buy positions when the cycle period value rises (shorter cycle = momentum accelerating upward) and sell positions when it falls, with configurable stop loss, take profit, and money management options.
Open the interactive view (equity curve, symbol switch)Key facts
Backtest results (H1, about 1 year)
Not backtested yet — this EA could not be converted automatically.
Strategy analysis
The core strategy is based on the CyclePeriod indicator, which calculates the dominant cycle period of price action using an Alpha smoothing parameter of 0.07. Entry conditions: a buy signal is generated when Value[1]<Value[2] and Value[0]>Value[1], indicating a shortening cycle with upward momentum acceleration; a sell signal is generated when Value[1]>Value[2] and Value[0]<Value[1], indicating a shortening cycle with downward momentum acceleration. Exit conditions rely on fixed stop loss (1000 points) and take profit (2000 points), with additional position closing on opposing signals (BuyPosClose/SellPosClose). Position sizing supports five modes: free margin, balance, loss-adjusted free margin, loss-adjusted balance, and fixed lot size. Money management is controlled by the MM parameter with a default of 0.1 risk ratio. The strategy uses new bar detection (IsNewBar) to avoid duplicate signals and relies on the TradeAlgorithms.mqh library for trade execution logic.
Strengths
- Uses cycle period analysis as a trading signal source, which is a relatively uncommon approach with unique perspective
- Provides five position sizing modes, offering high flexibility in money management
- Stop loss to take profit ratio of 1:2, designed with a positive expectancy risk-reward ratio
- Allows independent control of buy/sell direction for both opening and closing positions, offering high flexibility
- Implements new bar detection to prevent duplicate trades within the same bar
Weaknesses
- Depends on external custom indicator CyclePeriod and TradeAlgorithms.mqh library, reducing portability
- Stop loss of 1000 points and take profit of 2000 points are very large and may not suit all volatility environments
- No spread filter, volatility filter, or trading session filter mechanisms
- Code contains a double semicolon (int median=5;;) and garbled comments, indicating code quality issues
- Lacks a check for existing position count, potentially opening duplicate positions in the same direction
Possible improvements
- Add spread filtering and volatility-adaptive stop loss/take profit mechanisms to adapt the strategy to different market conditions
- Add position checking logic to prevent duplicate openings in the same direction, and implement a maximum position count limit
Risk assessment
Overall risk: Medium
- Stop loss of 1000 points is very large, potentially causing significant single-trade losses in extreme market conditions
- No position count check in the same direction, potentially accumulating excessive positions on one side
- No spread filter, possibly executing at unfavorable prices during low liquidity periods
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
MM | 0.1 | Risk percentage or lot size |
MMMode | LOT | Margin calculation mode (fixed lots/balance/free margin etc.) |
StopLoss_ | 1000 | Stop loss in points |
TakeProfit_ | 2000 | Take profit in points |
Deviation_ | 10 | Maximum allowed slippage in points |
BuyPosOpen | true | Allow opening long positions |
SellPosOpen | true | Allow opening short positions |
BuyPosClose | true | Allow closing long positions |
SellPosClose | true | Allow closing short positions |
InpInd_Timeframe | PERIOD_H6 | Indicator calculation timeframe |
Alpha | 0.07 | CyclePeriod indicator smoothing coefficient |
SignalBar | 1 | Bar index for signal calculation |
Similar Momentum EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.